记录一下常用的Linux下的网络控制命令,随时查询用。
目录
00 网卡状态查询
ip命令
ip addr
结果如下:
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 100000
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: GBE2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 100000
link/ether 48:21:0b:3d:b4:4c brd ff:ff:ff:ff:ff:ff
altname enp0s31f6
inet 192.165.58.220/24 brd 192.165.58.255 scope global GBE2
valid_lft forever preferred_lft forever
inet6 fd7f:66af:d4cc::475/128 scope global noprefixroute
valid_lft forever preferred_lft forever
inet6 fd7f:66af:d4cc:0:4a21:bff:fe3d:b44c/64 scope global mngtmpaddr noprefixroute
valid_lft forever preferred_lft forever
inet6 fe80::4a21:bff:fe3d:b44c/64 scope link
valid_lft forever preferred_lft forever
ifconfig查询
ifconfig
结果如下
GBE2: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.165.58.220 netmask 255.255.255.0 broadcast 192.165.58.255
inet6 fd7f:66af:d4cc::475 prefixlen 128 scopeid 0x0<global>
inet6 fd7f:66af:d4cc:0:4a21:bff:fe3d:b44c prefixlen 64 scopeid 0x0<global>
inet6 fe80::4a21:bff:fe3d:b44c prefixlen 64 scopeid 0x20<link>
ether 48:21:0b:3d:b4:4c txqueuelen 100000 (Ethernet)
RX packets 4681599481 bytes 6363602398897 (6.3 TB)
RX errors 0 dropped 196605 overruns 0 frame 0
TX packets 5321408 bytes 1159390864 (1.1 GB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
device interrupt 16 memory 0x4fb00000-4fb20000
lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 0x10<host>
loop txqueuelen 100000 (Local Loopback)
RX packets 7565290 bytes 6806970288 (6.8 GB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 7565290 bytes 6806970288 (6.8 GB)
nmcli查询(NetworkManager服务)
当NetworkManager服务在运行时,可以使用nmcli命令可以查询当前网络状态:
nmcli device status
可以查询得到结果:
DEVICE TYPE STATE CONNECTION
docker0 bridge unmanaged --
eth0 ethernet unmanaged --
eth1 ethernet unmanaged --
eth2 ethernet unmanaged --
lo loopback unmanaged --
01 网卡启停
ifconfig
# 停止网卡
ifconfig eth0 down
# 启动网卡
ifconfig eth0 up
网卡停止再重启后会丢失之前的ip,需要自己再重新添加一遍
ip命令
# 停止网卡
ip link set eth0 down
# 启动网卡
ip link set eth0 up
02 IP修改
ifconfg 临时设置
临时设置网卡eth0的ip为 192.165.100.100
ifconfig eth0 192.165.100.100
注意,这种修改都是临时修改,无法持续生效。重新启动的时候会丢失。
ip命令修改
# 删除旧IP,如果是ssh登录需要注意是否会影响当前连接
sudo ip addr del 192.168.1.100/24 dev eth0
# 增加新IP
sudo ip addr add 192.168.1.200/24 dev eth0
03 路由增删查
route命令
# 查询路由
route -n
# 添加默认路由
route add default gw 192.168.1.1
# 添加网段路由
route add -net 10.0.0.0 netmask 255.0.0.0 gw 192.168.1.1 dev eth0
ip命令
ip route add default via <网关IP> dev eth0
ip route add default via 192.168.1.1 dev eth0
04 DNS服务器
vim /etc/resolv.conf
直接添加
nameserver 223.5.5.5
nameserver 114.114.114.114
保存即可
05 域名查询
host 快速查询
# 快速查询
host google.com
nslookup 查询
nslookup google.com
得到结果
Server: 223.5.5.5
Address: 223.5.5.5#53
Non-authoritative answer:
Name: google.com
Address: 59.24.3.174
dig 查询
需要下载软件 bind9-dnsutils
sudo apt install bind9-dnsutils
查询命令:
dig google.com
结果为:
; <<>> DiG 9.18.30-0ubuntu0.22.04.2-Ubuntu <<>> google.com A
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 17876
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 1232
;; QUESTION SECTION:
;google.com. IN A
;; ANSWER SECTION:
google.com. 14 IN A 93.46.8.90
;; Query time: 4 msec
;; SERVER: 223.5.5.5#53(223.5.5.5) (UDP)
;; WHEN: Fri May 09 14:10:17 CST 2025
;; MSG SIZE rcvd: 55
06 arp缓存查询
arp
arp -n
得到以下结果
Address HWtype HWaddress Flags Mask Iface
192.165.57.95 ether 00:24:68:08:e6:36 C eth2
192.165.56.1 ether 34:00:a3:54:f1:9c C eth0
192.165.56.91 ether 00:24:68:07:7d:01 C eth0
192.165.56.72 ether 18:c0:4d:18:a6:93 C eth0
ip neigh
ip neigh
得到以下结果
192.165.57.95 dev eth2 lladdr 00:24:68:08:e6:36 REACHABLE
192.165.56.1 dev eth0 lladdr 34:00:a3:54:f1:9c REACHABLE
192.165.56.91 dev eth0 lladdr 00:24:68:07:7d:01 REACHABLE
192.165.56.72 dev eth0 lladdr 18:c0:4d:18:a6:93 STALE
07 路径追踪
traceroute 查询
# 安装
sudo apt install traceroute
# 使用
traceroute google.com
tracepath google.com # 内置命令,无需安装
08 网络连接状态查询
netstat查询
# 查看所有连接
netstat -a
# 查看TCP连接
netstat -at
# 查看UDP连接
netstat -au
# 查看监听端口
netstat -lntp
# 查看路由表
netstat -rn
ss查询
ss是更加现代的查询工具
# 查看所有连接
ss -a
# 查看TCP连接
ss -at
# 查看监听端口
ss -lntp
# 按状态筛选
ss -t state established
09 网络接口状态
ethtool 查询
# 安装
sudo apt install ethtool
# 查看网卡能力
ethtool eth0
# 查看驱动信息
ethtool -i eth0
# 查看统计信息
ethtool -S eth0