网络命令总结

网络命令总结:

1. 网络命令总结:

1.1 nmcli命令

nmcli命令可以用于在命令行中修改IP地址,并且还可以查看命令网卡及连接状态信息。

  • 参数:
参数选项 说明
conn show 查看连接信息
device status 查看网卡状态信息
modify 修改网卡连接信息
conn reload 重新加载网卡文件,一般用于修改完网卡文件后进行重新加载
conn up ens160 重新激活网卡连接,一般用于使用命令修改完网卡信息和修改完配置文件重新激活
conn delete ens192 删除ens192连接
conn add 添加网卡连接,对应的参数type ethernet con-name ens192 ifname ens192 type:设置类型是以太网类型,con-name:设置新连接名字 ifname: 物理设备名称
  • modify参数:
参数 选项
ipv4.addresses 手动修改IPV4地址/子网掩码
+ipv4.addresses 在网卡连接添加IPV4地址
ipv4.dns 修改dns
+ipv4.dns 添加dns
ipv4.gateway 修改网关地址
ipv4.method 修改IP地址获取方式,auto是自动获取,manual是手动获取
autoconnect 开机是否自启动,yes是,no不开机自启动
+ipv4.routes 永久添加路由表

1.1.0 nmcli查看网卡及连接状态

查看网卡状态:

shell 复制代码
[root@studry ~]# nmcli  device status 
DEVICE  TYPE      STATE                   CONNECTION 
ens160  ethernet  connected               ens160     
lo      loopback  connected (externally)  lo   

查看网卡连接信息

shelll 复制代码
[root@studry ~]# nmcli conn show 
NAME    UUID                                  TYPE      DEVICE 
ens160  4769c1a0-f049-3073-88fc-5b78fa8afc37  ethernet  ens160 
lo      56fe649d-e395-40ec-a7f8-6bc3cceb6ab1  loopback  lo    

查看某个网卡连接信息:

shell 复制代码
[root@studry ~]# nmcli conn show ens160

1.1.1 命令行修改/增加IP地址信息及增加连接

修改网卡连接IP信息:

  • 查看原先网卡信息:
shell 复制代码
1)查看网卡信息:
[root@studry system-connections]# ip a show ens192
3: ens192: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
    link/ether 00:0c:29:22:bb:3c brd ff:ff:ff:ff:ff:ff
    altname enp11s0
    altname enx000c2922bb3c
    inet 10.0.0.143/24 brd 10.0.0.255 scope global dynamic noprefixroute ens192
       valid_lft 1122sec preferred_lft 1122sec
    inet6 fe80::9a8f:8eeb:70c6:c14e/64 scope link noprefixroute 
       valid_lft forever preferred_lft forever
2)查看dns:
[root@studry system-connections]# cat /etc/resolv.conf 
# Generated by NetworkManager
search localdomain
nameserver 10.0.0.150
nameserver 10.0.0.2
  • 修改静态IP地址:
shell 复制代码
[root@studry system-connections]# nmcli conn modify ens192 ipv4.addresses 10.0.0.10/24
[root@studry system-connections]# nmcli conn up ens192
  • 设置网关,网关必须修改成真实网关信息:
shell 复制代码
[root@studry system-connections]# nmcli conn mod ens192 ipv4.gateway 10.0.0.2
[root@studry system-connections]# nmcli conn up ens192
Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/6)
  • 修改DNS:
shell 复制代码
1)查看当前的DNS:
root@studry:~# cat /etc/resolv.conf 
# Generated by NetworkManager
search localdomain
nameserver 10.0.0.2
2)把DNS修改成"223.5.5.5  223.6.6.6"
root@studry:~# nmcli conn mod ens160 ipv4.dns "223.5.5.5 223.6.6.6"
root@studry:~# nmcli conn up ens160
Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/3)
root@studry:~# cat /etc/resolv.conf 
# Generated by NetworkManager
search localdomain
nameserver 223.5.5.5
nameserver 223.6.6.6
nameserver 10.0.0.2
  • 一键式进行修改:
shell 复制代码
1)查看当前信息:
root@studry:~# ip -4 -br a 
lo               UNKNOWN        127.0.0.1/8 
ens160           UP             10.0.0.141/24 
root@studry:~# cat /etc/resolv.conf 
# Generated by NetworkManager
search localdomain
nameserver 223.5.5.5
nameserver 223.6.6.6
nameserver 10.0.0.2
2)进行修改:
root@studry:~# nmcli conn mod ens160 ipv4.method manual ipv4.addresses 10.0.0.90/24 ipv4.gateway 10.0.0.2 ipv4.dns "10.0.0.150" autoconnect yes
`说明:`
ipv4.method: 修改获取模式,manual是静态配置,auto是DHCP动态获取
autoconnect: 开机是否自动启动网卡连接,auto是自动启动,manual是静态配置。
root@studry:~# nmcli conn up ens160 
Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/4)
3)查看是否修改:
root@studry:~# ip  -4 -br a 
lo               UNKNOWN        127.0.0.1/8 
ens160           UP             10.0.0.90/24 
root@studry:~# cat /etc/resolv.conf 
# Generated by NetworkManager
nameserver 10.0.0.150

在连接上增加IPV4地址及DNS:

在连接上增加IPV4地址:

shell 复制代码
1)进行增加IP地址:
root@studry:~# nmcli conn mod ens160 +ipv4.addresses 10.0.0.91/24
`说明:`
+号是在原来连接基础之上增加个地址
重新激活网卡连接
root@studry:~# nmcli conn up ens160 
Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/5)
2)查看是否增加成功
root@studry:~# ip -4 -br a
lo               UNKNOWN        127.0.0.1/8 
ens160           UP             10.0.0.90/24 10.0.0.91/24 

