详细盘点 Linux 常用网络命令

1. 写在前面

网络命令是任何网络管理员或系统管理员必不可少的工具包,这些命令有助于设置、故障排除、诊断和管理 Linux 系统的网络连接。

本文提供了 20 个基本的 Linux 网络命令。

2. 20 个 Linux 网络命令

Linux 提供了许多有用的网络命令和工具,这些命令通常执行复杂的网络任务,例如监视、故障排除和网络配置,大多数网络实用程序都是较旧的(旧版)net-tools 软件包或更新 iproute2 软件包的一部分。

注意: net-tools 和 iproute2 命令在大多数 Linux 发行版上都可用。但建议使用 iproute2 工具,因为它具有更好的灵活性和速度。尽管 net-tools 被认为已经过时,但它仍被传统脚本和系统配置广泛使用。

2.1 ip

ip 命令是 Linux 系统统一的网络工具,ip 命令有助于查看和配置路由、接口、网络设备和隧道。该命令是 iproute2 软件包的一部分,取代了许多旧版网络工具,如 routeifconfig 和 netstat 命令。

语法:

ip [options] object [command]
  • [options] – 定义修改命令行为;

  • object – 表示可用于配置的对象;

  • [command] – 子命令,是对对象执行的操作,可用的命令因对象而异;

示例:

ip 命令在不包含任何选项、对象或命令的情况下显示帮助菜单:

root@dev:~# ip
-------------------------------------------------------------------------------------
Usage: ip [ OPTIONS ] OBJECT { COMMAND | help }
ip [ -force ] -batch filename
where OBJECT := { link
| address | addrlabel | route | rule | neigh | ntable |
tunnel | tuntap | maddress | mroute | mrule | monitor | xfrm |
netns | l2tp | fou | macsec | tcp_metrics | token | netconf | ila |
vrf | sr | nexthop }
OPTIONS := { -V[ersion]
| -s[tatistics] | -d[etails] | -r[esolve] |
-h[uman-readable] | -iec | -j[son] | -p[retty] |
-f[amily] { inet | inet6 | mpls | bridge | link } |
-4 | -6 | -I | -D | -M | -B | -0 |
-l[oops] { maximum-addr-flush-attempts } | -br[ief] |
-o[neline] | -t[imestamp] | -ts[hort] | -b[atch] [filename] |
-rc[vbuf] [size] | -n[etns] name | -N[umeric] | -a[ll] |
-c[olor]}

添加 -V 选项可查看当前版本:

root@dev:~# ip -V
-------------------------------------------------------------------------------------
ip utility, iproute2-ss200127

输出打印 ip 工具的软件包和版本库。

2.1.1 ip addr

ip addr 命令用于管理和显示网络接口 IP 地址。命令别名是 ip address 或 ip a

语法:

ip addr [subcommand]

[subcommand] 操作:

  • add – 添加新地址;

  • show – 显示协议地址;

  • del – 删除地址;

  • flush – 根据指定标准刷新地址;

每个子命令都有其他选项和关键字,用于执行网络接口地址的特定任务。

示例:

ip addr 命令显示网络接口信息,包括关联的 IP 地址:

root@dev:~# ip addr
-------------------------------------------------------------------------------------
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: ens3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
link/ether fa:16:3e:96:38:8e brd ff:ff:ff:ff:ff:ff
inet 10.100.0.111/23 brd 10.100.1.255 scope global dynamic ens3
valid_lft 49721sec preferred_lft 49721sec
inet6 fe80::f816:3eff:fe96:388e/64 scope link
valid_lft forever preferred_lft forever

ip addr show 的输出是相同的。

要显示特定的网络接口,请使用 ip addr show 命令并添加接口名称。例如:

root@dev:~# ip addr show ens3
-------------------------------------------------------------------------------------
2: ens3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
link/ether fa:16:3e:96:38:8e brd ff:ff:ff:ff:ff:ff
inet 10.100.0.111/23 brd 10.100.1.255 scope global dynamic ens3
valid_lft 49651sec preferred_lft 49651sec
inet6 fe80::f816:3eff:fe96:388e/64 scope link
valid_lft forever preferred_lft forever

该命令过滤 ip addr 输出,仅显示与指定接口相关的信息。

2.1.2 ip link

ip link 命令管理并显示网络接口信息。允许查看、更改、启用和禁用网络接口。

