分享

Linux 網路基礎

 农夫子oice 2007-04-15
Linux 網路基礎
2006-12-02 20:07

■Linux 網路相關設定檔案

/etc/sysconfig/network: 『主機名稱( HOSTNAME )的修改,啟動 Network 與否』!需要重新啟動 Linux ( reboot ) 才能讓設定生效。
/etc/sysconfig/network-scrips/ifcfg-eth(n):『network, IP, netmask, broadcast, gateway, 開機時的 IP 取得方式( DHCP, static ), 是否在開機的時候啟動』
/etc/modules.conf:外掛的核心模組(可以將他想成是驅動程式)來驅動硬體,這個檔案只在核心找不到網路卡的晶片組時才會動用到!
/etc/resolv.conf: 設定 DNS ( 名稱解析伺服器 ) 的檔案
/etc/hosts:記錄電腦的 IP 對應主機的名稱或者主機的別名

§ 重新啟動網路設定:
[root@test root]# /etc/rc.d/init.d/network restart  <==重新啟動網路介面
   [root@test root]# ifdown eth0    <==關閉 eth0 網路卡
   [root@test root]# ifup   eth0      <==啟動 eth0 網路卡
[root@test root]# ifconfig eth0 down

要特別留意的是, GATEWAY 設定的是整個 Linux 系統的 Default Gateway 而不是這塊網路卡的 Gateway 喔!如果您有多張網路卡在 linux 系統上面時,也就是您有 ifcfg-eth0, ifcfg-eth1.... 等多個檔案,只要在其中一個檔案設定 GATEWAY 即可!不要每個檔案都設定啊
請特別留意的是,手動以 ifconfig 這個指令來修改 IP 或者是網路卡參數是可行的,您可以在任何時刻手動的修改。不過,如果原先以 ifup eth0 的方式來啟動網路卡之後,再以 ifconfig 來進行 IP 的修改,那麼網路的的啟動與關閉就得使用 ifconfig 了,不能夠使用 ifdown eth0 來關閉了!
修改 IP 原則就是:
先以檔案的型態 ifcfg-eth0 來設定好您的網路參數,而如果想要暫時更動網路參數的話,那麼就使用 ifconfig 來進行修改,如此一來,未來重新開機之後,還是會以 ifcfg-eth0 的設定為準!


■ Linux 常用網路指令介紹

§ 設定網路參數使用的指令: ifconfig

[root@test test]# ifconfig interface [options]
參數說明:
interface :網路介面卡代號,例如 eth0, eth1...
options   :主要有以下幾個參數
   network   :網段
   broadcast :廣播網段
   netmask   :子網路遮罩
   up|down   :啟動|關閉網路介面

[root@test root]# ifconfig eth0 192.168.0.2 netmask 255.255.255.0 \
> broadcast 192.168.0.255
上面再將 eth0 這個網路介面的 IP 屬性修改為 192.168.0.2 這個 IP ,廣播位址也跟著改變了!
[root@test root]# ifconfig eth0 down <==關閉 eth0 網路卡   ifup eth0
[root@test root]# ifconfig eth0 up <==啟動 eth0 網路卡!    ifdown eth0


§ 啟動與關閉某個網路介面卡:ifup, ifdown
 
[root@test root]# ifup   [interface]
[root@test root]# ifdown [interface]
參數說明:
範例:
[root@test root]# ifup eth0   <==啟動 eth0 這塊網路卡!
[root@test root]# ifdown eth0<==關閉 eth0 這塊網路卡

這兩個指令要比 ifconfig 簡單的多!不過他卻必須要有相關的檔案存在才能啟動呦
我們要啟動 eth0 這塊網路卡的時候,那麼您的 Linux 系統當中就必須要存在 /etc/sysconfig/network-scripts/ifcfg-eth0 這個網路介面卡的設定檔案才行!


§ 顯示/修改路由表( route table ) :route

[root@test root]# route [-nee]
[root@test root]# route add [-net|-host] 目標主機或網域 [netmask] [gw|dev]
[root@test root]# route del [-net|-host] 目標主機或網域 [netmask] [gw|dev]
參數說明:
-n    :列出的資訊以 IP 來顯示
-ee    :列出較長列的資訊
add   :增加路由資訊
del    :刪除一個路由資訊
-net  :增加一個『網域』的路由,例如 C Class 的網域!
-host   :增加到某個 IP 主機的路由!
netmask :就是 netmask 呀!
gw    :這個是路由的通訊閘! gw  是以 IP 來建置的
dev   :這個是路由的通訊閘! dev 是以 介面 ( internet ) 代號來建置的!