在网卡连接上增加dns:

shell 复制代码
0)查看原先的DNS:
root@studry:~# cat /etc/resolv.conf 
# Generated by NetworkManager
nameserver 10.0.0.150
1)增加DNS:
root@studry:~# nmcli conn mod ens160  +ipv4.dns "223.5.5.5 223.6.6.6"
激活:
root@studry:~# nmcli conn up ens160 
Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/6)
2)查看是否增加成功:
root@studry:~# cat /etc/resolv.conf 
# Generated by NetworkManager
nameserver 10.0.0.150
nameserver 223.5.5.5
nameserver 223.6.6.6

增加连接及删除连接

  • 增加连接:
shell 复制代码
[root@studry system-connections]#nmcli conn add type ethernet con-name ens192 ifname ens192
`说明:`
add: 添加连接
type: 设置ethernet类型
con-name: 设置连接名称
ifname: 指定网卡设备名称
2)查看是否添加成功:
[root@studry system-connections]# nmcli  conn show 
NAME                UUID                                  TYPE      DEVICE 
ens160              4769c1a0-f049-3073-88fc-5b78fa8afc37  ethernet  ens160 
Wired connection 1  48964d46-20f9-386d-b0d0-f3bbda818c47  ethernet  ens192 
lo                  6ace94bb-94b4-4a8e-8cc6-5c9a3fb0ab62  loopback  lo    
  • 删除网卡连接
shell 复制代码
[root@studry system-connections]#nmcli conn delete Wired\ connection\ 1
`说明:`
Wired\ connection\ 1:是连接名称
2)查看是否删除掉:
[root@studry system-connections]# nmcli  conn show 
NAME    UUID                                  TYPE      DEVICE 
ens160  4769c1a0-f049-3073-88fc-5b78fa8afc37  ethernet  ens160 
ens192  837d0988-ce57-41de-95de-638900786894  ethernet  ens192 
lo      6ace94bb-94b4-4a8e-8cc6-5c9a3fb0ab62  loopback  lo    

永久添加/删除路由表

  • 永久添加路由表,重启后不会删除:
shell 复制代码
1)添加路由表
wmn@studry:~$ sudo nmcli con mod ens192 +ipv4.routes "20.0.0.0/24 10.0.0.2"
wmn@studry:~$ nmcli conn up ens192
Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/4)
2)查看是否添加成功:
wmn@studry:~$ ip r
default via 10.0.0.2 dev ens160 proto static metric 100 
default via 10.0.0.2 dev ens192 proto dhcp src 10.0.0.144 metric 101 
10.0.0.0/24 dev ens160 proto kernel scope link src 10.0.0.93 metric 100 
10.0.0.0/24 dev ens192 proto kernel scope link src 10.0.0.144 metric 101 
20.0.0.0/24 via 10.0.0.2 dev ens192 proto static metric 101 
  • 永久删除路由表中一条路由表:
shell 复制代码
1)查看之前的路由表:
wmn@studry:~$ ip r
default via 10.0.0.2 dev ens160 proto static metric 100 
default via 10.0.0.2 dev ens192 proto dhcp src 10.0.0.144 metric 101 
10.0.0.0/24 dev ens160 proto kernel scope link src 10.0.0.93 metric 100 
10.0.0.0/24 dev ens192 proto kernel scope link src 10.0.0.144 metric 101 
20.0.0.0/24 via 10.0.0.2 dev ens192 proto static metric 101 
2)进行删除路由表一条记录:
root@studry:~# nmcli  conn mod ens192 -ipv4.routes "20.0.0.0/24 10.0.0.2"
root@studry:~# nmcli  conn up ens192
Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/4)
3)查看是否删除:
root@studry:~# ip r
default via 10.0.0.2 dev ens160 proto static metric 100 
default via 10.0.0.2 dev ens192 proto dhcp src 10.0.0.144 metric 101 
10.0.0.0/24 dev ens160 proto kernel scope link src 10.0.0.93 metric 100 
10.0.0.0/24 dev ens192 proto kernel scope link src 10.0.0.144 metric 101 

1.2 IP系列命令:

命令参数:

命令参数 说明
ip a/ip a show 查看网卡连接信息,可以指定查看某个网卡连接信息:ip a show ens160,只查看ens160网卡连接信息
ip r 查看路由表
ip link show 查看所有网卡连接,可以指定某个网卡连接,ip link show ens160:只查看ens160网卡连接
ip neigh 查看ARP缓存信息
ip link set ens160 down 把ens160网卡链接设置为down状态
ip link set ens160 up 把ens160网卡链接设置为up状态
ip -br a 以简洁的方式显示ip地址及网卡连接状态

ip命令示例:

  • 查看ip地址:

方式一:

shell 复制代码
1)查看所有网卡信息:
root@studry:~# ip a 
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 noprefixroute 
       valid_lft forever preferred_lft forever
2: ens160: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
    link/ether 00:0c:29:89:35:b7 brd ff:ff:ff:ff:ff:ff
    altname enp3s0
    altname enx000c298935b7
    inet 10.0.0.90/24 brd 10.0.0.255 scope global noprefixroute ens160
       valid_lft forever preferred_lft forever
    inet 10.0.0.91/24 brd 10.0.0.255 scope global secondary noprefixroute ens160
       valid_lft forever preferred_lft forever
    inet6 fe80::20c:29ff:fe89:35b7/64 scope link noprefixroute 
       valid_lft forever preferred_lft forever