语法:

ip link [subcommand] [options] [interfaces]

[subcommand] 操作:

  • show – 打印网络接口信息;

  • set – 更改或向网络接口添加信息;

  • add – 添加新的网络接口;

  • del – 删除网络接口;

子命令具有其他选项,并允许以特定接口为目标;

示例:

不带任何其他子命令(subcommand)和选项的 ip link 命令:显示所有网络接口链接信息;

root@dev:~# ip link
-------------------------------------------------------------------------------------
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: ens3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP mode DEFAULT group default qlen 1000
link/ether fa:16:3e:96:38:8e brd ff:ff:ff:ff:ff:ff

ip link show 命令提供相同的输出。

若要关闭接口,请以超级用户使用以下语法:

sudo ip link set [interface] down

执行命令后,接口状态显示为 DOWN

同样,要启用接口,请使用 up 关键字:

sudo ip link set [interface] up

接口状态更改为 UP

2.1.3 ip route

ip route 命令显示并配置 IP 路由表。通过该命令,用户可以调整路由表,并利用路由表执行其他网络任务。

语法:

ip route [subcommand] [options] [destination] 

命令组成包括:

[subcommand] 操作:

  • show – 显示路由表;

  • add – 向表中添加一条新路由;

  • del – 从表中删除路由;

  • change – 修改现有路由;

[destination]: – 决定网络流量的方向;

示例:

要查看路由表,请运行以下命令:

root@dev:~# ip route show
-------------------------------------------------------------------------------------
default via 10.100.0.1 dev ens3 proto dhcp src 10.100.0.111 metric 100
10.100.0.0/23 dev ens3 proto kernel scope link src 10.100.0.111
169.254.169.254 via 10.100.0.11 dev ens3 proto dhcp src 10.100.0.111 metric 100
172.17.0.0/16 dev docker0 proto kernel scope link src 172.17.0.1 linkdown
172.21.0.0/16 dev br-3c911bd828a7 proto kernel scope link src 172.21.0.1 linkdown
192.168.96.0/20 dev br-1df08235996b proto kernel scope link src 192.168.96.1

输出中的每一行代表表中的单个路由。

2.2 ifconfig

ifconfig(interface configuration)命令管理并显示系统上的网络接口信息。该命令是 net-tools 软件包的一部分。

尽管与 ip 命令相比,该命令的功能有限,但 ifconfig 命令仍常用于配置网络接口。

语法

ifconfig [interface] [options]

命令组成包括:

  • [interface] – 表示要配置或显示其信息的网络接口(该参数是可选的),不指定接口将显示所有活动接口的状态;

  • [options] – 用于执行特定操作或配置特定参数的命令行选项(该参数也是可选的);

示例:

显示所有活动网络接口:

root@dev:~# ifconfig -s
-------------------------------------------------------------------------------------
Iface MTU RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR Flg
br-1df08 1500 323362 0 0 0 339198 0 0 0 BMRU
br-3c911 1500 0 0 0 0 0 0 0 0 BMU
docker0 1500 0 0 0 0 0 0 0 0 BMU
ens3 1500 2688662 0 307205 0 2378822 0 0 0 BMRU
lo 65536 1918216 0 0 0 1918216 0 0 0 LRU
veth0588 1500 102 0 0 0 204 0 0 0 BMRU
veth171f 1500 64 0 0 0 163 0 0 0 BMRU
veth2d3f 1500 184260 0 0 0 184319 0 0 0 BMRU
veth4dca 1500 50503 0 0 0 48487 0 0 0 BMRU
veth8180 1500 82776 0 0 0 99752 0 0 0 BMRU
veth9372 1500 8272 0 0 0 9628 0 0 0 BMRU
vethe814 1500 85 0 0 0 200 0 0 0 BMRU

2.3 dig

dig 命令用于查询域名系统(DNS)和查找 DNS 记录信息。

使用 dig 可排除 DNS 问题并验证 Linux 系统上的 DNS 配置。它适用于创建脚本和自动执行与网络故障排除有关的任务。这个强大的命令在网络故障排除中非常普遍,因此也提供了一个 Windows 版本的 dig

语法:

dig [options] [domain] [record type] [DNS server]

