13個Linux網絡配置和故障排除命令

電腦連接在一個網路中,以彼此交換信息或資源。兩台或更多的電腦透過被稱為 計算機網路 的網路媒體相互連接。有許多網路設備或媒體參與形成計算機網路。

裝有 Linux作業系統 的電腦,無論是小型還是大型網路,都可以通過其 多任務和多用戶 的特性成為網路的一部分。系統和網路的持續運行是 系統/網路管理員的 工作任務。

[ 您可能也喜歡:22個Linux網路命令供Sysadmin使用 ]

在本文中,我們將回顧在Linux中經常使用的網路配置和故障排除命令。

1. ifconfig 命令

ifconfig接口配置器)命令用於初始化接口,分配 IP地址 給接口,並根據需要 啟用禁用 接口。

使用此命令,您可以查看分配給接口的 IP地址硬件 / MAC地址,以及 MTU最大傳輸單元)大小。

# ifconfig

eth0      Link encap:Ethernet  HWaddr 00:0C:29:28:FD:4C
          inet addr:192.168.50.2  Bcast:192.168.50.255  Mask:255.255.255.0
          inet6 addr: fe80::20c:29ff:fe28:fd4c/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:6093 errors:0 dropped:0 overruns:0 frame:0
          TX packets:4824 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:6125302 (5.8 MiB)  TX bytes:536966 (524.3 KiB)
          Interrupt:18 Base address:0x2000

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:16436  Metric:1
          RX packets:8 errors:0 dropped:0 overruns:0 frame:0
          TX packets:8 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:480 (480.0 b)  TX bytes:480 (480.0 b)

ifconfig 用界面(eth0)命令僅顯示特定界面詳細信息,如IP地址MAC地址等。使用-a選項將顯示所有可用界面詳細信息,如果已禁用,也會顯示。

# ifconfig eth0

eth0      Link encap:Ethernet  HWaddr 00:0C:29:28:FD:4C
          inet addr:192.168.50.2  Bcast:192.168.50.255  Mask:255.255.255.0
          inet6 addr: fe80::20c:29ff:fe28:fd4c/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:6119 errors:0 dropped:0 overruns:0 frame:0
          TX packets:4841 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:6127464 (5.8 MiB)  TX bytes:539648 (527.0 KiB)
          Interrupt:18 Base address:0x2000

在Linux中設置IP地址和網關

在運行時為界面分配IP地址網關。該設置將在系統重新啟動時被刪除。

# ifconfig eth0 192.168.50.5 netmask 255.255.255.0

啟用或禁用特定界面

啟用禁用特定界面,我們使用以下示例命令。

啟用eth0
# ifup eth0
禁用eth0
# ifdown eth0

設置MTU大小

默認情況下,MTU大小為1500。我們可以使用以下命令設置所需的MTU大小。將XXXX替換為大小。

# ifconfig eth0 mtu XXXX

將界面設置為混雜模式

網絡界面僅接收屬於該特定NIC的封包。如果將界面設置為混雜模式,它將接收所有封包。這對捕獲封包並稍後分析它們非常有用。為此,您可能需要超級用戶訪問權限。

# ifconfig eth0 - promisc

更新:大多數現代Linux發行版中已將ifconfig命令替換為IP命令

2. Ping命令

封包網際網路探測Packet INternet Groper)命令是測試兩個節點之間連通性的最佳方式。無論是區域網路LAN)還是廣域網路WAN)。

Ping使用ICMP網際網路控制訊息協定)與其他設備通信。您可以使用以下命令ping主機名稱或IP地址

# ping 4.2.2.2

PING 4.2.2.2 (4.2.2.2) 56(84) bytes of data.
64 bytes from 4.2.2.2: icmp_seq=1 ttl=44 time=203 ms
64 bytes from 4.2.2.2: icmp_seq=2 ttl=44 time=201 ms
64 bytes from 4.2.2.2: icmp_seq=3 ttl=44 time=201 ms

OR

# ping www.tecmint.com

PING tecmint.com (50.116.66.136) 56(84) bytes of data.
64 bytes from 50.116.66.136: icmp_seq=1 ttl=47 time=284 ms
64 bytes from 50.116.66.136: icmp_seq=2 ttl=47 time=287 ms
64 bytes from 50.116.66.136: icmp_seq=3 ttl=47 time=285 ms

Linux ping命令中,直到您中斷為止都會持續執行。帶有-c選項的ping在N個請求(成功或錯誤回應)後退出。

# ping -c 5 www.tecmint.com

