Netstat 和类似的一些网络监测工具被归入 net-tools 软件包 里,用来显示关于活动连接的信息。因为运行在开放的端口的服务往往容易被利用,定期进行网络监测能够帮助你及早探测到可疑的活动。
netstat 经常预装在 Linux 发行版上。如果 netstat 没有在你的服务器上安装,用你的包管理器安装它。下面是在基于 Debian 的系统上:
$ sudo apt-get install net-tools
就其本身而言,netstat 命令显示了全部建立成功的连接。你可以使用 netstat 的参数指定进一步预期的输出。举个例子,要显示所有监听和非监听的连接,使用 --all(-a 为简写)的参数。这将返回许多结果,所以在例子中我用管道符输出给 head 命令来显示输出的前 15 行:
$ netstat --all | head -n 15Active Internet connections (servers and established)Proto Recv-Q Send-Q Local Address Foreign Address State tcp 0 0 *:27036 *:* LISTEN tcp 0 0 localhost:27060 *:* LISTEN tcp 0 0 *:16001 *:* LISTEN tcp 0 0 localhost:6463 *:* LISTEN tcp 0 0 *:ssh *:* LISTEN tcp 0 0 localhost:57343 *:* LISTEN tcp 0 0 *:ipp *:* LISTEN tcp 0 0 *:4713 *:* LISTEN tcp 0 0 10.0.1.222:48388 syd15s17-in-f5.1e:https ESTABLISHEDtcp 0 0 10.0.1.222:48194 ec2-35-86-38-2.us:https ESTABLISHEDtcp 0 0 10.0.1.222:56075 103-10-125-164.va:27024 ESTABLISHEDtcp 0 0 10.0.1.222:46680 syd15s20-in-f10.1:https ESTABLISHEDtcp 0 0 10.0.1.222:52730 syd09s23-in-f3.1e:https ESTABLISHED
要只显示 TCP 端口,使用 --all 和 --tcp 参数,或者简写成 -at :
$ netstat -at | head -n 5Active Internet connections (servers and established)Proto Recv-Q Send-Q Local Address Foreign Address State tcp 0 0 *:27036 *:* LISTEN tcp 0 0 localhost:27060 *:* LISTEN tcp 0 0 *:16001 *:* LISTEN
要只显示 UDP 端口,使用 --all 和 --udp 参数,或者简写成 -au :
$ netstat -au | head -n 5Active Internet connections (servers and established)Proto Recv-Q Send-Q Local Address Foreign Address State udp 0 0 *:27036 *:* udp 0 0 10.0.1.222:44741 224.0.0.56:46164 ESTABLISHEDudp 0 0 *:bootpc
netstat 命令参数常常是简单易懂的。举个例子,要显示带有全部进程 ID(PID)和数字地址的监听 TCP 和 UDP 的端口:
$ sudo netstat --tcp --udp --listening --programs --numericActive Internet connections (only servers)Proto Recv-Q Send-Q Local Address Foreign Addr State PID/Program name tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN 1/systemd tcp 0 0 192.168.122.1:53 0.0.0.0:* LISTEN 2500/dnsmasq tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1726/sshd tcp 0 0 127.0.0.1:631 0.0.0.0:* LISTEN 1721/cupsd tcp 0 0 127.0.0.1:6010 0.0.0.0:* LISTEN 4023/sshd: tux@ tcp6 0 0 :::111 :::* LISTEN 1/systemd tcp6 0 0 :::22 :::* LISTEN 1726/sshd tcp6 0 0 ::1:631 :::* LISTEN 1721/cupsd tcp6 0 0 ::1:6010 :::* LISTEN 4023/sshd: tux@ udp 0 0 0.0.0.0:40514 0.0.0.0:* 1499/avahi-daemon: udp 0 0 192.168.122.1:53 0.0.0.0:* 2500/dnsmasq udp 0 0 0.0.0.0:67 0.0.0.0:* 2500/dnsmasq udp 0 0 0.0.0.0:111 0.0.0.0:* 1/systemd udp 0 0 0.0.0.0:5353 0.0.0.0:* 1499/avahi-daemon: udp6 0 0 :::111 :::* 1/systemd udp6 0 0 :::44235 :::* 1499/avahi-daemon: udp6 0 0 :::5353 :::* 1499/avahi-daemon:
这个常用组合简写版本是 -tulpn 。
要在 Linux 系统中使用 netstat 命令查看网络连接,你可以执行以下命令:
netstat -tuln
这个命令的参数解释如下:
-t (TCP):显示 TCP 连接。
-u (UDP):显示 UDP 连接。
-l (listening):仅显示监听套接字。
-n (numeric):以数字形式显示地址和端口号,而不是尝试解析域名、用户或端口名称。
本文出处:老蒋部落 » 记录利用netstat命令来查看Linux服务器的网络连接 | 欢迎分享( 公众号:老蒋朋友圈 )