命令组成包括:

  • [options] – 用于修改命令行为的参数;

  • [domain] – 要查询的域名;

  • [record type] – 要查询的 DNS 记录类型,默认为 A 记录;

  • [DNS server] – 用于查询的指定 DNS 服务器;

所有参数均为可选参数。该命令显示默认的 DNS 解析程序信息和查询统计信息,而不显示其他选项。

示例:

若要执行简单的 DNS 查找,请使用命令:

root@dev:~# dig bing.com
-------------------------------------------------------------------------------------
bing.com. 892 IN A 13.107.21.200
bing.com. 892 IN A 204.79.197.200

或者,提供 IP 地址和 -x 选项以执行反向 DNS 查找。

例如:

root@dev:~# dig -x 8.8.8.8
-------------------------------------------------------------------------------------
8.8.8.8.in-addr.arpa. 3505 IN PTR dns.google.

注意:过多的 DNS 查找会影响网站性能,减少 DNS 查找可降低服务器负载和网络延迟;

2.4 nslookup

nslookup 命令与 dig 命令类似。这两条命令的主要区别在于 nslookup 具有交互模式。它可以诊断和查询 DNS 服务器,有助于网络故障排除和执行相关 DNS 任务。

语法:

nslookup [domain] [DNS server]

命令组成包括:

  • [domain] – 要查找的域名。不指定名称可在交互模式下查询多个域;

  • [DNS server] – 用于查询的 DNS 服务器。省略时默认为系统 DNS 服务器;

命令默认执行 A 记录域查询。

示例:

对域名执行 DNS 查找:

root@dev:~# nslookup google.com
-------------------------------------------------------------------------------------
Server: 127.0.0.53
Address: 127.0.0.53#53

Non-authoritative answer:
Name: google.com
Address: 46.82.174.69

输出结果显示所提供域的 DNS 解析信息。

2.5 netstat

netstat 命令(network statistics)是一个网络实用程序,用于显示各种网络统计信息,该命令提供网络端口的统计数据,并显示端口的可用性。

该命令是 net-tools 软件包的一部分,已被认为过时。建议使用 iproute2 中的 ss 命令来替代它,netstat 命令的其他功能可通过 ip 命令实现。

语法:

netstat [options]

该命令允许结合各种选项自定义输出,并显示特定的网络信息类型,在没有任何选项的情况下,该命令列出所有已配置地址的开放套接字。

示例:

例如,要使用 netstat 命令列出所有 TCP 端口,请使用 -at 选项:

root@dev:~# netstat -at
-------------------------------------------------------------------------------------
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 0.0.0.0:http 0.0.0.0:* LISTEN
tcp 0 0 localhost:domain 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:ssh 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:postgresql 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:https 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:8001 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:42115 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:8004 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:8005 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:amqp 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:9000 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:6379 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:9006 0.0.0.0:* LISTEN
tcp 0 0 postgres:44550 postgres:postgresql ESTABLISHED
tcp 0 0 postgres:44556 postgres:postgresql ESTABLISHED
tcp 0 0 postgres:33716 postgres:postgresql ESTABLISHED
tcp 0 208 postgres:ssh 10.20.0.6:49768 ESTABLISHED
tcp 0 0 postgres:58810 postgres:6379 ESTABLISHED
tcp6 0 0 [::]:http [::]:* LISTEN
tcp6 0 0 [::]:ssh [::]:* LISTEN
tcp6 0 0 [::]:postgresql [::]:* LISTEN
tcp6 0 0 [::]:https [::]:* LISTEN
tcp6 0 0 [::]:42115 [::]:* LISTEN
tcp6 0 0 [::]:8004 [::]:* LISTEN
tcp6 0 0 [::]:8005 [::]:* LISTEN
tcp6 0 0 [::]:amqp [::]:* LISTEN
tcp6 0 0 [::]:9000 [::]:* LISTEN
tcp6 0 0 [::]:6379 [::]:* LISTEN

显示系统中所有活动的 TCP 连接。

2.6 traceroute

traceroute 命令是一种网络诊断工具,适用于 Linux、macOS 和 Windows。该命令可跟踪数据包到达 TCP/IP 网络目的地的路径。该命令通过显示数据包从源到目标传输时的中间跃点来发现路由问题和瓶颈。默认跟踪为 30 跳,IPv4 数据包大小为 60 字节(IPv6 为 80 字节)。

语法:

traceroute [options] [hostname/IP]