2)指定查看某个网卡上信息:
root@studry:~# ip a show ens160 
2: ens160: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
    link/ether 00:0c:29:89:35:b7 brd ff:ff:ff:ff:ff:ff
    altname enp3s0
    altname enx000c298935b7
    inet 10.0.0.90/24 brd 10.0.0.255 scope global noprefixroute ens160
       valid_lft forever preferred_lft forever
    inet 10.0.0.91/24 brd 10.0.0.255 scope global secondary noprefixroute ens160
       valid_lft forever preferred_lft forever
    inet6 fe80::20c:29ff:fe89:35b7/64 scope link noprefixroute 
       valid_lft forever preferred_lft forever

方式二:简洁查看网卡信息:

shell 复制代码
1)以简洁的方式查看ipv4地址及链接状态信息
root@studry:~# ip -4 -br a
lo               UNKNOWN        127.0.0.1/8 
ens160           UP             10.0.0.90/24 10.0.0.91/24 
  • 查看路由表:
shell 复制代码
1)查看路由表:
root@studry:~# ip r
default via 10.0.0.2 dev ens160 proto static metric 100 
10.0.0.0/24 dev ens160 proto kernel scope link src 10.0.0.90 metric 100 
10.0.0.0/24 dev ens160 proto kernel scope link src 10.0.0.91 metric 100 
2)也可以使用route -n进行查看:
root@studry:~# route  -n 
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         10.0.0.2        0.0.0.0         UG    100    0        0 ens160
10.0.0.0        0.0.0.0         255.255.255.0   U     100    0        0 ens160
10.0.0.0        0.0.0.0         255.255.255.0   U     100    0        0 ens160
  • 查看ARP缓存:
shell 复制代码
1)方式一:
root@studry:~# ip neigh
10.0.0.2 dev ens160 lladdr 00:50:56:e1:2e:a7 STALE 
10.0.0.150 dev ens160 lladdr 00:0c:29:b2:8b:8f STALE 
2)也可以使用arp -a进行查看
root@studry:~# arp -a 
_gateway (10.0.0.2) at 00:50:56:e1:2e:a7 [ether] on ens160
? (10.0.0.150) at 00:0c:29:b2:8b:8f [ether] on ens160
  • 查看网卡连接状态:
shell 复制代码
1)查看所有网卡连接状态:
root@studry:~# 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: ens160: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP mode DEFAULT group default qlen 1000
    link/ether 00:0c:29:89:35:b7 brd ff:ff:ff:ff:ff:ff
    altname enp3s0
    altname enx000c298935b7
2)可以指定查看某个网卡连接状态:
root@studry:~# ip link show ens160 
2: ens160: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP mode DEFAULT group default qlen 1000
    link/ether 00:0c:29:89:35:b7 brd ff:ff:ff:ff:ff:ff
    altname enp3s0
    altname enx000c298935b7
  • 关闭连接和启动连接:

关闭连接:

shell 复制代码
1)关闭连接
root@studry:~# ip link set ens160 down 
root@studry:~# ip link show ens160
2: ens160: <BROADCAST,MULTICAST> mtu 1500 qdisc mq state DOWN mode DEFAULT group default qlen 1000
    link/ether 00:0c:29:89:35:b7 brd ff:ff:ff:ff:ff:ff
    altname enp3s0
    altname enx000c298935b7
`说明:`
这时的网卡链接已经down掉了,远程连接也会断开
2)开启连接:
root@studry:~# ip link set ens160  up 
root@studry:~# ip link show ens160 
2: ens160: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP mode DEFAULT group default qlen 1000
    link/ether 00:0c:29:89:35:b7 brd ff:ff:ff:ff:ff:ff
    altname enp3s0
    altname enx000c298935b7
`说明:`
如果修改网卡连接信息,如修改IP地址或DNS,使用先停掉在开启连接,修改后的网卡连接信息不生效。
  • 增加IP地址,临时增加:
shell 复制代码
1)增加临时的IP地址:
查看现在有哪些IP地址:
wmn@studry:~$ sudo ip -4 -br a 
[sudo] password for wmn: 
lo               UNKNOWN        127.0.0.1/8 
ens160           UP             10.0.0.93/24 
进行增加IP:
wmn@studry:~$ sudo ip addr add 10.0.0.91/24 dev ens160 
查看是否增加成功:
wmn@studry:~$ sudo ip -4 -br a
lo               UNKNOWN        127.0.0.1/8 
ens160           UP             10.0.0.93/24 10.0.0.91/24 
`注意:`
只是临时增加IP,当服务器重启时候,新增加的IP地址则会删除。
  • 临时删除IP地址:
shell 复制代码
1)查看现有的IP地址:
wmn@studry:~$ sudo ip -4 -br a
lo               UNKNOWN        127.0.0.1/8 
ens160           UP             10.0.0.93/24 10.0.0.91/24 
2)临时删除IP地址:
wmn@studry:~$ sudo ip addr del 10.0.0.93/24 dev ens160
3)查看是否删除:
wmn@studry:~$ ip -br -4 a
lo               UNKNOWN        127.0.0.1/8 
ens160           UP             10.0.0.91/24 
`注意:`
使用ip del删除是临时删除,重启服务器,地址则会恢复,可以删除所有地址。
  • 临时添加/删除路由表

临时添加路由:

shell 复制代码
1)临时添加:
root@studry:~# ip route add 20.0.0.0/24 via 10.0.0.3 dev ens192 proto dhcp src 10.0.0.144 metric 102
2)查看是否添加成功
root@studry:~# ip r
default via 10.0.0.2 dev ens160 proto static metric 100 
default via 10.0.0.2 dev ens192 proto dhcp src 10.0.0.144 metric 101 
10.0.0.0/24 dev ens160 proto kernel scope link src 10.0.0.93 metric 100 
10.0.0.0/24 dev ens192 proto kernel scope link src 10.0.0.144 metric 101 
20.0.0.0/24 via 10.0.0.3 dev ens192 proto dhcp src 10.0.0.144 metric 102 
`说明:`
临时添加重启服务器,则会失效

临时删除路由:

shell 复制代码
1)查看路由表:
root@studry:~# ip  r
default via 10.0.0.2 dev ens160 proto static metric 100 
default via 10.0.0.2 dev ens192 proto dhcp src 10.0.0.144 metric 101 
10.0.0.0/24 dev ens160 proto kernel scope link src 10.0.0.93 metric 100 
10.0.0.0/24 dev ens192 proto kernel scope link src 10.0.0.144 metric 101 
2)进行删除:
root@studry:~# ip route del default via 10.0.0.2 dev ens192
3)查看是否删除成功:
root@studry:~# ip r 
default via 10.0.0.2 dev ens160 proto static metric 100 
10.0.0.0/24 dev ens160 proto kernel scope link src 10.0.0.93 metric 100 
10.0.0.0/24 dev ens192 proto kernel scope link src 10.0.0.144 metric 101 
`说明:`
服务器重启后则会恢复原先的路由表。
  • 临时添加/删除ARP缓存记录:

临时添加ARP缓存记录:

shell 复制代码
1)查看原先的arp缓存记录:
root@studry:~# ip neigh show 
10.0.0.2 dev ens160 lladdr 00:50:56:e1:2e:a7 REACHABLE 
2)新增加一条ARP缓存记录:
方式一:
root@studry:~# ip neigh add 10.0.0.135 lladdr 00:0c:29:22:bb:32 dev ens160
root@studry:~# ip neigh add 10.0.0.135 lladdr 00:0c:29:22:bb:32 dev ens160 nud permanent
root@studry:~# ip neigh 
10.0.0.254 dev ens192 lladdr 00:50:56:e5:59:cc REACHABLE 
10.0.0.135 dev ens160 lladdr 00:0c:29:22:bb:32 PERMANENT 
10.0.0.2 dev ens160 lladdr 00:50:56:e1:2e:a7 REACHABLE
方式二:
root@studry:~# ip neigh add 10.0.0.135 lladdr 00:0c:29:22:bb:32 dev ens160 nud permanent
root@studry:~# ip neigh 
10.0.0.254 dev ens192 lladdr 00:50:56:e5:59:cc REACHABLE 
10.0.0.135 dev ens160 lladdr 00:0c:29:22:bb:32 PERMANENT 
10.0.0.2 dev ens160 lladdr 00:50:56:e1:2e:a7 REACHABLE 

`说明:`
只是临时添加,重启服务器就没有了。
nud permanent参数:该条目永不超时,适合做静态绑定
如果省略nud permanent,该条目REACHABLE状态,并可能随时间被内核回收。PERMANENT 不会回收。

临时删除ARP缓存记录:

shell 复制代码
1)查看ARP缓存:
root@studry:~# ip neigh show 
10.0.0.2 dev ens160 lladdr 00:50:56:e1:2e:a7 STALE 
10.0.0.150 dev ens160 lladdr 00:0c:29:b2:8b:8f STALE 
2)删除ARP某条记录:
root@studry:~# ip neigh del 10.0.0.150 dev ens160
3)查看是否删除:
root@studry:~# ip neigh show 
10.0.0.2 dev ens160 lladdr 00:50:56:e1:2e:a7 REACHABLE 

1.3 ping命令(检测网络是否通)

ping命令在rockylinux10中最基础也是最常用的网络连通性测试工具,它可以通过发送ICMP回显请求报文来检测目标主机是否可达,并且测量往返延迟和丢包率。

参数选项:

参数 说明
-c 指定发送次数
-i 指定每次间隔多久发送一次
-s 设置载荷字节数(默认是56),用于测试MTU相关问题
-I 指定从哪个网卡发出探测
-q 安静模式,只显示最终的统计
-f 以快速发包,仅用于隔离环境压测测试

案例:

指定发送4次探测:

shell 复制代码
root@studry:~# ping -c 4 8.8.8.8
PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data.
64 bytes from 8.8.8.8: icmp_seq=1 ttl=128 time=286 ms
64 bytes from 8.8.8.8: icmp_seq=2 ttl=128 time=689 ms
64 bytes from 8.8.8.8: icmp_seq=3 ttl=128 time=587 ms
64 bytes from 8.8.8.8: icmp_seq=4 ttl=128 time=249 ms

--- 8.8.8.8 ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3001ms
rtt min/avg/max/mdev = 249.420/452.933/689.283/189.057 ms

指定从哪个网口发出去:

shell 复制代码
root@studry:~# ping -I ens160 10.0.0.135
PING 10.0.0.135 (10.0.0.135) from 10.0.0.93 ens160: 56(84) bytes of data.
64 bytes from 10.0.0.135: icmp_seq=1 ttl=64 time=0.342 ms
64 bytes from 10.0.0.135: icmp_seq=2 ttl=64 time=51.2 ms
64 bytes from 10.0.0.135: icmp_seq=3 ttl=64 time=66.4 ms
64 bytes from 10.0.0.135: icmp_seq=4 ttl=64 time=0.387 ms
^C
--- 10.0.0.135 ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3016ms
rtt min/avg/max/mdev = 0.342/29.590/66.434/29.718 ms

调整数据包大小:

shell 复制代码
root@studry:~# ping -s 1000 -c 4 8.8.8.8
PING 8.8.8.8 (8.8.8.8) 1000(1028) bytes of data.
1008 bytes from 8.8.8.8: icmp_seq=1 ttl=128 time=410 ms
1008 bytes from 8.8.8.8: icmp_seq=2 ttl=128 time=260 ms
1008 bytes from 8.8.8.8: icmp_seq=3 ttl=128 time=247 ms
1008 bytes from 8.8.8.8: icmp_seq=4 ttl=128 time=250 ms

--- 8.8.8.8 ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3004ms
rtt min/avg/max/mdev = 247.398/292.030/410.469/68.547 ms

设置发送间隔:

shell 复制代码
root@studry:~# ping -i 4 -c 4  8.8.8.8
PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data.
64 bytes from 8.8.8.8: icmp_seq=1 ttl=128 time=248 ms
64 bytes from 8.8.8.8: icmp_seq=2 ttl=128 time=250 ms
64 bytes from 8.8.8.8: icmp_seq=3 ttl=128 time=248 ms
64 bytes from 8.8.8.8: icmp_seq=4 ttl=128 time=249 ms

--- 8.8.8.8 ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 12013ms
rtt min/avg/max/mdev = 248.114/248.759/249.922/0.691 ms

仅输出汇总:

shell 复制代码
root@studry:~# ping -q -c 4 223.5.5.5
PING 223.5.5.5 (223.5.5.5) 56(84) bytes of data.

--- 223.5.5.5 ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3006ms
rtt min/avg/max/mdev = 13.627/20.740/40.225/11.255 ms

快速发包:

shell 复制代码
root@studry:~# ping -f -c 1000 223.5.5.5
PING 223.5.5.5 (223.5.5.5) 56(84) bytes of data.
                                
--- 223.5.5.5 ping statistics ---
1000 packets transmitted, 1000 received, 0% packet loss, time 12052ms
rtt min/avg/max/mdev = 11.482/46.238/348.876/69.324 ms, pipe 32, ipg/ewma 12.063/79.781 ms

1.4 curl命令

curl是一个功能很强大的命令行工具,用于通过URL进行传输数据。在rockyLinux10中,它常用于测试API、下载文件和排查网络问题。

常用参数:

选项参数 说明
-I 显示HTTP头部信息
-L 访问http时,自动跳转到HTTPS,显示网站内容
-o 把访问到网站内容保存到指定的文件中
-O 下载网站中文件,使用网站文件名作为文件名
-C - -O 断点重传,当下载的文件中断,在重新下载会从中断的地方进行下载
-X 以什么形式进行访问,如-X post :以post请求方式进行访问
-H 添加访问头部
-D 访问json数据体
-u 发送用户名和密码进行认证访问。

示例:

默认将HTML内容输出到终端:

shell 复制代码
root@studry:~# curl 10.0.0.135
wmn....

只获取HTTP头部信息:

shell 复制代码
root@studry:~# curl -I 10.0.0.135
HTTP/1.1 200 OK
Server: nginx/1.26.3
Date: Thu, 01 Oct 2026 06:18:33 GMT
Content-Type: text/html
Content-Length: 8
Last-Modified: Thu, 01 Oct 2026 06:14:10 GMT
Connection: keep-alive
ETag: "6abdfa32-8"
Accept-Ranges: bytes
`说明:`
只获取HTTP头部信息,快速检查状态码和服务类型。

跟随重定向:访问的网站从HTTP条状到HTTPS:

shell 复制代码
root@studry:~# curl -L www.deepseek.com
<!DOCTYPE html><html lang="zh-CN"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="preload" as="image" href="/images/app-qrcode.png"/><

自定义文件名保存:用于访问的内容保存到指定文件中:

shell 复制代码
root@studry:~# curl -o deepseek.html -L  www.deepseek.com
2)查看文件内容:
root@studry:~# head -1 deepseek.html 
<!DOCTYPE html><html lang="zh-CN"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="preload" as="image" href="/images/app-qrcode.png"/>

下载网站上文件:

shell 复制代码
ot@studry:~/jenkins# curl -O https://mirrors.aliyun.com/jenkins/war/2.584/jenkins.war
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100 50.1M  100 50.1M    0     0  14.2M      0  0:00:03  0:00:03 --:--:-- 14.2M
2)查看是否下载成功:
root@studry:~/jenkins# ls 
jenkins.war

断点续传,当中断会继续下载大文件:

shell 复制代码
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100 50.1M  100 50.1M    0     0  13.1M      0  0:00:03  0:00:03 --:--:-- 13.1M

发送GET请求(带参数):

shell 复制代码
curl "https://api.example.com/search?q=keyword"

发送JSON格式的POST请求:

shell 复制代码
curl -X POST https://api.example.com/v1/items \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer <你的Token>" \
  -d '{"name":"widget","qty":12}'

使用HTTP基本认证:

shell 复制代码
curl -u user:pass https://example.com
发送用户名和密码进行认证。

网站健康检查:

shell 复制代码
root@studry:~/jenkins# curl -sS -I https://www.guoshengxd.com
HTTP/1.1 200 OK
Date: Thu, 01 Oct 2026 06:46:31 GMT
Content-Type: text/html
Content-Length: 2852
Connection: keep-alive
Set-Cookie: HWWAFSESID=8a866737d0c1203647; path=/
Set-Cookie: HWWAFSESTIME=1790837191473; path=/
Last-Modified: Fri, 31 Jul 2026 06:56:34 GMT
ETag: "6a6c4722-b24"
Accept-Ranges: bytes
Server: CW

1.5 Linux常用的抓包工具---tcpdump