範例:
[root@test root]# route<==看路由的資訊!
[root@test root]# route -n <==以 IP 的方式來顯示路由!
注意到 route, route -n 這兩個範例喔!使用 -n 與否會使 domain 是否進行查詢,
一般來說,我都喜歡加上 -n 的,因為不必去查詢正反解,顯示速度較快, 此外, default gateway 就是 0.0.0.0 喔!
[root@test root]# route add -net 192.168.0.0 netmask 255.255.255.0 dev eth0  # 新增一個路由規則!
[root@test root]# route del -net 192.168.0.0 netmask 255.255.255.0 dev eth0   # 刪除一個路由囉
[root@test root]# route add default gw 192.168.1.2  # 增加一個 default gateway 呢!
注意一下, gw 後面接的是 IP ,而 dev 後面接的則是裝置代號喔!
這個指令相當的有用!尤其是新手們最容易犯錯的 gateway 設定錯誤的問題,都可以藉由這一個指令來檢查呢!


§ 傳送一個 ICMP 封包給某部主機:ping 

[test@test test]# ping [-b broadcast]
[test@test test]# ping [-c number] host
參數說明:
-b broadcast :當要 ping 一個網段時,可以使用這個方式來『廣播』!
-c number    :後面加上 number (數字)可以限制 ping 幾次!
範例:
[test@test test]# ping -c 5 tw.yahoo.com  <==除了IP也可以 ping domain name!
[test@test test]# ping -b 192.168.1.255 -c 2 <==這裡必須是廣播位址


§ 調查連接到某部主機時,每個節點的連線速度:traceroute

[root@test root]# traceroute [-i interface] [-g gateway] [host|IP]
參數說明:
-i :使用這個 interface 來連出去!例如 eth0, ppp0 等!
-g :使用這個 gateway 來連出去!例如 192.168.1.2, 140.116.141.29 等!
範例:
[root@test root]# traceroute tw.yahoo.com 
這個指令相當的有用途,他可以用來判斷當一部遠端主機無法連線時候,到底封包是停頓在哪一個節點上!
萬一如果出現了 *** 在 traceroute 的輸出結果中,那就表示該 router 應該有點問題吶!


§ 查閱網路資訊的指令P:netstat

[root@test root]# netstat [-r] [-i interface]
[root@test root]# netstat [-antulp]
參數說明:
-r  :顯示出 route 的意思;
-i  :顯示出 interface 的內容,跟 ifconfig 類似啦!
-a  :顯示出目前所有的網路連線狀態!
-n  :預設情況中,顯示出的 host 會以 host name 來顯現,若為 n 則可以使 port 與 host 都以數字顯示
-t  :僅顯示 tcp 封包的連線行為
-u  :僅顯示 udp 的封包連線狀態
-l  :僅顯示 LISTEN 的內容
-p  :同時顯示此一連線的 PID 喔!(注意:只有 root 才能行使此功能!)
範例:
[root@test root]# netstat -r          # 嘿嘿!顯示出目前的路由表!與 route 指令的功能相同。
[root@test root]# netstat -i eth0   # 看看底下顯示出的內容,是否跟 ifconfig eth0 類似呀!?
[root@test root]# netstat -an <==顯示所有的連線狀態,並且以數字型態顯示
[root@test root]# netstat -tul <==顯示 LISTEN 的及 tcp 與 udp 的連線狀態
那個 -p 也很有用呦!尤其是在一些莫名其妙的連線出現時,可以用 -p 這個參數查到 PID ,然後再以利用 kill 來殺掉他呦!

 
§ 顯示主機名稱( domain name ) :host

語法: [root@test root]# host [-a] domain_name
參數說明:
-a :顯示出所有的資訊
範例:
[root@test root]# host tw.yahoo.com  <==僅顯示出主機的 IP
tw.yahoo.com. has address 202.1.237.21
[root@test root]# host -a tw.yahoo.com <==所有的主機資訊顯示!


§ 查詢主機名稱與 IP 的對應

[root@test root]# nslookup [domain_name|IP]
參數說明:
範例:
[root@test root]# nslookup tw.yahoo.com <==由  domain name 查詢 IP!
[root@test root]# nslookup 202.1.237.21  <==由 IP 查詢 domain name