命令组成包括:

  • [hostname/IP]– 域名/IP,必需,其他选项则控制是否执行 DNS 查找、TTL 参数和数据包类型;

示例:

要使用 TCP 协议跟踪数据包路由,请以管理员身份运行 traceroute 命令,并使用 -T 选项。例如:

root@dev:~# sudo traceroute -T 184.95.56.34
-------------------------------------------------------------------------------------
traceroute to 184.95.56.34 (184.95.56.34), 30 hops max, 60 byte packets
1 _gateway (10.100.0.1) 0.937 ms 0.889 ms 0.868 ms
2 172.16.0.1 (172.16.0.1) 2.417 ms 2.409 ms 2.400 ms
3 122.231.65.193 (122.231.65.193) 4.309 ms 4.252 ms 4.224 ms
4 * 183.159.251.132 (183.159.251.132) 3.598 ms *
5 * 183.159.251.144 (183.159.251.144) 4.673 ms *
6 * * *
7 * * *
8 * * 202.97.51.6 (202.97.51.6) 15.931 ms
9 * 202.97.12.210 (202.97.12.210) 9.768 ms 202.97.12.182 (202.97.12.182) 10.857 ms
10 202.97.6.2 (202.97.6.2) 162.347 ms 202.97.52.250 (202.97.52.250) 155.535 ms 153.631 ms
11 * * *
12 ae1.3504.edge3.level3.net (4.69.137.138) 482.034 ms 432.680 ms 443.340 ms
13 phoenix-nap.edge3.level3.net (4.38.202.46) 184.600 ms 164.305 ms 175.805 ms
14 eth.14.1.cr1.phx0.com (108.170.0.9) 162.464 ms 159.422 ms 150.730 ms
15 * * *
16 speedtest.com (184.95.56.34) 156.664 ms 154.668 ms 162.598 ms

输出结果显示了从源到目的地的顺序路由。

2.7 tracepath

tracepath 命令与 traceroute 命令类似,该命令可识别从源到目的地的路径和延迟,并映射路由器和网络跳数。

虽然 traceroute 是一个著名的命令,具有全面的选项,但 tracepath 命令是一个简单的网络映射工具,可用于大多数 Linux 系统。更多详情,请参阅: Linux 命令:Tracepath 与 Traceroute 有什么区别?

语法:

tracepath [options] [hostname/IP]

命令组成包括:

  • [options] – 控制查询行为,例如:跳数、是否对地址执行 DNS 反向查询;

  • [hostname/IP] – 必填字段,代表目的地;

示例:

运行不带任何选项的 tracepath 命令,执行从目的地到主机的简单跟踪:

root@dev:~# tracepath 184.95.56.34
-------------------------------------------------------------------------------------
1?: [LOCALHOST] pmtu 1500
1: _gateway 0.976ms asymm 2
1: _gateway 0.709ms asymm 2
2: 172.16.0.1 1.563ms
3: 122.231.65.193 4.810ms
4: no reply
5: 183.159.251.149 4.922ms
6: no reply
7: no reply
8: no reply
9: 202.97.12.194 13.315ms
10: 202.97.89.133 146.026ms
11: ae74.edge9.net 172.821ms asymm 12
12: ae1.3504.level3.net 166.277ms asymm 15
13: PHOENIX-NAP.Level3.net 157.102ms
14: eth.14.1.cr1.com 159.476ms
15: no reply
16: speedtest.com 164.616ms reached
Resume: pmtu 1500 hops 16 back 16

输出显示跳数、IP 地址或解析的主机名,以及每个挑点往返时间(RTT)。

2.8 host

host 命令是执行 DNS 查询的简单工具。该命令可将 IP 地址解析为域名,反之亦然。使用该命令执行 DNS 记录查询和基本 DNS 故障排除。

语法:

host [options] [hostname/IP]

示例:

root@dev:~# host google.com
-------------------------------------------------------------------------------------
google.com has address 142.251.43.14
google.com mail is handled by 10 smtp.google.com.

输出结果会显示所提供域名的已解析 IPv4 和 IPv6 地址。

2.9 hostname

hostname 显示和更改系统的主机名和域,并标识网络环境中的设备。使用该命令可显示、更改或搜索主机名。

语法:

hostname [options] [name]

命令组成包括:

  • [options] – 控制命令的显示内容;

  • [name] – 临时将主机名设置为提供的名称;