tcpdump是Linux系统中经典的命令行抓包分析工具,当需要排查网络问题时,它几乎是首先工具。

常用参数:

选项参数 说明
-i 指定抓包网口
-nn 不把IP地址解析成主机名,不把端口号解析成服务名
-c 设定抓包的数量
-w 把抓包信息保存到本地文件中
-r 读取保存抓包的文件

过滤语法:

根据主机进行过滤:

过滤参数 说明
host 双向主机IP地址进行过滤,例如:host 10.0.0.2 ,过滤源地址是10.0.0.2或过滤目标地址是10.0.0.2
src 过滤源地址请求。src 10.0.0.3:仅过滤源地址是10.0.0.3包
dst 仅过滤目标地址请求。dst 10.0.0.4:仅过滤目标地址是10.0.0.4请求。

端口过滤:

过滤参数 说明
port 80 双向过滤80端口
src port 22 只过滤源端口是22
dst port 80 只过滤目的端口是80
portrange21-25 双向过滤端口范围21-25端口

根据协议进行过滤:

协议参数 说明
tcp 过滤tcp协议
udp 过滤udp协议
icmp 过滤icmp
arp 过滤arp

根据网络进行过滤:

过滤参数 说明
net 10.0.0.0/24 过滤10.0.0.0/24网段

逻辑组合:

组合参数 说明
and 并列,and两边必须都成立
or 或者,or两边只有一边成立即可行
not 不是,不是这个都显示出来

示例:

排查web服务请求并且保存到文件中:

shell 复制代码
root@studry:~/jenkins# tcpdump  -nn  -i ens160 port 80 -w http.pcap
2)查看文件内容:
root@studry:~/jenkins# tcpdump -r http.pcap 
reading from file http.pcap, link-type EN10MB (Ethernet), snapshot length 262144
dropped privs to tcpdump
15:32:05.053387 IP 10.0.0.135.48220 > studry.http: Flags [S], seq 1808604886, win 64240, options [mss 1460,sackOK,TS val 1188491515 ecr 0,nop,wscale 7], length 0
15:32:05.053426 IP studry.http > 10.0.0.135.48220: Flags [S.], seq 578449306, ack 1808604887, win 65160, options [mss 1460,sackOK,TS val 971335435 ecr 1188491515,nop,wscale 7], length 0
15:32:05.053717 IP 10.0.0.135.48220 > studry.http: Flags [.], ack 1, win 502, options [nop,nop,TS val 1188491515 ecr 971335435], length 0
15:32:05.053798 IP 10.0.0.135.48220 > studry.http: Flags [P.], seq 1:75, ack 1, win 502, options [nop,nop,TS val 1188491516 ecr 971335435], length 74: HTTP: HEAD / HTTP/1.1
15:32:05.053810 IP studry.http > 10.0.0.135.48220: Flags [.], ack 75, win 509, options [nop,nop,TS val 971335435 ecr 1188491516], length 0
15:32:05.054289 IP studry.http > 10.0.0.135.48220: Flags [P.], seq 1:241, ack 75, win 509, options [nop,nop,TS val 971335435 ecr 1188491516], length 240: HTTP: HTTP/1.1 200 OK
15:32:05.054624 IP 10.0.0.135.48220 > studry.http: Flags [.], ack 241, win 501, options [nop,nop,TS val 1188491516 ecr 971335435], length 0
15:32:05.066578 IP 10.0.0.135.48220 > studry.http: Flags [F.], seq 75, ack 241, win 501, options [nop,nop,TS val 1188491528 ecr 971335435], length 0
15:32:05.066644 IP studry.http > 10.0.0.135.48220: Flags [F.], seq 241, ack 76, win 509, options [nop,nop,TS val 971335448 ecr 1188491528], length 0
15:32:05.066844 IP 10.0.0.135.48220 > studry.http: Flags [.], ack 242, win 501, options [nop,nop,TS val 1188491529 ecr 971335448], length 0

抓取ping和arp报文数据:

shell 复制代码
root@studry:~/jenkins# tcpdump -i ens160 -nn icmp or arp -w ping_arp.icmp
dropped privs to tcpdump
tcpdump: listening on ens160, link-type EN10MB (Ethernet), snapshot length 262144 bytes
^C8 packets captured
8 packets received by filter
0 packets dropped by kernel
root@studry:~/jenkins# tcpdump -r ping_arp.icmp 
reading from file ping_arp.icmp, link-type EN10MB (Ethernet), snapshot length 262144
dropped privs to tcpdump
15:35:05.106607 IP 10.0.0.135 > studry: ICMP echo request, id 3, seq 1, length 64
15:35:05.106673 IP studry > 10.0.0.135: ICMP echo reply, id 3, seq 1, length 64
15:35:06.108868 IP 10.0.0.135 > studry: ICMP echo request, id 3, seq 2, length 64
15:35:06.108896 IP studry > 10.0.0.135: ICMP echo reply, id 3, seq 2, length 64
15:35:10.326709 ARP, Request who-has 10.0.0.135 tell studry, length 28
15:35:10.327357 ARP, Reply 10.0.0.135 is-at 00:0c:29:22:bb:32 (oui Unknown), length 46
15:35:10.390181 ARP, Request who-has studry tell 10.0.0.135, length 46
15:35:10.390200 ARP, Reply studry is-at 00:0c:29:89:35:b7 (oui Unknown), length 28

抓取sshd包:

shell 复制代码
root@studry:~/jenkins# tcpdump  -i ens160 -nn port 22 -w   sshd.pcap
dropped privs to tcpdump
tcpdump: listening on ens160, link-type EN10MB (Ethernet), snapshot length 262144 bytes
^C46 packets captured
46 packets received by filter
0 packets dropped by kernel

