这些命令用于监控连接、排除网络故障、路由选择、DNS 查询和接口配置。
ping 是用于测试网络连接的最流行的网络终端工具。ping 有很多选项,但在大多数情况下,您将使用它来请求域或IP地址:
ping google.com
PING google.com (142.251.42.78): 56 data bytes
64 bytes from 142.251.42.78: icmp_seq=0 ttl=112 time=8.590 ms
64 bytes from 142.251.42.78: icmp_seq=1 ttl=112 time=12.486 ms
64 bytes from 142.251.42.78: icmp_seq=2 ttl=112 time=12.085 ms
64 bytes from 142.251.42.78: icmp_seq=3 ttl=112 time=10.866 ms
--- google.com ping statistics ---
4 packets transmitted, 4 packets received, 0.0% packet loss
round-trip min/avg/max/stddev = 8.590/11.007/12.486/1.518 ms
有用的 ping 选项:
使用上述命令,你可以 ping http://google.com,并输出显示连接性和延迟的往返统计信息。一般来说, ping 命令用于检查你试图连接的系统是否存在并已连接到网络。
ifconfig 命令显示并配置网络接口设置,包括 IP 地址、网络掩码、广播、MTU 和硬件 MAC 地址。
例子:
ifconfig
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 10.0.2.15 netmask 255.255.255.0 broadcast 10.0.2.255
inet6 fe80::a00:27ff:fe1e:ef1d prefixlen 64 scopeid 0x20<link>
ether 08:00:27:1e:ef:1d txqueuelen 1000 (Ethernet)
RX packets 23955654 bytes 16426961213 (15.3 GiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 12432322 bytes 8710937057 (8.1 GiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
在没有其他参数的情况下运行 ifconfig ,将显示所有可用网络接口的列表,以及 IP 和其他网络信息。ifconfig 还可用于设置地址、启用/禁用接口以及更改选项。
netstat 命令可显示网络连接、路由表、接口统计信息、伪装连接和组播成员信息。
例子:
netstat -pt tcp
该命令将输出所有活动的 TCP 连接和使用这些连接的进程。
ss 命令将转储与 netstat 类似的套接字统计信息。它可以显示打开的 TCP 和 UDP 套接字、发送/接收缓冲区大小等。
例子:
ss -t -a
打印所有打开的 TCP 套接字。比 netstat 更有效。
traceroute 命令打印数据包到网络主机的路径,显示沿途的每一跳和传输时间。对网络调试很有用。
例子:
traceroute google.com
跟踪到达 http://google.com 的路径,并输出每个网络跳转。
dig 命令执行 DNS 查找并返回域的 DNS 记录信息。
例子:
dig google.com
; <<>> DiG 9.10.6 <<>> google.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 60290
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 1280
;; QUESTION SECTION:
;google.com. IN A
;; ANSWER SECTION:
google.com. 220 IN A 142.251.42.78
;; Query time: 6 msec
;; SERVER: 2405:201:2:e17b::c0a8:1d01#53(2405:201:2:e17b::c0a8:1d01)
;; WHEN: Wed Nov 15 01:36:16 IST 2023
;; MSG SIZE rcvd: 55
它会查询 DNS 服务器中与 http://google.com 相关的记录,并打印详细信息。
nslookup 命令以交互方式查询 DNS 服务器,以执行名称解析查询或显示 DNS 记录。
它进入一个交互式 shell,允许你手动查询主机名、反向 IP 地址、查找 DNS 记录类型等。
例如,一些常见的 nslookup 使用方法。在命令行中键入 nslookup:
nslookup
接下来,我们将设置 Google 8.8.8.8 DNS 服务器用于查询。
> server 8.8.8.8
现在,让我们查询 http://stackoverflow.com 的 A 记录,找到它的 IP 地址。
> set type=A
> stackoverflow.com
Server: 8.8.8.8
Address: 8.8.8.8#53
Non-authoritative answer:
Name: stackoverflow.com
Address: 104.18.32.7
Name: stackoverflow.com
Address: 172.64.155.249
现在,让我们查找 http://github.com 的 MX 记录,查看其邮件服务器。
> set type=MX
> github.com
Server: 8.8.8.8
Address: 8.8.8.8#53
Non-authoritative answer:
github.com mail exchanger = 1 aspmx.l.google.com.
github.com mail exchanger = 5 alt1.aspmx.l.google.com.
github.com mail exchanger = 5 alt2.aspmx.l.google.com.
github.com mail exchanger = 10 alt3.aspmx.l.google.com.
github.com mail exchanger = 10 alt4.aspmx.l.google.com.
交互式查询使 nslookup 对探索 DNS 和排除名称解析问题非常有用。
使用 iptables 命令可以配置 Linux netfilter 防火墙规则,以过滤和处理网络数据包。它为系统如何处理不同类型的入站和出站连接及流量设置了策略和规则。
例子:
iptables -A INPUT -s 192.168.1.10 -j DROP
上述命令将阻止来自 IP 192.168.1.10 的所有输入。
iptables 为 Linux 内核防火墙提供了强大的控制功能,可以处理路由、NAT、数据包过滤和其他流量控制。它是确保 Linux 服务器安全的重要工具。
使用 ip 命令可以管理和监控各种与网络设备相关的活动,如分配 IP 地址、设置子网、显示链接详情和配置路由选项。
例子:
ip link show
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: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP mode DEFAULT group default qlen 1000
link/ether 08:00:27:8a:5c:04 brd ff:ff:ff:ff:ff:ff
上述命令显示了所有网络接口、它们的状态和其他信息。
该命令旨在用更现代的 Linux 网络管理功能取代 ifconfig。 ip 可以控制网络设备、路由表和其他网络协议栈设置。