示例:

临时更改系统主机名,请运行不带任何选项“[options]”的命令并提供名称:

sudo hostname [name]

该命令不会生成输出,通过运行以下命令检查当前主机名:

hostname

2.10 ping

ping 命令是一种网络工具,用于测试主机是否可连接,该命令向主机(计算机或服务器)发送 ICMP 请求,并测量往返时间(RTT)。 

ping 有助于确定两个节点之间的网络延迟,以及网络是否可以到达。

语法:

ping [options] [hostname/IP]

命令组成包括:

  • [options] – 控制命令行为的选项,如 ping 请求数、间隔或数据包大小;

  • [hostname/IP] – 要 ping 的主机; 

示例:

root@dev:~# ping -c 5 bing.com
-------------------------------------------------------------------------------------
PING bing.com (204.79.197.200) 56(84) bytes of data.
64 bytes from a-0001.a-msedge.net (204.79.197.200): icmp_seq=1 ttl=114 time=67.3 ms
64 bytes from a-0001.a-msedge.net (204.79.197.200): icmp_seq=2 ttl=114 time=67.2 ms
64 bytes from a-0001.a-msedge.net (204.79.197.200): icmp_seq=3 ttl=114 time=67.3 ms
64 bytes from a-0001.a-msedge.net (204.79.197.200): icmp_seq=4 ttl=114 time=67.2 ms
64 bytes from a-0001.a-msedge.net (204.79.197.200): icmp_seq=5 ttl=114 time=67.4 ms

--- bing.com ping statistics ---
5 packets transmitted, 5 received, 0% packet loss, time 4006ms
rtt min/avg/max/mdev = 67.168/67.265/67.389/0.085 ms

该命令向 bing.com 主机发送 5 个 ICMP 数据包并打印统计信息。

2.11 ss

ss 命令是用于显示网络统计信息的 CLI 工具,该工具是 iproute2 软件包的一部分,是 netstat 命令的更快替代方法。

使用 ss 命令检查网络套接字并查看各种网络相关数据。

语法:

ss [options] [filter]

命令组成包括:

  • [options] – 允许按协议筛选套接字;

  • [filter] – 按状态排列套接字,以缩小结果视图的范围;

示例:

例如,要使用 ss 命令显示所有正在监听的 TCP 套接字,请添加 -lt 选项:

root@dev:~# ss -lt
-------------------------------------------------------------------------------------
State Recv-Q Send-Q Local Address:Port Peer Address:Port Process
LISTEN 0 4096 0.0.0.0:http 0.0.0.0:*
LISTEN 0 4096 127.0.0.53%lo:domain 0.0.0.0:*
LISTEN 0 128 0.0.0.0:ssh 0.0.0.0:*
LISTEN 0 4096 0.0.0.0:postgresql 0.0.0.0:*
LISTEN 0 4096 0.0.0.0:https 0.0.0.0:*
LISTEN 0 10 0.0.0.0:8001 0.0.0.0:*
LISTEN 0 4096 0.0.0.0:42115 0.0.0.0:*
LISTEN 0 4096 0.0.0.0:8004 0.0.0.0:*
LISTEN 0 4096 0.0.0.0:8005 0.0.0.0:*
LISTEN 0 4096 0.0.0.0:amqp 0.0.0.0:*
LISTEN 0 4096 0.0.0.0:9000 0.0.0.0:*
LISTEN 0 4096 0.0.0.0:6379 0.0.0.0:*
LISTEN 0 2048 0.0.0.0:9006 0.0.0.0:*
LISTEN 0 4096 [::]:http [::]:*
LISTEN 0 128 [::]:ssh [::]:*
LISTEN 0 4096 [::]:postgresql [::]:*
LISTEN 0 4096 [::]:https [::]:*
LISTEN 0 4096 [::]:42115 [::]:*
LISTEN 0 4096 [::]:8004 [::]:*
LISTEN 0 4096 [::]:8005 [::]:*
LISTEN 0 4096 [::]:amqp [::]:*
LISTEN 0 4096 [::]:9000 [::]:*
LISTEN 0 4096 [::]:6379 [::]:*

输出显示所有处于 LISTEN 状态的 TCP 套接字。

2.12 route

