1.設置網絡參數的命令node
命令名稱 | 做用 |
ifconfig | 查詢、設置網卡與IP網絡等相關參數 |
ifup、ifdown | 啓動、關閉網絡接口 |
route | 查看配置路由表(route table) |
ip | 整合式的命令,能夠直接修改上述提到的功能 |
ifconfig、ifup、ifdownshell
[root@www ~]# ifconfig {interface} {up|down} //查看與啓動接口 [root@www ~]# ifconfig interface {options} //設置與修改接口 經常使用選項及參數說明: interface:網絡接口名稱,包括eth0,eth1,ppp0等。 options:可使用的參數。包括: up,down:啓動、關閉該接口(不涉及任何參數) mtu:能夠設置不一樣的MTU數值。 netmask:子網掩碼 broadcast:廣播地址 [root@www ~]# ifconfig eth0 Link encap:Ethernet HWaddr 00:0C:29:6B:6E:1B inet addr:192.168.30.12 Bcast:192.168.30.255 Mask:255.255.255.0 inet6 addr: fe80::20c:29ff:fe6b:6e1b/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:2294 errors:0 dropped:0 overruns:0 frame:0 TX packets:1361 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:658316 (642.8 KiB) TX bytes:171767 (167.7 KiB) lo Link encap:Local Loopback inet addr:127.0.0.1 Mask:255.0.0.0 inet6 addr: ::1/128 Scope:Host UP LOOPBACK RUNNING MTU:65536 Metric:1 RX packets:6 errors:0 dropped:0 overruns:0 frame:0 TX packets:6 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:304 (304.0 b) TX bytes:304 (304.0 b) 各項數據解釋: eth0:網卡的名稱代號,(lo也是); HWaddr:網卡硬件地址,俗稱MAC地址; inet addr:IPv4的IP地址,後續的Bcast、Mask分別表明的是Broadcast與Netmask; inet6 addr:IPv6的IP地址; MTU:網絡接口的最大傳輸單元; RX:表明網絡由啓動到目前爲止的數據包接收狀況,packets表明數據包數量,errors表明數據包發生錯誤的數量,dropped表明數據包因爲有問題而被丟棄的數量; TX:與RX相反,爲網絡有啓動到目前爲止的數據包發送狀況; collisions:表明數據包衝突的狀況,若是發生衝突太屢次,表示主機當前網絡情況不太好; txqueuelen:表明用來傳輸數據的緩衝區的存儲長度; RX bytes、TX bytes:接收、發送的字節總量。
設置臨時IP、更改MTUvim
[root@www ~]# ifconfig eth0 192.168.30.120 \ > netmask 255.255.255.0 mtu 8000 [root@www ~]# ifconfig eth0 Link encap:Ethernet HWaddr 00:0C:29:6B:6E:1B inet addr:192.168.30.120 Bcast:192.168.30.255 Mask:255.255.255.0 inet6 addr: fe80::20c:29ff:fe6b:6e1b/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:8000 Metric:1 RX packets:2750 errors:0 dropped:0 overruns:0 frame:0 TX packets:1682 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:705030 (688.5 KiB) TX bytes:210773 (205.8 KiB) 至於ifup、ifdown命令,直接 [root@www ~]# ifup eth0 [root@www ~]# ifdown eth0 便可。
修改路由routewindows
[root@www ~]# route [-nee] [root@www ~]# route add [-net | -host] [網絡或主機] netmask [mask] [gw | dev] [root@www ~]# route del [-net | -host] [網絡或主機] netmask [mask] [gw | dev] 經常使用參數: -n:不是用通訊協議,直接使用IP地址或者端口號; -ee:顯示更詳細的信息 增長(add)刪除(del)路由的相關參數 -net:後接的路由爲一個網絡; -host:後接的爲連接到單臺主機的路由; netmask:與網絡有關,能夠設置netmask決定網絡的大小 gw:gateway的簡寫,後接IP的數值,與dev不一樣 dev:若是隻是要指定由哪一塊網卡鏈接出去,則使用這個設置,後接eth0等。 [root@www ~]# route -n //單純查看路由狀態 Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 192.168.30.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 1002 0 0 eth0 0.0.0.0 192.168.30.2 0.0.0.0 UG 0 0 0 eth0 [root@www ~]# route Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 192.168.30.0 * 255.255.255.0 U 0 0 0 eth0 link-local * 255.255.0.0 U 1002 0 0 eth0 default 192.168.30.2 0.0.0.0 UG 0 0 0 eth0 各項數聽說明: Destrination,Genmask:這兩個參數就分別是network與netmsk,他們兩個組合成了一個完整的網絡。 Gateway:該網絡是銅駝哪一個Gateway連接出去的?若是顯示0.0.0.0表示該路由是直接由本機傳送,也就是能夠經過局域網的MAC直接發送;若是顯示的是具體IP的話,表示該路由須要通過路由器(網關)的幫忙才能呢個發送出去。 Flags:總共有多個標誌,表明含義以下: U(route is up) :該路由是啓動的。 H(target is a host):目標是一臺主機(IP)而非網絡。 G(use gateway):須要經過外部主機來傳遞數據包。 R(reinstate route for dynamic routing):使用動態路由時,恢復路由信息的標誌。 D(dynamically installed by daemon or redirect):動態路由。 M(modified from routing daemon or redirect):路由已經被修改了。 !(rejecr route):這個路由將不會被接受(用來阻止不安全的網絡) Iface:這個路由傳送的數據包的接口。 此外,在查看的路由信息中,看排序,是由C類地址到B類地址,最後則是默認路由(0.0.0.0/0.0.0.0)
路由的增長、刪除瀏覽器
[root@www ~]# route del -net 192.168.130.12 netmask 255.255.255.0 dev eth0 注意:刪除路由時,必須將路由表上出現的信息都寫入,包括netmask、dev等 [root@www ~]# route add -net 192.168.20.120 netmask 255.255.255.0 dev eth0 注意:增長的路由必需要與主機的當前網絡可一通訊 [root@www ~]# route add default gw 192.168.30.250 注意:增長默認路由的方法,只要有一個默認路由的IP便可,一樣要求增長的路由必須能夠與主機當前的LAN能夠通訊。 全部操做完畢後,重啓網絡服務便可生效!
網絡參數綜合命令:ip安全
[root@www ~]# ip [option] [動做] [命令] 選項與參數: option:設置的參數,主要有: -s:顯示出設備的統計數據(statistics),如接收的數據包總數等; 操做:即針對哪些網絡參數進行操做,包括: link : 與設備(device)相關的設置,包括MTU、MAC之地等; addr/address:關於額外的IP協議,如多IP的實現等; route:與路由有關的相關設置 關於接口設備(device)的相關設置:ip link [root@www ~]# ip [-s] link show //單純的查看該設備的縣官信息 [root@www ~]# ip link set [device] [動做參數] 選項與參數: show:進現實出這個設備的相關屬性,若是加上-s會顯示更多統計數據。 set:能夠開始設置項目,device值得是eth0,eth1等設備名稱。 動做參數: up | down : 啓動或關閉摸個解擴,其餘參數使用默認的以太網 address::若是這個設備能夠更改MAC的話,用這個參數修改 name:給予這個設備一個特殊的名字 mtu:最大傳輸單元
顯示本機全部接口信息bash
[root@www ~]# ip link show 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 8000 qdisc pfifo_fast state UP qlen 1000 link/ether 00:0c:29:6b:6e:1b brd ff:ff:ff:ff:ff:ff [root@www ~]# ip -s link show eth0 2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 8000 qdisc pfifo_fast state UP qlen 1000 link/ether 00:0c:29:6b:6e:1b brd ff:ff:ff:ff:ff:ff RX: bytes packets errors dropped overrun mcast 806108 3769 0 0 0 0 TX: bytes packets errors dropped carrier collsns 307168 2507 0 0 0 0
啓動、關閉eth0服務器
[root@www ~]# ip link set eth0 up/down [root@www ~]# ip link set eth0 mtu 1000 //設置MTU
修改網卡信息網絡
[root@www ~]# ip link set eth0 name xueji RTNETLINK answers: Device or resource busy #上述提示很明確,因此修改以前先關閉eth0,而後在修改 [root@www ~]# ip link set eth0 down [root@www ~]# ip link set eth0 name xueji [root@www ~]# ip link show
[root@www ~]# ip link set eth0 address aa:bb:cc:dd:ee:ff //修改的MAC地址信息
關於額外的IP的相關設定架構
[root@www ~]# ip address show [root@www ~]# ip address [add | del] [IP參數] [dev 設備名稱] [相關參數] 選項與參數: show:僅顯示解擴的IP信息 add | del :進行相關參數的增長(add)或刪除(del)設置,主要有: IP參數:主要就是網絡的設置 dev:這個IP參數所要設置的接口,如eth0,eth1等 相關參數主要有下面這些: broadcast:設置廣播地址,若是設置值是+表示「讓系統自動計算」 label:也就是這個設備的別名,如eth0,eth1等 scope:這個選項的參數一般是以下內容: global:容許來自全部來源的鏈接 site:僅支持IPv6,僅容許本主機的鏈接 link:僅容許本設備自我鏈接 host:僅容許本主機內部的鏈接 因此固然使用global了,默認也是global 實例1 顯示出全部接口IP參數: [root@www ~]# ip address show 實例2 添加一個接口,名稱設爲eth0:xueji [root@www ~]# ip address add 192.168.30.120/24 broadcast + dev eth0 label eth0:xueji [root@www ~]# ifconfig eth0 Link encap:Ethernet HWaddr 00:0C:29:6B:6E:1B inet addr:192.168.30.12 Bcast:192.168.30.255 Mask:255.255.255.0 inet6 addr: fe80::20c:29ff:fe6b:6e1b/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:8000 Metric:1 RX packets:4467 errors:0 dropped:0 overruns:0 frame:0 TX packets:3000 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:875397 (854.8 KiB) TX bytes:362108 (353.6 KiB) eth0:xueji Link encap:Ethernet HWaddr 00:0C:29:6B:6E:1B inet addr:192.168.30.120 Bcast:192.168.30.255 Mask:255.255.255.0 UP BROADCAST RUNNING MULTICAST MTU:8000 Metric:1 ......... 實例3 刪除剛剛添加的eth0:xueji接口 [root@www ~]# ip address del 192.168.30.120/24 dev eth0
關於路由的設置
[root@www ~]# ip route show //單純顯示路由設置 192.168.30.0/24 dev eth0 proto kernel scope link src 192.168.30.12 169.254.0.0/16 dev eth0 scope link metric 1002 default via 192.168.30.2 dev eth0 [root@www ~]# ip route [add | del] [IP 或網絡號] [via gateway] [dev 設備] 選項參數: show:單純顯示出路由表,也可使用list add | del :添加(add)或刪除(del)路由 IP或網絡:可以使用192.168.30.0/24之類的網絡號或者單純的IP地址 via:從那個gateway出去,不必定須要 dev:由哪一個設備連出去,必須 mtu:能夠額外的設置MTU的數值 實例1 顯示當前的路由信息 [root@www ~]# ip route show 192.168.30.0/24 dev eth0 proto kernel scope link src 192.168.30.12 169.254.0.0/16 dev eth0 scope link metric 1002 default via 192.168.30.2 dev eth0 說明: proto:此路由的路由協議,主要有Redirect、Kernel、Boot、Static、Ra等,其中Kernel值的是直接由內核判斷自動設置 scope:路由的範圍,主要是link,也就是與本設備有關的直接鏈接
接下來查看路由的添加與刪除
實例2 添加路由主要是本機直接可溝通的網絡 [root@www ~]# ip route add 192.168.130.0/24 dev eth0 [root@www ~]# ip route show 192.168.130.0/24 dev eth0 scope link 192.168.30.0/24 dev eth0 proto kernel scope link src 192.168.30.12 169.254.0.0/16 dev eth0 scope link metric 1002 default via 192.168.30.2 dev eth0 實例3 添加能夠通往外部的路由,須要經過router [root@www ~]# ip route add 192.168.31.0/24 via 192.168.30.12 dev eth0 [root@www ~]# ip route show 192.168.130.0/24 dev eth0 scope link 192.168.31.0/24 via 192.168.30.12 dev eth0 192.168.30.0/24 dev eth0 proto kernel scope link src 192.168.30.12 169.254.0.0/16 dev eth0 scope link metric 1002 default via 192.168.30.2 dev eth0 實例4 添加默認的路由 [root@www ~]# ip route add default via 192.168.20.12 dev eth0 (這裏是不通的,由於我係統環境限制,方法是正確的) 實例5 刪除上述添加的路由 [root@www ~]# ip route del 192.168.31.0/24 [root@www ~]# ip route del 192.168.130.0/24
網絡排錯及相關命令
[root@www ~]# ping [選項參數] IP 選項與參數: -c 數值:執行ping的次數 -n:在輸出數據時不進行IP與主機名的反查,直接使用IP輸出(速度較快) -s 數值:發送出去的ICMP數據包大小,默認爲56bytes,不能夠放大此數值 -t 數值:TTL的數值,默認是255,沒通過一個節點就會少1 -w 數值:等待響應對方主機的秒數 -M[do | dont]:主要在檢測網絡的MTU數值大小,兩個常見的選項是: do:表明傳送一個DF(Don't Fragment)標誌,讓數據包不能呢個從新拆包與打包 dont:表明不要傳送DF標誌,表示數據包能夠在其餘主機上拆包與打包 實例1 檢測DNS主機223.5.5.5是否存活 [root@www ~]# ping -c 3 223.5.5.5 PING 223.5.5.5 (223.5.5.5) 56(84) bytes of data. 64 bytes from 223.5.5.5: icmp_seq=1 ttl=128 time=11.6 ms 64 bytes from 223.5.5.5: icmp_seq=2 ttl=128 time=11.6 ms 64 bytes from 223.5.5.5: icmp_seq=3 ttl=128 time=11.1 ms --- 223.5.5.5 ping statistics --- 3 packets transmitted, 3 received, 0% packet loss, time 2015ms rtt min/avg/max/mdev = 11.117/11.479/11.664/0.255 ms 上述數據含義說明: 64bytes:表示此次發送的ICMP數據包大小爲64bytes,這是默認值,在某些特殊場合中,如要搜索整個網絡內最大的MTU時,可使用-s 2000之類的數值來取代。 icmp_seq=1:ICMP檢測的次數,第一次編號爲1. ttl=243:TTL與IP數據包內的TTL是相同的,沒通過一個帶有MAC的節點(node)時,如router、bridge時,TTL就會減小1,默認的TTL爲255,你能夠經過一個-t 150之類的方法來從新設置TTL數值。 time=11.6ms:響應時間,單位有ms(0.001s)及us(0.000001s),通常來講,越小的響應時間,表示兩部主機之間的網絡鏈接越良好。
例題 編寫腳本實現檢測整個網絡的主機是否有響應,每臺主機進等待1s,也僅檢測一次
[root@www ~]# cd bin/ [root@www bin]# vim ping.sh #!/bin/bash/ for siteip in $(seq 1 254) do site = "192.168.30.$(siteip)" ping -c 1 -W 1 $(site) & > /dev/null if [ "$?" == "0" ];then echo "$site is up" else echo "$site is down" fi done 注意:若是被檢測主機與當前主機處於同一網絡內,則TTL默認是用64,反之,TTL默認255.
找出最大MTU值
[root@www ~]# ping -c 2 -s 1000 -M do 223.5.5.5 PING 223.5.5.5 (223.5.5.5) 1000(1028) bytes of data. 1008 bytes from 223.5.5.5: icmp_seq=1 ttl=128 time=14.1 ms 1008 bytes from 223.5.5.5: icmp_seq=2 ttl=128 time=13.3 ms --- 223.5.5.5 ping statistics --- 2 packets transmitted, 2 received, 0% packet loss, time 1015ms rtt min/avg/max/mdev = 13.341/13.736/14.131/0.395 ms 有響應,表示能夠接受這個數據包,反之,則說明MTU太大了 [root@www ~]# ping -c 2 -s 80000 -M do 192.168.30.12 ping: packet size too large: 80000 一般狀況下,不要隨意調整MTU值,須要調整的通常是如下狀況: 由於所有的主機都是在內部的局域網,如集羣架構(cluster)的環境下,因爲內部的網絡節點都是咱們能夠控制的,所以能夠經過修改MTU來提升網絡效率 由於操做系統默認的MTU與網絡不符,致使某些網站能夠順利鏈接,某些網站則沒法鏈接,以windows操做系統做爲鏈接共享的主機時,在Client端容易出現這個問題。
常見接口及對應的MTU值
網絡接口 | MTU |
Ethernet | 1500 |
PPPOE | 1492 |
Dial-up(Modem) | 576 |
兩主機間各節點分析:traceroute
[root@www ~]# traceroute [選項與參數] IP 選項與參數: -n:能夠沒必要進行主機的名稱解析,單純用IP,速度快 -U:使用UDP的port 33434來進行檢測,這是默認的檢測協議 -I:使用ICMP的方式來進行檢測 -T:使用TCP來進行檢測,通常使用port 80測試 -w:若對方主機在幾秒鐘內沒有迴應就說明不通,默認5秒 -p 端口號:若不想使用UDP與TCP的默認端口來檢測,可在此改變端口號 -i 設備:用在比較複雜的環境,若是網絡接口不少很複雜時,纔會用到此參數。 如當前主機有兩條ADSL能夠鏈接到外部,那麼當前主機有兩個ppp,此時就可使用-i來選擇是ppp0仍是ppp1
-g 路由:與-i的參數相仿,只是-g後面接的是gateway的IP
檢測本機至baidu的鏈接狀態
[root@www ~]# traceroute -n www.baidu.com traceroute to www.baidu.com (115.239.210.27), 30 hops max, 60 byte packets 1 192.168.30.2 0.128 ms 0.390 ms 0.402 ms 2 * * * 3 * * * 4 * * * 5 * * * 6 * * * 星號多是防火牆設備等的狀況致使 使用TCP來檢測,等待時間1s [root@www ~]# traceroute -w 1 -n -T www.baidu.com traceroute to www.baidu.com (115.239.210.27), 30 hops max, 60 byte packets 1 192.168.30.2 0.128 ms 0.102 ms 0.342 ms 2 115.239.210.27 13.163 ms 11.596 ms 12.818 ms
查看本機的網絡鏈接與後門:netstat
[root@www ~]# netstat -[rn] //與路由相關的參數 [root@www ~]# netstat -[antulpc] //與網絡接口有關的參數 選項與參數: 與路由相關的參數說明: -r:列出路由表(router table)功能等同route命令 -n:不是用主機名與服務名稱,使用IP與port number如同route -n 與網絡接口有關的參數: -a:列出全部的鏈接狀態,包括tcp/udp/unix socket等 -t:僅列出TCP數據包的鏈接 -u:僅列出UDP數據包的鏈接 -l:僅列出已在Listen(監聽)的服務的網絡狀態 -p:列出PID與Program的文件名 -c:能夠設置幾秒鐘後自動更新一次,如-c 5 爲每5s更新一次網絡狀態的顯示
實例1 列出當前的路由表狀態,且以IP及port number進行顯示
[root@www ~]# netstat -rn Kernel IP routing table Destination Gateway Genmask Flags MSS Window irtt Iface 192.168.30.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.30.2 0.0.0.0 UG 0 0 0 eth0 其實效果跟route -n同樣
實例2 列出當前的全部網絡鏈接狀態,使用IP與port number
[root@www ~]# netstat -an Active Internet connections (servers and established) Proto Recv-Q Send-Q Local Address Foreign Address State tcp 0 0 127.0.0.1:631 0.0.0.0:* LISTEN tcp 0 0 127.0.0.1:25 0.0.0.0:* .....省略..... 上述數聽說明: Proto:該鏈接的數據包協議,主要爲TCP/IP等數據包 Recv-Q:由非用戶程序鏈接所複製而來的總bytes數 Send-Q:由遠程主機發送而來,但不具備ACK標誌的總bytes數,亦指主動鏈接SYN或其餘標誌的數據包所佔的bytes數。 Local Address:本地端的地址,能夠是IP(-n選項存在時),也能夠是完整的主機名。使用的格式就是」IP:port「,只是IP的格式有IPv4及IPv6的差別。如上述代碼所示,在port 22的接口中,使用」::22「就是針對IPv6的現實,事實上,它就至關於0.0.0.0:22.至於port25僅針對lo接口開放,意指Internet基本上沒法鏈接到本機的25端口的。 Foreign Address:遠程主機的IP及port number stat:狀態欄,主要有如下幾種狀態 ESTABLISED:已創建的鏈接狀態 SYN_SENT:發出主動鏈接(SYN標誌)的鏈接數據包 SYN_RECV:接收到一個要求鏈接的主動鏈接數據包 FIN_WAIT1:該套接字服務(socket)已中斷,該鏈接正在斷線中 FIN_WAIT2:該鏈接已掛斷,但正在等待對方主機響應斷線確認的數據包 TIME_WAIT:該鏈接已掛斷,但socket還在網絡上等待結束。 LISTEN:一般用在服務的監聽port,可以使用」-l「參數查閱
實例 3顯示當前已經啓動的網絡服務
[root@www ~]# netstat -tlnup Active Internet connections (only servers) Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name tcp 0 0 127.0.0.1:631 0.0.0.0:* LISTEN 1644/cupsd tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 1966/master tcp 0 0 0.0.0.0:47673 0.0.0.0:* LISTEN 1588/rpc.statd tcp 0 0 0.0.0.0:445 0.0.0.0:* LISTEN 2031/smbd ............省略.........
實例4 查看本機上全部的網絡鏈接狀態
[root@www ~]# netstat -anltup Active Internet connections (servers and established) Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name tcp 0 0 127.0.0.1:631 0.0.0.0:* LISTEN 1644/cupsd tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 1966/master tcp 0 0 0.0.0.0:47673 0.0.0.0:* LISTEN 1588/rpc.statd ...........省略............. 若是想要終止一個服務,將其對應的PID找出來,kill掉便可。
在Linux系統中服務名稱與端口對應的信息存放在/etc/services文件中。
檢測主機名與IP的對應
host命令
[root@www ~]# host [-a] hostname [server] 選項與參數: -a:列出該主機詳細的各項主機名設置數據 [server] :可使用由/etc/resollv.conf文件定義的DNS服務器IP來查詢
實例1 列出baidu.com的IP
[root@www ~]# host www.baidu.com www.baidu.com is an alias for www.a.shifen.com. www.a.shifen.com has address 115.239.211.112 www.a.shifen.com has address 115.239.210.27
能夠看出解析出來的IP是115.239.211.112和115.239.210.27,拿其中一個IP來講,115.239.211.112是由/etc/recolv.conf文件解析出來的,若是不想使用這個文件來解析,可使用
[root@www ~]# host www.baidu.com 223.5.5.5 Using domain server: Name: 223.5.5.5 Address: 223.5.5.5#53 Aliases: www.baidu.com is an alias for www.a.shifen.com. www.a.shifen.com has address 180.97.33.107 www.a.shifen.com has address 180.97.33.108
另一個命令nslookup
[root@www ~]# nslookup [-query=[type]] [hostname[IP]] 選項與參數: -query=type:查詢的類型,除了傳統的IP與主機名對應外,DNS還有不少信息,因此咱們能夠查詢不少的信息,包括mx、cname等 如-query=mx的查詢方法
實例1 找出www.sina.com.cn的IP
[root@www ~]# nslookup www.sina.com.cn Server: 192.168.30.2 Address: 192.168.30.2#53 Non-authoritative answer: www.sina.com.cn canonical name = spool.grid.sinaedge.com. Name: spool.grid.sinaedge.com Address: 202.102.94.124
實例2 找出223.5.5.5的主機名
[root@www ~]# nslookup 223.5.5.5 Server: 192.168.30.2 Address: 192.168.30.2#53 Non-authoritative answer: 5.5.5.223.in-addr.arpa name = public1.alidns.com. Authoritative answers can be found from:
遠程鏈接命令與即時通訊軟件
telnet命令
由於默認沒有安裝telnet,因此須要安裝telnet [root@www ~]# yum install -y telnet 實例1 檢測本地主機的21這個port是否正確 [root@www ~]# telnet localhost 21 Trying ::1... telnet: connect to address ::1: Connection refused Trying 127.0.0.1... telnet: connect to address 127.0.0.1: Connection refused #出現這樣的信息,表明這個port沒有啓動或者是這個鏈接有問題,由於被refused了 [root@www ~]# telnet localhost 25 Trying ::1... Connected to localhost. Escape character is '^]'. 220 www.xueji.com ESMTP Postfix ehlo localhost 250-www.xueji.com 250-PIPELINING 250-SIZE 10240000 250-VRFY 250-ETRN 250-ENHANCEDSTATUSCODES 250-8BITMIME 250 DSN quit 221 2.0.0 Bye Connection closed by foreign host
ftp鏈接
[root@www ~]# ftp [host | IP] [port] 實例1 鏈接到崑山科大去看一下 首先要安裝ftp [root@www ~]# yum install -y ftp [root@www ~]# ftp ftp.ksu.edu.tw Connected to ftp.ksu.edu.tw (120.114.150.21). 220 Welcome to Kun Shan University FTP service. Name (ftp.ksu.edu.tw:root): anonymous 331 Please specify the password. Password: //直接回車 230 Login successful. Remote system type is UNIX. Using binary mode to transfer files. ftp> help Commands may be abbreviated. Commands are: ! debug mdir sendport site $ dir mget put size account disconnect mkdir pwd status append exit mls quit struct ascii form mode quote system bell get modtime recv sunique binary glob mput reget tenex bye hash newer rstatus tick case help nmap rhelp trace cd idle nlist rename type cdup image ntrans reset user chmod lcd open restart umask close ls prompt rmdir verbose cr macdef passive runique ? delete mdelete proxy send ftp> dir //顯示遠程服務器目錄內容 ftp> cd //切換到目錄 ftp> get //下載單一文件get後面直接跟文件名 ftp> put //上傳單個文件 ftp> mget //下載多個文件 ftp> delete //刪除多個文件 ftp> mkdir //建立目錄 ftp> lcd //切換到本地主機的/home/目錄 ftp> passive //啓動或關閉passive ftp> binary //數據傳輸模式設置爲binary ftp> bye //結束ftp ftp> quit 221 Goodbye.
自動化腳本(lftp)
[root@www ~]# ltfp [-p port] [-u user[,pass]] [host|IP] [root@www ~]# ltfp -f filename [root@www ~]# ltfp -c "commands" 選項參數: -p:後面能夠直接上遠程FTP主機提供的port -u:後面則是接上帳號與密碼,就可以鏈接上遠程主機了,若是沒有加帳號密碼,lftp默認會使用anonymous嘗試匿名登陸 -f: 能夠將命令寫入腳本中,能夠幫助進行shellshell script自動處理 -c:後面直接加上所須要的命令 [root@www ~]# yum install -y lftp [root@www ~]# lftp ftp.ksu.edu.tw lftp ftp.ksu.edu.tw:~> bye //看這裏直接就登陸上去 自動處理腳本 [root@www ~]# cd bin/ [root@www bin]# vim lftp.sh #!/bin/bash open ftp.ksu.edu.tw cd /pub/CentOS mget -c -d RPM-GPG* bye
圖形接口的即時通訊軟件Pidgin(gaim的延伸)這裏再也不演示。
文字瀏覽器links
[root@www ~]# links [options] [URL] 選項與參數: -anonymous [0|1]:是否使用匿名登陸的意思 -dump [0|1]:是否將網頁的數據直接輸出到standard out 而非links軟件功能 -dump_charset:後面接想要經過dump輸出到屏幕的語系編碼,簡體中文使用cp936 實例1 [root@www ~]# links http://www.kernel.org
文字接口下載器wget
若是要鏈接的網站有帳號和密碼保護,能夠利用--http-user=username和--http-password=password兩個參數,--quiet:不顯示wget在捕獲數據時的顯示信息
除此以外,還能夠在/etc/wgetrc文件中添加proxy
數據抓包
文字接口數據包捕獲器tcpdump
[root@www ~]# tcpdump [-Aennqx] [-i 接口] [-w 存儲文件名] [-c 次數] [-r 文件] [所要摘取的數據包數據格式] 選項與參數: -A:數據包的內容以ASCII顯示,一般用來抓取WWW網頁數據包數據 -e:使用數據鏈路層(OSI第二層)的MAC數據包數據來顯示 -nn:直接以IP及port number顯示,而非主機名與服務名稱 -q:僅列出較爲簡短的數據包信息,每一行的內容比較精簡 -x:能夠列出十六進制(hex)以及ASCII的數據包內容,對於監聽數據包內容頗有用 -i:後面接要監聽的網絡接口,如eth0、lo、ppp0等的界面 -w:若是你要將監聽所得的數據包數據存儲下來,用這個參數就對了,後面接文件名 -c: 監聽數據包數,若是沒有這個參數,tcpdump會持續不斷的監聽,直到用戶輸入Ctrl+c爲止 -r:從後面接的文件將數據包數據讀出來,這個文件是已經存在的文件,而且這個文件是由-w所製做出來的
所獲取的數據包格式:咱們能夠專門針對某些通訊協議或者是IP來源進行數據包捕獲
那就能夠簡化輸出的結果,並取得最有用的信息,常見的表示方法有:
'host foo'、'host 127.0.0.1':針對單臺主機來進行數據包捕獲
'net 192.168':針對某個網絡來進行數據包的捕獲
'src host 127.0.0.1' 'dst net 192.168':同時加上來源(src)或目標(dst)限制
'tcp port 21':還能夠針對通訊協議檢測,如tcp、udp、arp、ether等
實例1 以IP與port number獲取eth0這個網卡上的數據包,持續3s
[root@www ~]# tcpdump -i eth0 -nn 11:54:25.502894 IP 192.168.30.12.22 > 192.168.30.1.13190: Flags [P.], seq 2275120:2275392, ack 449, win 211, length 272 11:54:25.503018 IP 192.168.30.12.22 > 192.168.30.1.13190: Flags [P.], seq 2275392:2275568, ack 449, win 211, length 176 ....中間省略 15317 packets captured //獲取到的數據包數量 15318 packets received by filter //由過濾所得的總數據包數量 0 packets dropped by kernel //被內核所丟棄的數據包 上述數據解釋: 11:54:25.502894:這是該數據包捕獲的時間,「時:分:秒」 IP:經過的通訊協議是IP 192.168.30.12.22 >傳送端是192.168.30.12這個IP,而傳送的port number爲22,大於(>)的符號指的是數據包的傳輸方向 192.168.30.1.13190:接收端的IP是192.168.30.1,且該主機開啓port 1937來接收。 [P.],seq 2275120:2275392:這個數據包帶有PUSH的數據傳輸標誌,且傳輸的數據爲整個數據的2275120~2275392byte。 ack 449:ACK的相關資料
只取出port 21的鏈接數據包
[root@www ~]# tcpdump -i eth0 -nn port 21 tcpdump: verbose output suppressed, use -v or -vv for full protocol decode listening on eth0, link-type EN10MB (Ethernet), capture size 65535 bytes
打開兩個終端窗口
在第一個窗口
[root@www ~]# tcpdump -i lo -nn
在第二個窗口
[root@www ~]# ssh localhost The authenticity of host 'localhost (::1)' can't be established. RSA key fingerprint is 70:92:4b:c7:32:d2:bd:9a:4c:e8:90:c0:3e:f3:ac:2b. Are you sure you want to continue connecting (yes/no)? yes Warning: Permanently added 'localhost' (RSA) to the list of known hosts. root@localhost's password: Last login: Fri Sep 7 12:09:25 2018 from 192.168.30.1
再回到第一個窗口查看
[root@www ~]# tcpdump -i lo -nn tcpdump: verbose output suppressed, use -v or -vv for full protocol decode listening on lo, link-type EN10MB (Ethernet), capture size 65535 bytes 12:09:37.171713 IP6 ::1.43812 > ::1.22: Flags [S], seq 548606666, win 65476, options [mss 65476,sackOK,TS val 33405488 ecr 0,nop,wscale 7], length 0 12:09:37.171730 IP6 ::1.22 > ::1.43812: Flags [S.], seq 3512480885, ack 548606667, win 65464, options [mss 65476,sackOK,TS val 33405488 ecr 33405488,nop,wscale 7], length 0 12:09:37.171742 IP6 ::1.43812 > ::1.22: Flags [.], ack 1, win 512, options [nop,nop,TS val 33405488 ecr 33405488], length 0 12:09:37.199189 IP6 ::1.22 > ::1.43812: Flags [P.], seq 1:22, ack 1, win 512, options [nop,nop,TS val 33405497 ecr 33405488], length 21 12:09:37.199214 IP6 ::1.43812 > ::1.22: Flags [.], ack 22, win 512, options [nop,nop,TS val 33405515 ecr 33405497], length 0
.....省略
如何使用tcpdump來監聽來自eth0網卡且通訊協議爲port22,目標數據包來源爲192.168.30.12的數據包?
[root@www ~]# tcpdump -i eth0 -nn 'port 22 and src host 192.168.30.9' 在另外一個主機上(192.168.30.9)上執行ping 192.168.30.12 再去第一個窗口查看 [root@www ~]# tcpdump -i eth0 -nn 'port 22 and src host 192.168.30.9' tcpdump: verbose output suppressed, use -v or -vv for full protocol decode listening on eth0, link-type EN10MB (Ethernet), capture size 65535 bytes 12:16:33.731358 IP 192.168.30.9.22 > 192.168.30.1.5582: Flags [P.], seq 8004:8120, ack 53, win 273, length 116 12:16:34.731344 IP 192.168.30.9.22 > 192.168.30.1.5582: Flags [P.], seq 8120:8236, ack 53, win 273, length 116 12:16:35.731101 IP 192.168.30.9.22 > 192.168.30.1.5582: Flags [P.], seq 8236:8352, ack 53, win 273, length 116 12:16:36.731267 IP 192.168.30.9.22 > 192.168.30.1.5582: Flags [P.], seq 8352:8468, ack 53, win 273, length 116 12:16:37.731392 IP 192.168.30.9.22 > 192.168.30.1.5582: Flags [P.], seq 8468:8584, ack 53, win 273, length 116 12:16:38.731473 IP 192.168.30.9.22 > 192.168.30.1.5582: Flags [P.], seq 8584:8700, ack 53, win 273, length 116 12:16:39.731602 IP 192.168.30.9.22 > 192.168.30.1.5582: Flags [P.], seq 8700:8816, ack 53, win 273, length 116
圖形接口數據包捕獲利器:wireshark
[root@www ~]# yum install -y wireshark wireshark-gnome
任意啓動TCP/UDP數據包的端口鏈接:nc、netcat
[root@www ~]# nc [-u] [IP|host] [port] [root@www ~]# nc -l [IP|host] [port] 選項與參數 -l:做爲監聽之用,也就是打開一個port來監聽用戶的鏈接 -u:不使用TCP而使用UDP做爲鏈接數據包狀態 實例1 與telenet相似,鏈接本地端port 25查閱相關信息 [root@www ~]# yum install -y nc [root@www ~]# nc localhost 25 220 www.xueji.com ESMTP Postfix 實例2 激活一個port 20000 來監聽用戶的鏈接要求 [root@www ~]# nc -l localhost 20000 & [1] 10374 [root@www ~]# netstat -lntup | grep nc tcp 0 0 ::1:20000 :::* LISTEN 10374/nc 打開另外一個窗口,執行 [root@www ~]# nc localhost 20000 //回車以後,輸入字符串 haha 回到第一個窗口查看 [root@www ~]# haha