本文介绍 Linux 下常用网络命令.
文章目录
1. 查看网络信息
1.1 ifconfig
1.2 ifup ifdown
1.3 netstat
查询网络状态
netstat [options]
-t
:列出 TCP 协议端口-u
:列出 UDP 协议端口-n
:不使用域名与服务名,而使用 IP 地址和端口号-l
:仅列出在监听状态网络服务-a
:列出所有的网络连接
$ netstat -tuln
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN
tcp 0 0 192.168.122.1:53 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN
tcp 0 0 127.0.0.1:631 0.0.0.0:* LISTEN
tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN
tcp 0 0 127.0.0.1:6010 0.0.0.0:* LISTEN
tcp6 0 0 :::111 :::* LISTEN
tcp6 0 0 :::22 :::* LISTEN
tcp6 0 0 ::1:631 :::* LISTEN
tcp6 0 0 ::1:25 :::* LISTEN
tcp6 0 0 ::1:6010 :::* LISTEN
udp 0 0 0.0.0.0:42195 0.0.0.0:*
udp 0 0 0.0.0.0:5353 0.0.0.0:*
udp 0 0 192.168.122.1:53 0.0.0.0:*
udp 0 0 0.0.0.0:67 0.0.0.0:*
udp 0 0 0.0.0.0:68 0.0.0.0:*
udp 0 0 0.0.0.0:111 0.0.0.0:*
udp 0 0 127.0.0.1:323 0.0.0.0:*
udp 0 0 0.0.0.0:801 0.0.0.0:*
udp6 0 0 :::111 :::*
udp6 0 0 ::1:323 :::*
udp6 0 0 :::801 :::*
Recv-Q
表示接收队列中的数据包数量.Send-Q
表示发送队列中的数据包数量.State
只有 TCP 协议有监听状态,UDP 协议没有监听状态,使用了-l
参数,仅显示监听状态的端口.
$ netstat -an
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN
tcp 0 0 192.168.122.1:53 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN
tcp 0 0 127.0.0.1:631 0.0.0.0:* LISTEN
tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN
tcp 0 0 127.0.0.1:6010 0.0.0.0:* LISTEN
tcp 0 36 192.168.45.130:22 192.168.45.1:56343 ESTABLISHED
tcp6 0 0 :::111 :::* LISTEN
tcp6 0 0 :::22 :::* LISTEN
tcp6 0 0 ::1:631 :::* LISTEN
tcp6 0 0 ::1:25 :::* LISTEN
tcp6 0 0 ::1:6010 :::* LISTEN
udp 0 0 0.0.0.0:42195 0.0.0.0:*
udp 0 0 0.0.0.0:5353 0.0.0.0:*
udp 0 0 192.168.122.1:53 0.0.0.0:*
udp 0 0 0.0.0.0:67 0.0.0.0:*
udp 0 0 0.0.0.0:68 0.0.0.0:*
udp 0 0 0.0.0.0:111 0.0.0.0:*
udp 0 0 127.0.0.1:323 0.0.0.0:*
udp 0 0 0.0.0.0:801 0.0.0.0:*
udp6 0 0 :::111 :::*
udp6 0 0 ::1:323 :::*
udp6 0 0 :::801 :::*
raw6 0 0 :::58 :::* 7
Active UNIX domain sockets (servers and established)
Proto RefCnt Flags Type State I-Node Path
unix 2 [ ACC ] STREAM LISTENING 28257 private/discard
unix 2 [ ACC ] STREAM LISTENING 34636 @/tmp/.ICE-unix/2102
unix 2 [ ACC ] STREAM LISTENING 27525 @/tmp/dbus-seBJPDv7
...
...
unix 2 [ ACC ] STREAM LISTENING 18990 /run/gssproxy.sock
unix 3 [ ] DGRAM 10549 /run/systemd/notify
unix 2 [ ] DGRAM 10551 /run/systemd/cgroups-agent
...
...
unix 5 [ ] DGRAM 10572 /run/systemd/journal/socket
unix 28 [ ] DGRAM 10574 /dev/log
unix 2 [ ACC ] STREAM LISTENING 28204 public/pickup
...
...
unix 3 [ ] STREAM CONNECTED 37172 @/tmp/dbus-ICeEtywtww
unix 3 [ ] STREAM CONNECTED 24337 /run/systemd/journal/stdout
unix 3 [ ] DGRAM 16469
统计当前远程连接的数量:
netstat -an | grep ESTABLISHED | wc -l
使用-rn
参数查看路由列表,可以用来查看网关:
$ netstat -rn
Kernel IP routing table
Destination Gateway Genmask Flags MSS Window irtt Iface
0.0.0.0 192.168.45.2 0.0.0.0 UG 0 0 0 ens33
192.168.45.0 0.0.0.0 255.255.255.0 U 0 0 0 ens33
192.168.122.0 0.0.0.0 255.255.255.0 U 0 0 0 virbr0
-r
参数可以列出路由列表,功能和route命令一致.
1.4 route
查看路由列表:
$ route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 192.168.45.2 0.0.0.0 UG 100 0 0 ens33
192.168.45.0 0.0.0.0 255.255.255.0 U 100 0 0 ens33
192.168.122.0 0.0.0.0 255.255.255.0 U 0 0 0 virbr0
临时设置网关:
route add default gw 192.168.45.1
此时查看网关:
$ route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 192.168.45.1 0.0.0.0 UG 0 0 0 ens33
0.0.0.0 192.168.45.2 0.0.0.0 UG 100 0 0 ens33
192.168.45.0 0.0.0.0 255.255.255.0 U 100 0 0 ens33
192.168.122.0 0.0.0.0 255.255.255.0 U 0 0 0 virbr0
临时删除网关:
route del default gw 192.168.45.1
1.5 nslookup
使用 nslookup
命令查看 DNS,Server
既是 DNS 地址:
$ nslookup www.baidu.com
Server: 192.168.45.2
Address: 192.168.45.2#53
Non-authoritative answer:
Name: www.baidu.com
Address: 14.215.177.39
www.baidu.com canonical name = www.a.shifen.com.
可以输入 nslookup
命令直接回车,然后输入 server
查看 DNS,输入 exit
退出命令:
$ nslookup
> server
Default server: 192.168.45.2
Address: 192.168.45.2#53
> exit
2. 测试网络状态
2.1 ping
查看指定地址的网络状况
ping [options] IP or Domain
-c
:指定 ping 包的次数
2.2 telnet
远程原理和端口探测
telnet [IP or Domain] [port]
如果连接成功,CTRL + ] 返回 telnet 命令.
quit
退出:
$ telnet
telnet> quit
2.3 traceroute
traceroute [options] IP or Domain
-n
:使用 IP,不使用域名,访问更快
* * *
表示禁 ping.
2.4 wget
2.5 tcpdump
抓包命令
tcpdump [options] port
-i
:指定网卡接口-nn
:将数据包中的域名与服务器转为IP和端口-X
:以十六进制和ASCII码显示数据包内容port
指定监听的端口