Linux 中的 route 命令是用于显示和配置路由表的专用命令。该命令修改内核的 IP 路由表,并帮助设置到特定主机或网络的静态路由。

注意:route 命令的最佳替代命令是 ip route 命令。

语法:

route [options] [subcommand] [arguments]

命令组成包括:

  • [options] – 控制输出视图、地址族和 IP 协议的可选命令行参数;

  • [subcommand] – 要执行的操作,如adddelete;

  • [arguments] – 根据[subcommand]附加参数;

示例:

要查看当前路由表,请使用 route 命令(不带任何选项):

root@dev:~# route
-------------------------------------------------------------------------------------
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
default _gateway 0.0.0.0 UG 100 0 0 ens3
10.100.0.0 0.0.0.0 255.255.254.0 U 0 0 0 ens3
169.254.169.254 10.100.0.11 255.255.255.255 UGH 100 0 0 ens3
172.17.0.0 0.0.0.0 255.255.0.0 U 0 0 0 docker0
172.21.0.0 0.0.0.0 255.255.0.0 U 0 0 0 br-3c911bd828a7
192.168.96.0 0.0.0.0 255.255.240.0 U 0 0 0 br-1df08235996b

使用以下格式添加默认网关

sudo route add default gw [gateway]

该命令会添加一条默认路由,在没有其他路由匹配时使用,所提供的网关必须是可直接到达的路由。

2.13 arp

arp 命令 是 Address Resolution Protocol,地址解析协议,是通过解析网络层地址来找寻数据链路层地址的一个网络协议包中极其重要的网络传输协议。而该命令可以显示和修改 arp 协议解析表中的缓冲数据。

语法:

arp [options] [hostname/IP]

命令组成包括:

  • [options] – 修改命令的行为,例如设置和删除操作或控制输出;

  • [hostname/IP] – 参数是可选的远程系统标识符,用于解析 MAC 地址。如果未提供,命令将检查本地 ARP 缓存;

示例:

要显示 ARP 缓存,请运行 arp 命令,不带任何附加参数:

root@dev:~# arp
-------------------------------------------------------------------------------------
Address HWtype HWaddress Flags Mask Iface
10.100.0.62 ether fa:16:3e:c7:ea:d9 C ens3
10.100.0.120 (incomplete) ens3
10.100.0.116 ether fa:16:3e:f5:8e:ce C ens3
10.100.0.118 (incomplete) ens3
10.100.0.11 ether fa:16:3e:4a:e1:14 C ens3
10.100.0.112 (incomplete) ens3
10.100.0.113 (incomplete) ens3
10.100.0.114 (incomplete) ens3
10.100.0.115 (incomplete) ens3
_gateway ether 08:4f:a9:7c:5d:51 C ens3
192.168.96.2 ether 02:42:c0:a8:60:02 C br-1df08235996b
192.168.96.4 ether 02:42:c0:a8:60:04 C br-1df08235996b
192.168.96.7 ether 02:42:c0:a8:60:07 C br-1df08235996b
192.168.96.8 ether 02:42:c0:a8:60:08 C br-1df08235996b
192.168.96.10 ether 02:42:c0:a8:60:0a C br-1df08235996b
10.100.0.108 (incomplete) ens3
10.100.0.109 (incomplete) ens3
10.100.0.110 (incomplete) ens3

显示 ARP 缓存(IP 和 MAC 地址);

2.14 iwconfig

iwconfig 命令用于显示和配置无线网络接口信息,该命令在排除无线网络问题时非常有用。通过使用该命令可以查看或更改无线网络名称、电源管理设置和其他无线配置。

语法:

iwconfig [interface] [options]

命令组成包括:

  • [interface] – 通过名称筛选无线网络接口;

  • [options] – 控制各种设置,如操作模式、速率限制和无线加密密钥;

示例:

要查看系统上可用的无线接口和当前设置,请运行不带任何参数的命令:

root@dev:~# iwconfig
-------------------------------------------------------------------------------------
veth8180dec no wireless extensions.

br-3c911bd828a7 no wireless extensions.

br-1df08235996b no wireless extensions.

lo no wireless extensions.

veth93721ad no wireless extensions.

ens3 no wireless extensions.

该命令显示有关系统上无线接口的所有信息。

注意:可通过:sudo apt install wireless-tools 安装;

2.15 curl 或 wget

