如何使用ss查看Linux中的网络连接
现在在最新版本的Linux中,“ss”命令被用来取代“netstat”命令。
“ss”命令比“netstat”命令更快、更简单、更易于阅读。
“ss”命令可以使用和“netstat”命令一样的参数。
另外还可以使用-e
选项来查看扩展信息。
查看所有的监听进程:
$sudo ss -tlunp
“T”显示“TCP”连接,“L”仅显示收听套接字,“U”显示UDP连接,“N”以数字表示地址、用户和端口,“P”显示连接所属的程序。
查看所有网络连接
使用a显示所有网络套接字
$sudo ss -taunp
查看已建立的连接
如果不包含-a
或者-l
选项,则“SS”将只显示已建立的连接。
$sudo ss -tunp
如何使用LSOF监控网络连接和侦听服务
lsof
用于列出打开的文件。
GNU/Linux继承了Unix设计原则,即一切都是文件,包括网络连接。
所以“LSOF”也可用于查看网络活动。
查看所有网络连接
$sudo lsof -nP -i
n
以数字表示地址,P
以数字表示端口,i
禁止列出任何未被视为网络文件的被打开的文件。
查看已建立的连接
$sudo lsof -nP -iTCP -sTCP:ESTABLISHED
查看监听的进程
使用“LSOF”查看监听进程:
$sudo lsof -nP -iTCP -sTCP:LISTEN
上面的命令会漏掉UDP的进程,所以可以换成下面的命令:
$sudo lsof -nP -i | grep 'LISTEN\|UDP'
如何使用netstat监控网络连接和侦听服务
Netstat
是一个功能强大的实用程序,可以打印网络连接、路由表、接口统计信息、伪装连接和多播成员身份。
安装netstat
在Debian和基于Debian的系统(比如ubuntu)上,使用APT。
# apt install net-tools
在Red Hat Enterprise Linux和基于Red Hat的系统上,使用Yum,
# yum install net-tools
在基于Arch的系统上,使用Pacman。
# pacman -S net-tools
查看监听进程
查看正在收听连接的进程:
$sudo netstat -tulpen
T
显示“TCP”连接,“U”显示UDP连接,“L”仅显示收听套接字,“P”显示连接所属的程序,“E”显示扩展信息,以及“N”表示数字上的地址,用户和端口。
查看所有网络连接
使用-a
以查看所有套接字而不是-l
以查看收听套接字。
$sudo netstat -atupen
查看已建立的连接
使用grep过滤“已建立的”连接(ESTABLISHED)
$sudo netstat -atupen | grep ESTABLISHED
获取ip后,还可以使用WHOIS查询IP地址。
$whois 91.198.174.192| less
监控通过网络发送的数据
我们已经看到了Netstat
,SS
和ifconfig
可用于监视正在进行的网络连接以及谁,但通常希望究竟可以看到通过网络发送的数据。
要完成此目标,我们需要能够嗅探的应用程序。
有名的两个程序是“TCPDump”和“Wireshark”。可以查看我们的相关教程。