root@studry:~/jenkins# tcpdump -A -r sshd.pcap 
15:39:45.131483 IP 10.0.0.135.54074 > studry.ssh: Flags [S], seq 1898878506, win 64240, options [mss 1460,sackOK,TS val 1188951594 ecr 0,nop,wscale 7], length 0
EH.<.k@.@.F%
...
..].:..q..*........ z.........
F..*........

抓取dns报文:

shell 复制代码
root@studry:~/jenkins# tcpdump -nn  -i ens160 -nn udp port 53 -w dns.pcap

root@studry:~/jenkins# tcpdump -nn  -r dns.pcap 
reading from file dns.pcap, link-type EN10MB (Ethernet), snapshot length 262144
dropped privs to tcpdump
15:48:58.621023 IP 10.0.0.93.40487 > 10.0.0.150.53: 54470+ A? www.magedu.com. (32)
15:48:58.621895 IP 10.0.0.150.53 > 10.0.0.93.40487: 54470 1/0/0 A 43.226.56.46 (48)
15:48:58.622391 IP 10.0.0.93.58293 > 10.0.0.150.53: 42449+ AAAA? www.magedu.com. (32)
15:48:58.623045 IP 10.0.0.150.53 > 10.0.0.93.58293: 42449 0/1/0 (95)
15:48:58.623277 IP 10.0.0.93.50208 > 10.0.0.150.53: 45508+ MX? www.magedu.com. (32)
15:48:58.623826 IP 10.0.0.150.53 > 10.0.0.93.50208: 45508 0/1/0 (95)

1.6 DNS命令集合

1.6.0 验证DNS命令

1.6.0.0 dig命令

命令示例:

解析www.baidu.com域名:

shell 复制代码
[root@studry ~]# dig www.baidu.com

; <<>> DiG 9.18.33 <<>> www.baidu.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 9527
;; flags: qr rd ra; QUERY: 1, ANSWER: 3, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 1232
; COOKIE: e87c1ac02f7997c9010000006abe11f53311ca2570cacb75 (good)
;; QUESTION SECTION:
;www.baidu.com.                 IN      A

;; ANSWER SECTION:
www.baidu.com.          463     IN      CNAME   www.a.shifen.com.
www.a.shifen.com.       38      IN      A       110.242.69.21
www.a.shifen.com.       38      IN      A       110.242.70.57

;; Query time: 1 msec
;; SERVER: 10.0.0.150#53(10.0.0.150) (UDP)
;; WHEN: Thu Oct 01 15:55:33 CST 2026
;; MSG SIZE  rcvd: 132

只显示dns解析的IP地址:

shell 复制代码
[root@studry ~]# dig www.baidu.com +short
www.a.shifen.com.
110.242.70.57
110.242.69.21

指定dns进行解析:

shell 复制代码
[root@studry ~]# dig @223.5.5.5 www.magedu.com

; <<>> DiG 9.18.33 <<>> @223.5.5.5 www.magedu.com
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 28941
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 1232
;; QUESTION SECTION:
;www.magedu.com.                        IN      A

;; ANSWER SECTION:
www.magedu.com.         577     IN      A       43.226.56.46

;; Query time: 19 msec
;; SERVER: 223.5.5.5#53(223.5.5.5) (UDP)
;; WHEN: Thu Oct 01 15:58:50 CST 2026
;; MSG SIZE  rcvd: 59

指定查询记录:

shell 复制代码
1)只查询A记录:
[root@studry ~]# dig jd.com A +short
106.39.171.134
111.13.149.108
211.144.24.218
211.144.27.126
2)只查询权威DNS
[root@studry ~]# dig jd.com SOA +short
ns1.jdcache.com. apollo.jd.com. 2015280403 10800 3600 604800 38400
3)查询服务器的域名:
[root@studry ~]# dig jd.com NS +short
ns1.jd.com.
ns4.jdcache.com.
ns3.jd.com.
ns2.jdcache.com.
ns3.jdcache.com.
ns5.jd.com.
ns1.jdcache.com.
ns4.jd.com.
ns2.jd.com.
ns5.jdcache.com.
3)查询邮件服务器
[root@studry ~]# dig jd.com MX +short
30 mx1.jd.com.
5 mx.jd.com.
4)查询CNaME解析
[root@studry ~]# dig jd.com CNAME +short
5)查询TXT记录
[root@studry ~]# dig jd.com TXT +short
"globalsign-domain-verification=FtLF6A52URFV2IMTamnviNHHyQDZCyAnIHhoxdb_YF"
"v=spf1 include:a.spf.jd.com include:b.spf.jd.com include:c.spf.jd.com include:servers.mcsv.net -all"

1.6.0.1 nslookup命令

nslookup命令实例:

查看www.baidu.com域名解析:

shell 复制代码
[root@studry ~]# nslookup www.baidu.com
Server:         10.0.0.150
Address:        10.0.0.150#53

Non-authoritative answer:
www.baidu.com   canonical name = www.a.shifen.com.
Name:   www.a.shifen.com
Address: 110.242.70.57
Name:   www.a.shifen.com
Address: 110.242.69.21
Name:   www.a.shifen.com
Address: 2408:871a:2100:186c:0:ff:b07e:3fbc
Name:   www.a.shifen.com
Address: 2408:871a:2100:1b23:0:ff:b07a:7ebc
`说明:`
默认使用/etc/resolve文件配置的DNS

指定dns服务器进行解析:

shell 复制代码
[root@studry ~]# nslookup www.jd.com 8.8.8.8
Server:         8.8.8.8
Address:        8.8.8.8#53

