April 14, 2014

unix/linux 查看系统/网络连接信息

无论是为了排错还是监测或者检查电脑是否与外界未知连接的情况,都需要对当前电脑的实时网络连接情况进行了解,比如每打开一个网页,每个云服务,App Store等,如果有可疑的目标,就要检查一下是哪个程序引起的,下面只是列出一些常用命令和初步的解释,提供一个简单的思路:

查找当前系统中打开并建立连接的网络信息

netstat -aW | grep -i -e "ESTABLISHED" 如果只想看没有被转换语意的数字信息,加上-n这个参数, 如netstat -anW | grep -i -e "ESTABLISHED"

要想查找某个端口名称对应的端口号

grep https /etc/services  或者到IANA的官方网站去查找,里面有详细解释和最新更新:Service Name and Transport Protocol Port Number Registry

查看了每个连接后,可以用下面命令来查看哪个程序占用了某个端口。比如要查找端口4001

lsof -i:4001

为了找到某个程序所有的情况,上面的命令中显示了该程序进程的pid,使用命令:

lsof -p <pid>  这个命令相当于Activity Monitor中的Inspect功能。


lsof -nP -i4TCP -sTCP:LISTEN

#查看ipv4的所有监听占用端口#


uptime来查看当前系统运行的时长,我的系统显示,4天没有关机,同时有5个用户连接,在过去的1/5/15分钟里系统资源的使用情况。15:20  up 4 days,  6:47, 5 users, load averages: 0.70 0.52 0.45