PING tecmint.com (50.116.66.136) 56(84) bytes of data.
64 bytes from 50.116.66.136: icmp_seq=1 ttl=47 time=285 ms
64 bytes from 50.116.66.136: icmp_seq=2 ttl=47 time=285 ms
64 bytes from 50.116.66.136: icmp_seq=3 ttl=47 time=285 ms
64 bytes from 50.116.66.136: icmp_seq=4 ttl=47 time=285 ms
64 bytes from 50.116.66.136: icmp_seq=5 ttl=47 time=285 ms

--- tecmint.com ping statistics ---
5 packets transmitted, 5 received, 0% packet loss, time 4295ms
rtt min/avg/max/mdev = 285.062/285.324/285.406/0.599 ms

3. 追蹤路徑命令

traceroute是一個網路故障排除工具,顯示到達目的地所花費的跳數,並確定封包的行進路徑。以下我們正在追蹤到全球DNS服務器IP地址,並且能夠到達目的地,同時顯示封包行進的路徑。

# traceroute 4.2.2.2

traceroute to 4.2.2.2 (4.2.2.2), 30 hops max, 60 byte packets
 1  192.168.50.1 (192.168.50.1)  0.217 ms  0.624 ms  0.133 ms
 2  227.18.106.27.mysipl.com (27.106.18.227)  2.343 ms  1.910 ms  1.799 ms
 3  221-231-119-111.mysipl.com (111.119.231.221)  4.334 ms  4.001 ms  5.619 ms
 4  10.0.0.5 (10.0.0.5)  5.386 ms  6.490 ms  6.224 ms
 5  gi0-0-0.dgw1.bom2.pacific.net.in (203.123.129.25)  7.798 ms  7.614 ms  7.378 ms
 6  115.113.165.49.static-mumbai.vsnl.net.in (115.113.165.49)  10.852 ms  5.389 ms  4.322 ms
 7  ix-0-100.tcore1.MLV-Mumbai.as6453.net (180.87.38.5)  5.836 ms  5.590 ms  5.503 ms
 8  if-9-5.tcore1.WYN-Marseille.as6453.net (80.231.217.17)  216.909 ms  198.864 ms  201.737 ms
 9  if-2-2.tcore2.WYN-Marseille.as6453.net (80.231.217.2)  203.305 ms  203.141 ms  202.888 ms
10  if-5-2.tcore1.WV6-Madrid.as6453.net (80.231.200.6)  200.552 ms  202.463 ms  202.222 ms
11  if-8-2.tcore2.SV8-Highbridge.as6453.net (80.231.91.26)  205.446 ms  215.885 ms  202.867 ms
12  if-2-2.tcore1.SV8-Highbridge.as6453.net (80.231.139.2)  202.675 ms  201.540 ms  203.972 ms
13  if-6-2.tcore1.NJY-Newark.as6453.net (80.231.138.18)  203.732 ms  203.496 ms  202.951 ms
14  if-2-2.tcore2.NJY-Newark.as6453.net (66.198.70.2)  203.858 ms  203.373 ms  203.208 ms
15  66.198.111.26 (66.198.111.26)  201.093 ms 63.243.128.25 (63.243.128.25)  206.597 ms 66.198.111.26 (66.198.111.26)  204.178 ms
16  ae9.edge1.NewYork.Level3.net (4.68.62.185)  205.960 ms  205.740 ms  205.487 ms
17  vlan51.ebr1.NewYork2.Level3.net (4.69.138.222)  203.867 ms vlan52.ebr2.NewYork2.Level3.net (4.69.138.254)  202.850 ms vlan51.ebr1.NewYork2.Level3.net (4.69.138.222)  202.351 ms
18  ae-6-6.ebr2.NewYork1.Level3.net (4.69.141.21)  201.771 ms  201.185 ms  201.120 ms
19  ae-81-81.csw3.NewYork1.Level3.net (4.69.134.74)  202.407 ms  201.479 ms ae-92-92.csw4.NewYork1.Level3.net (4.69.148.46)  208.145 ms
20  ae-2-70.edge2.NewYork1.Level3.net (4.69.155.80)  200.572 ms ae-4-90.edge2.NewYork1.Level3.net (4.69.155.208)  200.402 ms ae-1-60.edge2.NewYork1.Level3.net (4.69.155.16)  203.573 ms
21  b.resolvers.Level3.net (4.2.2.2)  199.725 ms  199.190 ms  202.488 ms

4. 網路狀態命令

Netstat網路統計)命令顯示連接信息、路由表信息等。要顯示路由表信息,請使用-r選項。