wget 和 curl 是从互联网下载文件的命令行工具。这两个工具很相似,但工作方式和提供的选项略有不同:

  • wget 命令使用 HTTP、HTTPS 或 FTP 协议从网上下载文件;

  • curl 命令用途广泛,支持各种网络协议,如 SCP、IMAP POP3、SMTP 等。该工具还能发送 HTTP 请求并与网络服务交互;

使用 curl 或 wget 测试网络下载速度。

语法:

wget [options] [URL]
curl [options] [URL]

命令组成包括:

  • [options] – 控制各种下载和输出选项;

  • [URL] – 文件下载URL;

wget命令相比,curl 命令有许多高级选项和使用模式。

示例:

要使用 wget 命令下载文件,请使用以下格式:

wget -O [file name] [URL]

或者,使用 curl 来完成同样的任务,运行:

curl -o [file name] [URL]

从指定的 URL 下载文件,并将内容保存到提供的文件名中。

2.16 mtr

mtr 命令(my traceroute)是一种诊断工具,结合了 ping 和 traceroute 命令的元素。该命令可实时显示网络质量,是排除高延迟和丢包故障的绝佳工具。

语法:

mtr [options] [hostname/IP]

命令组成包括:

  • [options] – 控制数据包数量和大小;

  • [hostname/IP] – 目标:hostname/IP;

示例:

mtr 命令不带任何参数,用于启动指向所提供主机的跟踪会话。例如:

root@dev:~# mtr bing.com

持续跟踪:

                                                                               My traceroute  [v0.93]
dev (10.100.0.111) 2023-12-30T11:36:03+0800
Keys: Help Display mode Restart statistics Order of fields quit
Packets Pings
Host Loss% Snt Last Avg Best Wrst StDev
1. _gateway 0.0% 10 0.7 0.9 0.7 1.3 0.2
2. 172.16.0.1 0.0% 10 1.6 3.2 1.3 17.2 4.9
3. 122.231.65.193 0.0% 10 11.0 5.7 4.6 11.0 1.9
4. 183.159.251.146 88.9% 10 23.5 23.5 23.5 23.5 0.0
5. 183.159.251.159 10.0% 10 5.0 6.1 4.8 12.5 2.5
6. (waiting for reply)
7. 202.97.33.249 50.0% 10 11.1 12.6 11.1 17.6 2.8
8. 202.97.71.30 70.0% 10 12.1 12.3 12.1 12.4 0.2
9. 202.97.85.198 60.0% 10 12.6 12.5 12.2 12.7 0.2
10. 202.97.93.158 33.3% 10 64.1 64.2 63.8 64.6 0.3
11. 183.91.56.170 0.0% 10 112.9 84.4 67.3 112.9 16.7
12. (waiting for reply)
13. 13.104.185.165 0.0% 10 66.8 66.8 66.5 67.4 0.2
14. (waiting for reply)
15. (waiting for reply)
16. (waiting for reply)
17. (waiting for reply)
18. a-0001.a-msedge.net 0.0% 9 67.2 67.5 67.0 70.0 1.0

要退出窗口,请按 q;

2.17 whois

whois 命令用于查询域名、IP 地址和其他网络相关信息。使用该命令可获取域名所有权详情,如域名所有权详情、注册日期和到期日期。

语法:

whois [options] [query]

命令组成包括:

  • [options] – 允许设置要查询的特定 WHOIS 服务器、更改协议和添加其他查询参数;

  • [query] – 要查询的域名、IP 地址或ASN;

示例:

运行不带任何选项的命令,对给定域名进行简单查询,例如:

root@dev:~# whois google.com
-------------------------------------------------------------------------------------
Domain Name: GOOGLE.COM
Registry Domain ID: 2138514_DOMAIN_COM-VRSN
Registrar WHOIS Server: whois.markmonitor.com
Registrar URL: http://www.markmonitor.com
Updated Date: 2019-09-09T15:39:04Z
Creation Date: 1997-09-15T04:00:00Z
Registry Expiry Date: 2028-09-14T04:00:00Z
Registrar: MarkMonitor Inc.
Registrar IANA ID: 292
Registrar Abuse Contact Email: abusecomplaints@markmonitor.com
Registrar Abuse Contact Phone: +1.2086851750
Domain Status: clientDeleteProhibited https://icann.org/epp#clientDeleteProhibited
Domain Status: clientTransferProhibited https://icann.org/epp#clientTransferProhibited
Domain Status: clientUpdateProhibited https://icann.org/epp#clientUpdateProhibited
Domain Status: serverDeleteProhibited https://icann.org/epp#serverDeleteProhibited
Domain Status: serverTransferProhibited https://icann.org/epp#serverTransferProhibited
Domain Status: serverUpdateProhibited https://icann.org/epp#serverUpdateProhibited
Name Server: NS1.GOOGLE.COM
Name Server: NS2.GOOGLE.COM
Name Server: NS3.GOOGLE.COM
Name Server: NS4.GOOGLE.COM
DNSSEC: unsigned
URL of the ICANN Whois Inaccuracy Complaint Form: https://www.icann.org/wicf/
>>> Last update of whois database: 2023-12-30T03:41:12Z <<<

For more information on Whois status codes, please visit https://icann.org/epp
... ...

输出结果显示所提供域名的基本 WHOIS 查询结果;

注意: 安装 sudo apt install whois

2.18 iftop

iftop 命令是一种网络监控工具。使用该命令可实时查看网络连接和带宽使用情况。

语法:

iftop [options]

命令组成包括:

  • [options] – 控制显示信息。该命令需要有足够的权限来监控网络接口所有流量;

示例:

iftop 的主要用途是在没有任何附加选项的情况下使用:

                                    12.5Kb                              25.0Kb                              37.5Kb                              50.0Kb                         62.5Kb
└───────────────────────────────────┴───────────────────────────────────┴───────────────────────────────────┴───────────────────────────────────┴────────────────────────────────────
postgres => 10.20.0.6 2.61Kb 3.28Kb 3.28Kb
<= 672b 752b 752b
postgres => 10.10.0.11 0b 296b 296b
<= 0b 496b 496b
─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
TX: cum: 3.57KB peak: 4.69Kb rates: 2.61Kb 3.57Kb 3.57Kb
RX: 1.22KB 2.34Kb 672b 1.22Kb 1.22Kb
TOTAL: 4.79KB 5.84Kb 3.27Kb 4.79Kb 4.79Kb

该命令将打开一个新的监控屏幕,该屏幕会随着网络接口传输的数据而变化。该界面允许交互控制显示,例如切换源 (s) 或目标 (d) 视图,要退出该界面,请按 q

2.19 tcpdump

tcpdump 命令是一种数据包嗅探器和网络安全工具,可捕获实时网络数据包信息。使用该命令可以分析流量、排除故障和监控网络安全。

语法:

tcpdump [options] [filter]

命令组成包括:

  • [options] – 用于处理各种显示选项,控制数据包编号,并处理文件;

  • [filter] – 输入数据包捕获标准;

示例:

若要捕获特定端口上的数据包,请使用以下格式:

root@dev:~# sudo tcpdump port 80
-------------------------------------------------------------------------------------
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on veth93721ad, link-type EN10MB (Ethernet), capture size 262144 bytes

捕获指定端口上的数据包以监视 HTTP 流量。

2.20 ifplugstatus

ifplugstatus 命令是检查网络接口状态的简单实用程序。该命令有助于确定以太网电缆是否已连接到接口。 

使用 ifplugstatus 检查网络的物理链路,尤其是在网络接口更改之后。

语法:

ifplugstatus [options] [interface]

命令组成包括:

  • [options] – 允许设置特定的配置文件或以批处理模式运行脚本;

  • [interface] – 检查指定接口的状态;

示例:

要列出所有网络接口的状态,请运行该命令,不带任何参数:

root@dev:~# ifplugstatus
-------------------------------------------------------------------------------------
veth8180dec: link beat detected
br-3c911bd828a7: unplugged
br-1df08235996b: link beat detected
lo: link beat detected
veth93721ad: link beat detected
ens3: link beat detected

如果输出状态为检测到链路跳动,则表示接口有活动物理链路。

注意: 安装 sudo apt install ifplugd

3. 结论

本文介绍了20个基本的 Linux 网络命令。后续将进一步拆解介绍具体使用。

感谢您花时间阅读文章!

收藏本站不迷路!


原文始发于微信公众号(滑翔的纸飞机):详细盘点 Linux 常用网络命令

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/260886.html

(0)
土豆大侠的头像土豆大侠

相关推荐

发表回复

登录后才能评论
极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!