§ 用來連線遠端主機,當然, BBS 主機也可以連線:telnet

[root@test root]# telnet [-8] [host|IP] [port]
參數說明:
-8  :可以減少亂碼的情況
port:服務的埠口!例如 POP3 的 110 ,SMTP 的 25 port 等等!telnet 可以用來偵測! 

[root@test root]# telnet localhost 110    # 偵測本機端的 110 這個 port 是否有啟動
Trying 127.0.0.1...
telnet: connect to address 127.0.0.1: Connection refused    幫助您測試主機端某個 埠口 的連線情況!


§ 遠端傳送資料當中,速度最快的協定之一 :ftp

[root@test root]# ftp [-p] host [port]
參數說明:
-p :啟動 PASSIVE 模式!
範例:
[root@test root]# ftp localhost     <==預設是以 port 21 來進行連線
[root@test root]# ftp localhost 1354   
# 如果您設定的 ftp 的 port 非正規的 21 ,則可以這樣!
 
[root@test root]# ftp localhost  <==連接到遠端主機
Connected to localhost (127.0.0.1).
220 localhost FTP server (Version wu-2.6.1-20) ready.
Name (127.0.0.1:test): test  <==輸入帳號
331 Password required for test.
Password: <==輸入密碼
230 User test logged in.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> dir          <==顯示遠方主機的內容
ftp> cd           <==變換遠端主機的目錄   cd .. 退出目錄
ftp> close or bye or exit <==離開遠端主機
ftp> get file       <==取得遠端主機的檔案
ftp> mget file       <==取得所有的檔案,較 get 好用!例如 mget .bash*
ftp> put file       <==將本地端檔案 file 丟到遠端主機上
ftp> mput file       <==將一些檔案上傳咯
ftp> delete file      <==殺掉遠端主機的 file 檔案
ftp> help         <==顯示求救指令!
ftp> mkdir dir       <==在遠端主機上面建立目錄
ftp> lcd          <==變換本地端路徑!
ftp> ascii or binary    <==以 ASCII 模式或 BINARY 模式捉取資料!?


§ 登入匿名主機最好用的文字介面 FTP 軟體:ncftp

[root@test root]# ncftp [host]
[root@test root]# ncftp [ftp://domain.name/path]
參數說明:
可以直接連接到 host 主機,也可以直接連接到主機的某個路徑之下,相當的方便
範例:
[root@test root]# ncftp ftp.nsysu.edu.tw  <==連接到中山大學 FTP 站
[root@test root]# ncftp ftp://ftp.nsysu.edu.tw/Linux

Logged in to ftp.nsysu.edu.tw.
Current remote directory is /pub/Linux.
ncftp /pub/Linux >  <==瞧!直接進入畫面囉!而且不需要輸入帳號與密碼呢!

遠端主機的一些服務指令:
ncftp /pub/Linux > cd Redhat      <==變換目錄
ncftp /pub/Linux > dir         <==顯示目前目錄下的檔案與目錄資訊
ncftp /pub/Linux > get file1      <==將 file1 的資料存到本地端
ncftp /pub/Linux > get -z file1 file2 <==將 file1 存到本地端時改檔名為 file2
ncftp /pub/Linux > get -A file1 file2
# 將 file1 以累積的方式(append)增加到 file2 這個檔案
ncftp /pub/Linux > pub file      <==將檔案由本地端上傳至遠端!
ncftp /pub/Linux > rename file1 file2 <==將遠端的主機之 file1 更名為 file2
ncftp /pub/Linux > rm file       <==刪除檔案
ncftp /pub/Linux > rmdir directory   <==刪除目錄
ncftp /pub/Linux > mget directory   
# 可以下載『整個目錄』的資料!很棒吧!

本地端主機的一些指令功能:
ncftp /pub/Linux > lcd       <==變更本地端目前所在的目錄
ncftp /pub/Linux > lls       <==顯示目前本地端所在目錄的檔案與目錄資訊
ncftp /pub/Linux > lmkdir     <==在本地端建立目錄
ncftp /pub/Linux > lpwd      <==顯示目前本地端主機的所在目錄
ncftp /pub/Linux > lrm      <==刪除本地端的檔案
ncftp /pub/Linux > lrmdir     <==刪除本地端的『目錄』

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多