# netstat -r

Kernel IP routing table
Destination     Gateway         Genmask         Flags   MSS Window  irtt Iface
192.168.50.0    *               255.255.255.0   U         0 0          0 eth0
link-local      *               255.255.0.0     U         0 0          0 eth0
default         192.168.50.1    0.0.0.0         UG        0 0          0 eth0

請參閱我們早前發表的有關Linux中的20個Netstat命令示例的文章。

更新:在大多數現代Linux發行版中,netstat命令被ss(套接字統計)命令取代。

5. Dig 命令

Dig域名信息獲取者)查詢DNS相關信息,如A記錄,CNAMEMX記錄等。此命令主要用於故障排除DNS相關查詢。

# dig www.tecmint.com; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.10.rc1.el6 <<>> www.tecmint.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<

要了解更多Dig命令的示例,請閱讀有關在Linux上查詢DNS的10個Dig命令的文章。

6. Nslookup 命令

nslookup命令也用於查找DNS相關查詢。以下示例顯示了A記錄(IP地址)的tecmint.com

# nslookup www.tecmint.com
Server:         4.2.2.2
Address:        4.2.2.2#53

Non-authoritative answer:
www.tecmint.com canonical name = tecmint.com.
Name:   tecmint.com
Address: 50.116.66.136

要了解更多Nslookup命令,請閱讀有關在Linux上查詢DNS的8個Nslookup命令示例的文章。

7. Route命令

路由 命令還顯示和操作 IP 路由表。要查看 Linux 中的默認路由表,輸入以下命令。

# route

Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
192.168.50.0    *               255.255.255.0   U     0      0        0 eth0
link-local      *               255.255.0.0     U     1002   0        0 eth0
default         192.168.50.1    0.0.0.0         UG    0      0        0 eth0

使用以下命令添加、刪除路由和默認網關。

在 Linux 中添加路由
# route add -net 10.10.10.0/24 gw 192.168.0.1
在 Linux 中刪除路由
# route del -net 10.10.10.0/24 gw 192.168.0.1
在 Linux 中添加默認網關
# route add default gw 192.168.0.1

8. 主機命令

host 命令用於查找 IP 的名稱或名稱的 IP,以及查詢 IPv4IPv6DNS 記錄。

# host www.google.com

www.google.com has address 173.194.38.180
www.google.com has address 173.194.38.176
www.google.com has address 173.194.38.177
www.google.com has address 173.194.38.178
www.google.com has address 173.194.38.179
www.google.com has IPv6 address 2404:6800:4003:802::1014

使用 -t 選項查找 DNS 資源記錄,如 CNAMENSMXSOA 等。

# host -t CNAME www.redhat.com

www.redhat.com is an alias for wildcard.redhat.com.edgekey.net.

9. Arp 命令

ARP(地址解析協議)有助於查看/添加內核的 ARP 表 內容。要查看默認表,請使用以下命令。

# arp -e

Address                  HWtype  HWaddress           Flags Mask            Iface
192.168.50.1             ether   00:50:56:c0:00:08   C                     eth0

10. Ethtool 命令

ethtoolmii-tool 的替代品。它用於查看、設置您的 網絡接口卡NIC)的速度和雙工。您可以在 /etc/sysconfig/network-scripts/ifcfg-eth0 中使用 ETHTOOL_OPTS 變量永久設置雙工。

# ethtool eth0

Settings for eth0:
        Current message level: 0x00000007 (7)
        Link detected: yes

11. Iwconfig 命令

iwconfig 命令在 Linux 中用於配置 無線網絡接口。您可以查看和設置基本的 Wi-Fi 詳細信息,如 SSID、頻道和加密方式。您可以參考 iwconfig 的 man 頁面以獲取更多信息。

# iwconfig [interface]

12. 主機名命令

主機名 用於識別網絡中的主機。執行 主機名 命令以查看您的主機名。您可以在 /etc/sysconfig/network 中永久設置主機名。設置適當的主機名後需要重新啟動主機。

# hostname 

tecmint.com

13. Nmcli 和 Nmtui 工具

NmcliNmtui 工具用於配置網絡設置,並用於管理網絡設備,在 Linux 系統中創建、修改、啟用/停用和刪除網絡連接。

# nmcli
# nmtui
Nmtui Network Manager

本文對 Linux 網絡管理員Linux /類 Unix 操作系統中的日常使用可能會有所幫助。如果我們遺漏了什麼,請通過評論框分享。

Source:
https://www.tecmint.com/linux-network-configuration-and-troubleshooting-commands/