網絡參數設置命令
1.ifconfig
ifconfig主要是能手動啟動、觀察和修改網絡接口的相關參數
[root@linux ~]# ifconfig
eth0 Link encap:Ethernet HWaddr 00:0F:EA:A3:06:A2
inet addr:192.168.10.100 Bcast:192.168.10.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:3669 errors:0 dropped:0 overruns:0 frame:0
TX packets:2892 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:667547 (651.9 KiB) TX bytes:584799 (571.0 KiB)
Interrupt:209 Memory:fb000000-0
eth0:0 Link encap:Ethernet HWaddr 00:0F:EA:A3:06:A2
inet addr:192.168.200.2 Bcast:192.168.200.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
Interrupt:209 Memory:fb000000-0
eth0:網卡的代號,也有lo這個loopback。
HWaddr:網卡的硬件地址,習慣稱為MAC。
inet addr:IPv4的IP地址,后續的Bcase、Mask分別代表的是Broadcast和Netmask。
inet6 addr:是IPv6的版本的IP,我們沒有使用,所以略過。
RX:那一行代表的是網絡由啟動到目前為止的數據包接收情況,packets代表數據包數、errors代表數據包發生錯誤的數量、dropped代表數據包由於有問題而遭丟棄的數量等。
TX:和RX相反,為網絡由啟動到目前為止的傳送情況。
collisions:代表數據包碰撞的情況,如果發生太多次,表示你的網絡狀況不太好。
txqueuelen:代表用來傳輸數據的緩沖區的儲存長度。
RX Bytes、TX Bytes:總傳送、接收的字節總量。
Interrupt、Memory:網卡硬件的數據,IRQ岔斷和內存地址。
范例:暫時修改網絡接口
[root@linux ~]# ifconfig eth0 192.168.100.100
# 如果不加所有其他參數,則系統會依照該 IP 所在的 class 范圍,
# 自動地計算出 netmask 及 network, broadcast 等 IP 參數
[root@linux ~]# ifconfig eth0 192.168.100.100 netmask 255.255.255.128 \
> mtu 8000
# 設置網絡接口,同時設置 MTU 的數值
[root@linux ~]# ifconfig eth0 MTU 9000
# 僅修改該接口的 MTU 數值,其他的保持不動
[root@linux ~]# ifconfig eth0:0 192.168.50.50
# 仔細看那個接口, eth0:0 。那就是在該網絡接口上,再仿真一個網絡接口,
[root@linux ~]# ifconfig eth0:0 down
# 關掉 eth0:0 這個接口。如果想要啟動 eth1 ,並且不設置所有網絡參數
# ifconfig eth1 up 就能實現
[root@linux ~]# /etc/init.d/network restart
配置文件
/etc/sysconfig/network-scripts里面的ifcfg-ethx等文件
2.路由修改route
[root@linux ~]# route [-nee]
[root@linux ~]# route add [-net|-host] [網段或主機] netmask [mask] [gw|dev]
[root@linux ~]# route del [-net|-host] [網段或主機] netmask [mask] [gw|dev]
-n,不要使用通信協議或主機名稱,直接使用 IP 或 Port Number;
-ee,使用更周詳的信息來顯示;增加 (add) 和刪除 (del) 路由的相關參數;
-net,表示后面接的路由為一個網段;
-host,表示后面接的為連接到單台主機的路由;
Netmask,和網段有關,能設置 netmask 決定網段的大小;
Gw,gateway 的簡寫,后續接的是 IP 的數值,和 dev 不同;
Dev,如果只是要指定由哪一塊網卡聯機出去,則使用這個設置,后面接 eth0 等。
[root@linux ~]# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
192.168.10.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
169.254.0.0 0.0.0.0 255.255.0.0 U 0 0 0 eth0
0.0.0.0 192.168.10.30 0.0.0.0 UG 0 0 0 eth0
范例:路由的增加和刪除
[root@linux ~]# route del -net 169.254.0.0 netmask 255.255.0.0 dev eth0
# 上面這個操作能刪除掉 169.254.0.0/16 這個網段
[root@linux ~]# route add -net 192.168.100.0 netmask 255.255.255.0 dev eth0
[root@linux ~]# route add default gw 192.168.10.30
# 增加默認路由的方法。請注意,只要有一個默認路由就夠了
3.ping
-b,后面接的是 broadcast 的 IP,用在你“需要對整個網段的主機進行 ping ”時;
-c,后面接的是執行 ping 的次數,例如 -c 5 ;
-n,不進行 IP 和主機名稱的反查,直接使用 IP ;
-s,發送出去的 ICMP 數據包大小,默認為 56(bytes),再加 8 bytes 的 ICMP 表頭資料。
-t,TTL 的數值,默認是 255,每經過一個節點就會少
-M [do|dont] :主要在檢測網絡的 MTU 數值大小,兩個常見的項目是:
do,代表傳送一個 DF (Don’t Fragment) 旗標,讓數據包不能重新拆包和打包;
dont,代表不要傳送 DF 標記,表示數據包能在其他主機上拆包和打包。
范例一:檢測一下 168.95.1.1 這部 DNS 主機是否存在?
[root@linux ~]# ping -c 3 168.95.1.1
PING 168.95.1.1 (168.95.1.1) 56(84) bytes of data.
64 bytes from 168.95.1.1: icmp_seq=0 ttl=243 time=9.16 ms
64 bytes from 168.95.1.1: icmp_seq=1 ttl=243 time=8.98 ms
64 bytes from 168.95.1.1: icmp_seq=2 ttl=243 time=8.80 ms
--- 168.95.1.1 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2002ms
rtt min/avg/max/mdev = 8.807/8.986/9.163/0.164 ms, pipe 2
范例二:針對整個網段進行 ping 的追查
[root@linux ~]# ping -c 3 -b 192.168.10.255
WARNING: pinging broadcast address
范例三:找出最大的 MTU 數值
[root@linux ~]# ping -c 2 -s 1000 -M do 192.168.10.10
PING 192.168.10.10 (192.168.10.10) 1000(1028) bytes of data.
1008 bytes from 192.168.10.10: icmp_seq=1 ttl=64 time=0.424 ms
# 如果有響應,那就是能接受這個數據包,如果無響應,那就表示這個 MTU 太大了
[root@linux ~]# ping -c 2 -s 8000 -M do 192.168.10.10
PING 192.168.10.10 (192.168.10.10) 8000(8028) bytes of data.
ping: local error: Message too long, mtu=1500
表5-1 常見的各種接口的MTU值
網絡接口
MTU
Ethernet
1500
PPPoE
1492
Dial-up(Modem)
576
4.traceroute
[root@linux ~]# traceroute [-nwig] IP
參數:
-n,能不必進行主機的名稱解析,只用 IP ,速度較快。
-w,若對方主機在幾秒鍾內沒有回聲就宣告不治...默認是 5 秒。
-i,用在比較復雜的環境,如果你的網絡接口非常多非常復雜時,才會用到這個參數。
例如,你有兩條 ADSL 能連接到外部,那你的主機會有兩個 ppp。
你能使用 -i 來選擇是 ppp0 還是 ppp1 啦。
-g,和 -i 的參數相仿,只是 -g 后面接的是 gateway 的 IP
范例一:
[root@linux ~]# traceroute -n tw.yahoo.com
traceroute to tw.yahoo-ap1.akadns.net (203.84.202.164), 30 hops max,
38 byte packets
1 61.59.121.1 42.174 ms 41.690 ms 41.058 ms
2 139.175.172.2 40.962 ms 41.978 ms 40.973 ms
3 192.72.122.130 40.983 ms 41.930 ms 41.003 ms
4 139.175.58.210 42.956 ms 41.997 ms 42.337 ms
5 139.175.58.153 47.591 ms 47.972 ms 48.748 ms
6 139.175.56.30 48.193 ms 47.970 ms 47.986 ms
7 139.175.57.94 47.959 ms 47.951 ms 47.985 ms
8 139.175.56.138 48.363 ms 47.586 ms 47.995 ms
9 139.175.58.42 49.256 ms 50.668 ms 47.490 ms
10 61.58.33.133 201.882 ms 201.565 ms 200.973 ms
11 61.58.33.50 199.910 ms 199.019 ms 198.961 ms
12 203.84.200.226 202.391 ms 202.567 ms 209.283 ms
5.nslookup這條命令的用途和host基本上是相同的
范例一:找出 www.google.com.tw 的 IP
[root@linux ~]# nslookup www.google.com.tw
Server: 168.95.1.1
Address: 168.95.1.1#53
Non-authoritative answer:
www.google.com.tw canonical name = www.google.com.
www.google.com canonical name = www.l.google.com.
Name: www.l.google.com
Address: 64.233.189.104
6.Telnet
[root@linux ~]# Telnet [host|IP] [port]
范例二:檢測本機端的port 110 是否正確啟動?
[root@linux ~]# Telnet localhost 110
Trying 127.0.0.1...
Telnet: connect to address 127.0.0.1: Connection refused
7.FTP
[root@linux ~]# FTP [-p] [host|IP] [port]
[root@linux ~]# FTP hostname 318
8.tcpdump
[root@linux ~]# tcpdump [-nn] [-i 接口] [-w 儲存檔名] [-c 次數] [-Ae]
[-qX] [-r 文件] [所欲捕捉的數據內容]
參數:
-nn,直接以 IP 及 Port Number 顯示,而非主機名和服務名稱。
-i,后面接要「監聽」的網絡接口,例如 eth0, lo, ppp0 等等的接口。
-w,如果你要將監聽所得的數據包數據儲存下來,用這個參數就對了。后面接文件名。
-c,監聽的數據包數,如果沒有這個參數, tcpdump 會持續不斷的監聽,
直到用戶輸入 [ctrl]-c 為止。
-A,數據包的內容以 ASCII 顯示,通常用來捉取 WWW 的網頁數據包資料。
-e,使用資料連接層 (OSI 第二層) 的 MAC 數據包數據來顯示。
-q,僅列出較為簡短的數據包信息,每一行的內容比較精簡。
-X,能列出十六進制 (hex) 及 ASCII 的數據包內容,對於監聽數據包內容非常有用。
-r,從后面接的文件將數據包數據讀出來。那個「文件」是已存在的文件,
並且這個「文件」是由 -w 所制作出來的
9.nc
[root@linux ~]# nc [IP|host] [port]
[root@linux ~]# nc -l -p [port]
參數:
-l,作為監聽之用,亦即開啟一個 port 來監聽用戶的聯機。
-p,開啟的這個 Port Number。
范例一:連接本地端的 port 25 查閱相關信息
[root@linux ~]# nc localhost 25
localhost.localdomain [127.0.0.1] 25 (smtp) open
220 pc.dm.tsai ESMTP Postfix
ehlo localhost
250-pc.dm.tsai
250-PIPELINING
250-SIZE 40000000
250-ETRN
quit
221 Bye
重 點 回 顧
1修改網絡接口的硬件相關參數,能使用ifconfig這個命令,包括MTU等。
2 ifup和ifdown其實只是script,在使用時,會主動去 /etc/sysconfig/network- scripts里找到相對應的設備設置文件,才能夠正確地啟動和關閉。
3路由的修改和查閱能使用route來查詢,此外,route亦可進行新增、刪除路由的工作。
4 ip命令能用來作為整個網絡環境的設置,利用ip link能修改網絡設備的硬件相關功能,包括MTU和MAC等,能使用ip address修改TCP/IP方面的參數,包括IP及網段參數等,ip route則能修改路由。
4ping主要是通過ICMP數據包來進行網絡環境的檢測工作,並且能使用ping來查詢整體網段可接受的最大MTU值。
5監測每個節點的連接狀況,能使用traceroute這個命令來追蹤。
6 netstat除了能觀察本機的啟動接口外,還能觀察Unix socket的傳統接口數據。
7host和nslookup默認都是通過/etc/resolv.conf內設置的DNS主機來進行主機名稱和IP的查詢。
8 LFTP能用來匿名登錄遠程的FTP主機。
9Telnet不僅用來進行BBS的登錄,也能用來作為某些端口服務的測試。
10lynx主要的功能是瀏覽,包括本機上HTML語法的文件,wget則主要用來下載WWW的資料。
11捕捉數據包以分析數據包的流向,可使用tcpdump,至於圖像界面的ethereal則能進行更為周詳的解析。
12通過tcpdump分析3次握手,及分析明文傳輸的數據,可發現網絡加密的重要性。
13nc可用來取代Telnet進行某些服務端口的檢測工作,同時若自行編譯nc,可額外地執行-e參數。
ifconfig
ifconfig eth0
ifconfig eth0 192.l68.100.100
ifconfig eth0 192.168.100.100 netmask 255.255.255.0 mtu 1500
ifconfig eth0 mtu 1500
ifconfig eth0:0 192.168.100.200
ifconfig eth0:0 up
ifconfig eth0:0 down
/etc/init.d/network restart
/etc/sysconfig/network-scripts/ifcfg-eth0
route -n
route add -net 192.168.100.0 netmask 255.255.255.0 dev eth0
route del -net 169.254.0.0 netmask 255.255.0.0 dev eth0
route add default gw 192.168.100.254
ping -c 3 192.168.100.l00
ping -c 3 -b 192.168.100.255
traceroute -n www.baidu.com
nslookup www.baidu.com
/844
telnet localhost 110
nc -l -p 25
nc localhost 25