檢查Linux系統(tǒng)上的網(wǎng)絡(luò)連接
Linux 系統(tǒng)提供了許多有用的命令來檢查網(wǎng)絡(luò)配置和連接。下面來看幾個,包括 ifquery、ifup、ifdown 和 ifconfig。
Linux 上有許多可用于查看網(wǎng)絡(luò)設(shè)置和連接的命令。在今天的文章中,我們將會通過一些非常方便的命令來看看它們是如何工作的。
ifquery 命令
一個非常有用的命令是 ifquery。這個命令應(yīng)該會顯示一個網(wǎng)絡(luò)接口列表。但是,你可能只會看到類似這樣的內(nèi)容 - 僅顯示回環(huán)接口:
- $ ifquery --list
- lo
如果是這種情況,那說明你的 /etc/network/interfaces 不包括除了回環(huán)接口之外的網(wǎng)絡(luò)接口信息。在下面的例子中,假設(shè)你使用 DHCP 來分配地址,且如果你希望它更有用的話,你可以添加例子***的兩行。
- # interfaces(5) file used by ifup(8) and ifdown(8)
- auto lo
- iface lo inet loopback
- auto eth0
- iface eth0 inet dhcp
ifup 和 ifdown 命令
可以使用相關(guān)的 ifup 和 ifdown 命令來打開網(wǎng)絡(luò)連接并根據(jù)需要將其關(guān)閉,只要該文件具有所需的描述性數(shù)據(jù)即可。請記住,“if” 在這里意思是接口,這與 ifconfig 命令中的一樣,而不是如果我只有一個大腦 中的 “if”。
ifconfig 命令
另外,ifconfig 命令完全不讀取 /etc/network/interfaces,但是仍然提供了網(wǎng)絡(luò)接口相當(dāng)多的有用信息 —— 配置數(shù)據(jù)以及可以告訴你每個接口有多忙的數(shù)據(jù)包計數(shù)。ifconfig 命令也可用于關(guān)閉和重新啟動網(wǎng)絡(luò)接口(例如:ifconfig eth0 down)。
- $ ifconfig eth0
- eth0 Link encap:Ethernet HWaddr 00:1e:4f:c8:43:fc
- inet addr:192.168.0.6 Bcast:192.168.0.255 Mask:255.255.255.0
- inet6 addr: fe80::b44b:bdb6:2527:6ae9/64 Scope:Link
- UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
- RX packets:60474 errors:0 dropped:0 overruns:0 frame:0
- TX packets:33463 errors:0 dropped:0 overruns:0 carrier:0
- collisions:0 txqueuelen:1000
- RX bytes:43922053 (43.9 MB) TX bytes:4000460 (4.0 MB)
- Interrupt:21 Memory:fe9e0000-fea00000
輸出中的 RX 和 TX 數(shù)據(jù)包計數(shù)很低。此外,沒有報告錯誤或數(shù)據(jù)包沖突。或許可以用 uptime 命令確認此系統(tǒng)最近才重新啟動。
上面顯示的廣播 (Bcast) 和網(wǎng)絡(luò)掩碼 (Mask) 地址表明系統(tǒng)運行在 C 類等效網(wǎng)絡(luò)(默認)上,所以本地地址范圍從 192.168.0.1 到 192.168.0.254。
- netstat 命令
netstat 命令提供有關(guān)路由和網(wǎng)絡(luò)連接的信息。netstat -rn 命令顯示系統(tǒng)的路由表。192.168.0.1 是本地網(wǎng)關(guān) (Flags=UG)。
- $ netstat -rn
- Kernel IP routing table
- Destination Gateway Genmask Flags MSS Window irtt Iface
- 0.0.0.0 192.168.0.1 0.0.0.0 UG 0 0 0 eth0
- 169.254.0.0 0.0.0.0 255.255.0.0 U 0 0 0 eth0
- 192.168.0.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
上面輸出中的 169.254.0.0 條目僅在你正在使用或計劃使用本地鏈路通信時才有必要。如果不是這樣的話,你可以在 /etc/network/if-up.d/avahi-autoipd 中注釋掉相關(guān)的行:
- $ tail -12 /etc/network/if-up.d/avahi-autoipd
- #if [ -x /bin/ip ]; then
- # # route already present?
- # ip route show | grep -q '^169.254.0.0/16[[:space:]]' && exit 0
- #
- # /bin/ip route add 169.254.0.0/16 dev $IFACE metric 1000 scope link
- #elif [ -x /sbin/route ]; then
- # # route already present?
- # /sbin/route -n | egrep -q "^169.254.0.0[[:space:]]" && exit 0
- #
- # /sbin/route add -net 169.254.0.0 netmask 255.255.0.0 dev $IFACE metric 1000
- #fi
netstat -a 命令
netstat -a 命令將顯示“所有”網(wǎng)絡(luò)連接。為了將其限制為顯示正在監(jiān)聽和已建立的連接(通常更有用),請改用 netstat -at 命令。
- $ netstat -at
- Active Internet connections (servers and established)
- Proto Recv-Q Send-Q Local Address Foreign Address State
- tcp 0 0 *:ssh *:* LISTEN
- tcp 0 0 localhost:ipp *:* LISTEN
- tcp 0 0 localhost:smtp *:* LISTEN
- tcp 0 256 192.168.0.6:ssh 192.168.0.32:53550 ESTABLISHED
- tcp6 0 0 [::]:http [::]:* LISTEN
- tcp6 0 0 [::]:ssh [::]:* LISTEN
- tcp6 0 0 ip6-localhost:ipp [::]:* LISTEN
- tcp6 0 0 ip6-localhost:smtp [::]:* LISTEN
host 命令
host 命令就像 nslookup 一樣,用來查詢遠程系統(tǒng)的 IP 地址,但是還提供系統(tǒng)的郵箱處理地址。
- $ host world.std.com
- world.std.com has address 192.74.137.5
- world.std.com mail is handled by 10 smtp.theworld.com.
nslookup 命令
nslookup 還提供系統(tǒng)中(本例中是本地系統(tǒng))提供 DNS 查詢服務(wù)的信息。
- $ nslookup world.std.com
- Server: 127.0.1.1
- Address: 127.0.1.1#53
- Non-authoritative answer:
- Name: world.std.com
- Address: 192.74.137.5
dig 命令
dig 命令提供了很多有關(guān)連接到遠程系統(tǒng)的信息 - 包括與我們通信的名稱服務(wù)器以及查詢需要多長時間進行響應(yīng),并經(jīng)常用于故障排除。
- $ dig world.std.com
- ; <<>> DiG 9.10.3-P4-Ubuntu <<>> world.std.com
- ;; global options: +cmd
- ;; Got answer:
- ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 28679
- ;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1
- ;; OPT PSEUDOSECTION:
- ; EDNS: version: 0, flags:; udp: 512
- ;; QUESTION SECTION:
- ;world.std.com. IN A
- ;; ANSWER SECTION:
- world.std.com. 78146 IN A 192.74.137.5
- ;; Query time: 37 msec
- ;; SERVER: 127.0.1.1#53(127.0.1.1)
- ;; WHEN: Mon Oct 09 13:26:46 EDT 2017
- ;; MSG SIZE rcvd: 58
nmap 命令
nmap 經(jīng)常用于探查遠程系統(tǒng),但是同樣也用于報告本地系統(tǒng)提供的服務(wù)。在下面的輸出中,我們可以看到登錄可以使用 ssh、smtp 用于電子郵箱、web 站點也是啟用的,并且 ipp 打印服務(wù)正在運行。
- $ nmap localhost
- Starting Nmap 7.01 ( https://nmap.org ) at 2017-10-09 15:01 EDT
- Nmap scan report for localhost (127.0.0.1)
- Host is up (0.00016s latency).
- Not shown: 996 closed ports
- PORT STATE SERVICE
- 22/tcp open ssh
- 25/tcp open smtp
- 80/tcp open http
- 631/tcp open ipp
- Nmap done: 1 IP address (1 host up) scanned in 0.09 seconds
Linux 系統(tǒng)提供了很多有用的命令用于查看網(wǎng)絡(luò)配置和連接。如果你都探索完了,請記住 apropos network 或許會讓你了解更多。