9个Linux网络命令

这些命令用于监控连接、排除网络故障、路由选择、DNS 查询和接口配置。

1. ping -- 向网络主机发送 ICMP ECHO_REQUEST

ping 是用于测试网络连接的最流行的网络终端工具。ping 有很多选项,但在大多数情况下,您将使用它来请求域或IP地址:

bash 复制代码
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 选项:

  • -c :指定要发送的 ICMP 请求的次数。例如,ping -c 5 192.168.0.1 将发送 5 个 ICMP 请求给 IP 地址为 192.168.0.1 的主机,并显示结果统计信息。
  • -s :指定要发送的数据包的大小,以字节为单位。默认情况下,每个 ICMP 请求包含 56 字节的数据。例如,ping -s 100 192.168.0.1 将发送包含 100 字节数据的 ICMP 请求。
  • -i :指定发送 ICMP 请求的时间间隔,以秒为单位。默认情况下,两个 ICMP 请求之间的间隔为 1 秒。例如,ping -i 0.5 192.168.0.1 将以 0.5 秒的间隔发送 ICMP 请求。
  • -w :指定超时时间,即等待响应的最大时间,以秒为单位。例如,ping -w 5 192.168.0.1 将等待 5 秒以获取响应。
  • -q:以静默模式(quiet mode)运行 ping 命令,只显示结果统计信息,而不输出每个 ICMP 请求的详细信息。
  • -v:以详细模式(verbose mode)运行 ping 命令,显示关于每个 ICMP 请求的更多信息。

使用上述命令,你可以 ping http://google.com,并输出显示连接性和延迟的往返统计信息。一般来说, ping 命令用于检查你试图连接的系统是否存在并已连接到网络。

2. ifconfig -- 配置网络接口

ifconfig 命令显示并配置网络接口设置,包括 IP 地址、网络掩码、广播、MTU 和硬件 MAC 地址。

例子:

bash 复制代码
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 还可用于设置地址、启用/禁用接口以及更改选项。

3. netstat -- 网络统计

netstat 命令可显示网络连接、路由表、接口统计信息、伪装连接和组播成员信息。

例子:

bash 复制代码
netstat -pt tcp

该命令将输出所有活动的 TCP 连接和使用这些连接的进程。

4. ss -- 套接字统计

ss 命令将转储与 netstat 类似的套接字统计信息。它可以显示打开的 TCP 和 UDP 套接字、发送/接收缓冲区大小等。

例子:

bash 复制代码
ss -t -a

打印所有打开的 TCP 套接字。比 netstat 更有效。

5. traceroute -- 追踪到主机的路由

traceroute 命令打印数据包到网络主机的路径,显示沿途的每一跳和传输时间。对网络调试很有用。

例子:

bash 复制代码
traceroute google.com

跟踪到达 http://google.com 的路径,并输出每个网络跳转。

6. dig -- DNS 查找

dig 命令执行 DNS 查找并返回域的 DNS 记录信息。

例子:

bash 复制代码
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 相关的记录,并打印详细信息。

7. nslookup -- 交互式查询 DNS 服务器

nslookup 命令以交互方式查询 DNS 服务器,以执行名称解析查询或显示 DNS 记录。

它进入一个交互式 shell,允许你手动查询主机名、反向 IP 地址、查找 DNS 记录类型等。

例如,一些常见的 nslookup 使用方法。在命令行中键入 nslookup:

bash 复制代码
nslookup

接下来,我们将设置 Google 8.8.8.8 DNS 服务器用于查询。

bash 复制代码
> server 8.8.8.8

现在,让我们查询 http://stackoverflow.com 的 A 记录,找到它的 IP 地址。

bash 复制代码
> 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 记录,查看其邮件服务器。

bash 复制代码
> 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 和排除名称解析问题非常有用。

8. iptables -- IPv4 数据包过滤和 NAT

使用 iptables 命令可以配置 Linux netfilter 防火墙规则,以过滤和处理网络数据包。它为系统如何处理不同类型的入站和出站连接及流量设置了策略和规则。

例子:

bash 复制代码
iptables -A INPUT -s 192.168.1.10 -j DROP

上述命令将阻止来自 IP 192.168.1.10 的所有输入。

iptables 为 Linux 内核防火墙提供了强大的控制功能,可以处理路由、NAT、数据包过滤和其他流量控制。它是确保 Linux 服务器安全的重要工具。

9. ip -- 管理网络设备和路由

使用 ip 命令可以管理和监控各种与网络设备相关的活动,如分配 IP 地址、设置子网、显示链接详情和配置路由选项。

例子:

bash 复制代码
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 可以控制网络设备、路由表和其他网络协议栈设置。

相关推荐
小安运维日记29 分钟前
Linux云计算 |【第四阶段】NOSQL-DAY1
linux·运维·redis·sql·云计算·nosql
suifen_3 小时前
RK3229_Android9.0_Box 4G模块EC200A调试
网络
铁松溜达py3 小时前
编译器/工具链环境:GCC vs LLVM/Clang,MSVCRT vs UCRT
开发语言·网络
CoolTiger、4 小时前
【Vmware16安装教程】
linux·虚拟机·vmware16
学习3人组4 小时前
CentOS 中配置 OpenJDK以及多版本管理
linux·运维·centos
厨 神5 小时前
vmware中的ubuntu系统扩容分区
linux·运维·ubuntu
Karoku0665 小时前
【网站架构部署与优化】web服务与http协议
linux·运维·服务器·数据库·http·架构
geek_Chen015 小时前
虚拟机共享文件夹开启后mnt/hgfs/下无sharefiles? --已解决
linux·运维·服务器
(⊙o⊙)~哦6 小时前
linux 解压缩
linux·运维·服务器
牧小七7 小时前
Linux命令---查看端口是否被占用
linux