13 Linux 网络配置和故障排除命令
计算机连接在网络中以相互交换信息或资源。两台或多台计算机通过称为计算机网络的网络介质连接。有许多网络设备或媒体参与形成计算机网络。
由于其多任务和多用户特性,装载Linux操作系统的计算机也可以成为网络的一部分,无论是小型网络还是大型网络。维护系统和网络的正常运行是系统/网络管理员的工作任务。
在本文中,我们将回顾 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命令
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 linux-console.net
PING linux-console.net (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 linux-console.net
PING linux-console.net (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
--- linux-console.net 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命令
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
有关 Netstat 命令的更多示例,请阅读我们之前关于 Linux 中的 20 个 Netstat 命令示例的文章。
更新:在大多数现代 Linux 发行版中,netstat 命令被 ss(套接字统计)命令取代。
5. 挖掘命令
Dig(域名信息抓取器)查询DNS相关信息,如A
记录、CNAME 、MX记录等。该命令主要用于解决DNS相关查询问题。
dig linux-console.net; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.10.rc1.el6 <<>> linux-console.net
;; global options: +cmd
;; Got answer:
;; ->>HEADER<
有关 Dig 命令的更多示例,请阅读《用于查询 DNS 的 10 个 Linux Dig 命令》一文。
6. nslookup命令
nslookup 命令还用于查找与 DNS 相关的查询。以下示例显示 howtoing.com 的 A
记录(IP 地址)。
nslookup linux-console.net
Server: 4.2.2.2
Address: 4.2.2.2#53
Non-authoritative answer:
linux-console.net canonical name = linux-console.net.
Name: linux-console.net
Address: 50.116.66.136
有关更多 Nslookup 命令,请阅读有关 8 个 Linux 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 的名称,以 IPv4 或 IPv6 命名> 还可以查询 DNS 记录。
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 资源记录,例如 CNAME、NS、MX、SOA ,等等。
host -t CNAME www.redhat.com
www.redhat.com is an alias for wildcard.redhat.com.edgekey.net.
9.arp命令
ARP(地址解析协议)对于查看/添加内核ARP 表的内容非常有用。要查看默认表,请使用命令 as。
arp -e
Address HWtype HWaddress Flags Mask Iface
192.168.50.1 ether 00:50:56:c0:00:08 C eth0
10.Ethtool命令
ethtool 是 mii-tool 的替代品。它用于查看、设置您的网络接口卡(NIC)的速度和双工。您可以使用 ETHTOOL_OPTS 变量在 /etc/sysconfig/network-scripts/ifcfg-eth0 中永久设置双工。
ethtool eth0
Settings for eth0:
Current message level: 0x00000007 (7)
Link detected: yes
11. Iwconfig命令
Linux中的iwconfig命令用于配置无线网络接口。您可以查看和设置基本的 Wi-Fi 详细信息,例如 SSID 通道和加密。您可以参考iwconfig的手册页来了解更多信息。
iwconfig [interface]
12. 主机名命令
主机名用于在网络中进行标识。执行主机名命令查看您的盒子的主机名。您可以在/etc/sysconfig/network中永久设置主机名。设置正确的主机名后需要重新启动盒子。
hostname
linux-console.net
13.Nmcli 和 Nmtui 工具
Nmcli 和 Nmtui 工具用于配置网络设置,还用于管理网络设备,创建、修改、激活/停用和删除 Linux 系统中的网络连接。
nmcli
nmtui
本文对于在 Linux/类 Unix 操作系统中日常使用 Linux 网络管理员 很有用。如果我们错过了,请通过我们的评论框分享。