Non-authoritative answer:
www.jd.com      canonical name = www.jd.com.gslb.qianxun.com.
www.jd.com.gslb.qianxun.com     canonical name = jd-abroad.cdn20.com.
Name:   jd-abroad.cdn20.com
Address: 27.222.17.238
Name:   jd-abroad.cdn20.com
Address: 222.132.143.16

查看域名指定的记录:

shell 复制代码
1)查看A记录:
[root@studry ~]# nslookup -type=A jd.com
Server:         10.0.0.150
Address:        10.0.0.150#53

Non-authoritative answer:
Name:   jd.com
Address: 111.13.149.108
Name:   jd.com
Address: 211.144.24.218
Name:   jd.com
Address: 211.144.27.126
Name:   jd.com
Address: 106.39.171.134
2)查看NS记录:
[root@studry ~]# nslookup -type=NS jd.com
Server:         10.0.0.150
Address:        10.0.0.150#53

Non-authoritative answer:
jd.com  nameserver = ns2.jd.com.
jd.com  nameserver = ns5.jd.com.
jd.com  nameserver = ns1.jdcache.com.
jd.com  nameserver = ns4.jdcache.com.
jd.com  nameserver = ns2.jdcache.com.
jd.com  nameserver = ns3.jdcache.com.
jd.com  nameserver = ns4.jd.com.
jd.com  nameserver = ns3.jd.com.
jd.com  nameserver = ns5.jdcache.com.
jd.com  nameserver = ns1.jd.com.

Authoritative answers can be found from:
3)查看MX记录:
[root@studry ~]# nslookup -type=MX jd.com
Server:         10.0.0.150
Address:        10.0.0.150#53

Non-authoritative answer:
jd.com  mail exchanger = 5 mx.jd.com.
jd.com  mail exchanger = 30 mx1.jd.com.

Authoritative answers can be found from:
4)查看TXT记录:
[root@studry ~]# nslookup -type=TXT jd.com
Server:         10.0.0.150
Address:        10.0.0.150#53

Non-authoritative answer:
jd.com  text = "globalsign-domain-verification=FtLF6A52URFV2IMTamnviNHHyQDZCyAnIHhoxdb_YF"
jd.com  text = "v=spf1 include:a.spf.jd.com include:b.spf.jd.com include:c.spf.jd.com include:servers.mcsv.net -all"

Authoritative answers can be found from:
4)查看SOA记录:
[root@studry ~]# nslookup -type=SOA jd.com
Server:         10.0.0.150
Address:        10.0.0.150#53

Non-authoritative answer:
jd.com
        origin = ns1.jdcache.com
        mail addr = apollo.jd.com
        serial = 2015280403
        refresh = 10800
        retry = 3600
        expire = 604800
        minimum = 38400

Authoritative answers can be found from:
5)查看MAX记录:
[root@studry ~]# nslookup -type=MX jd.com
Server:         10.0.0.150
Address:        10.0.0.150#53

Non-authoritative answer:
jd.com  mail exchanger = 5 mx.jd.com.
jd.com  mail exchanger = 30 mx1.jd.com.

Authoritative answers can be found from:

1.6.0.2 host命令

例子:

查询magedu.com域名:

shell 复制代码
[root@studry ~]# host magedu.com
magedu.com has address 43.226.56.46
magedu.com mail is handled by 10 mxbiz2.qq.com.
magedu.com mail is handled by 5 mxbiz1.qq.com.

查询www.magedu.com子域名:

shell 复制代码
[root@studry ~]# host www.magedu.com
www.magedu.com has address 43.226.56.46

指定DNS进行查询域名:

shell 复制代码
[root@studry ~]# host www.magedu.com 8.8.8.8
Using domain server:
Name: 8.8.8.8
Address: 8.8.8.8#53
Aliases: 

www.magedu.com has address 43.226.56.46

指定查询记录:

shell 复制代码
1)查询所有记录:
[root@studry ~]# host -a magedu.com
Trying "magedu.com"
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 38578
;; flags: qr rd ra; QUERY: 1, ANSWER: 5, AUTHORITY: 0, ADDITIONAL: 0

;; QUESTION SECTION:
;magedu.com.                    IN      ANY

;; ANSWER SECTION:
magedu.com.             442     IN      MX      5 mxbiz1.qq.com.
magedu.com.             442     IN      MX      10 mxbiz2.qq.com.
magedu.com.             589     IN      A       43.226.56.46
magedu.com.             2117    IN      NS      dns9.hichina.com.
magedu.com.             2117    IN      NS      dns10.hichina.com.

Received 146 bytes from 10.0.0.150#53 in 4 ms
2)查询NS记录:
[root@studry ~]# host -t NS magedu.com
magedu.com name server dns9.hichina.com.
magedu.com name server dns10.hichina.com.
3)查询SOA记录:
[root@studry ~]# host -t SOA magedu.com
magedu.com has SOA record dns9.hichina.com. hostmaster.hichina.com. 2026082509 3600 1200 86400 600
4)查询TXT记录:
[root@studry ~]# host -t TXT jd.com
jd.com descriptive text "v=spf1 include:a.spf.jd.com include:b.spf.jd.com include:c.spf.jd.com include:servers.mcsv.net -all"
jd.com descriptive text "globalsign-domain-verification=FtLF6A52URFV2IMTamnviNHHyQDZCyAnIHhoxdb_YF"
5)查询MX记录。
[root@studry ~]# host -t MX jd.com
jd.com mail is handled by 30 mx1.jd.com.
jd.com mail is handled by 5 mx.jd.com.