linux-netstat命令

最近经常用到netstat来查看端口被谁监听,为了方便以后查阅,整理一下用法。

直接执行netstat,输出结果有两部分:

第一部分是Active Internet connections (w/o servers),经查询是有源TCP连接,其中"Recv-Q"和"Send-Q"指%0A的是接收队列和发送队列。这些数字一般都应该是0。如果不是则表示软件包正在队列中堆积。这种情况只能在非常少的情况见到。

第二部分是Active UNIX domain sockets (w/o servers),称为有源Unix域套接口(和网络套接字一样,但是只能用于本机通信,性能可以提高一倍)。

常见参数:

-a (all)显示所有选项,默认不显示LISTEN相关
-t (tcp)仅显示tcp相关选项
-u (udp)仅显示udp相关选项
-n 拒绝显示别名,能显示数字的全部转化成数字。
-l 仅列出有在 Listen (监听) 的服務状态

-p 显示建立相关链接的程序名(进程名)
-r 显示路由信息,路由表
-e 显示扩展信息,例如uid等
-s 按各个协议进行统计
-c 每隔一个固定时间,执行该netstat命令。

LISTEN和LISTENING的状态只有用-a或者-l才能看到

使用示例:

列出所有端口并通过more翻页显示

netstat -a |more 

列出所有tcp端口:

netstat -at

列出所有udp端口:

列出出于监听状态的连接

netstat -l

列出处于监听状态的tcp连接:

netstat -lt

列出出于监听状态的udp连接;

netstat -lu

列出出于监听状态的unix端口

netstat -lx

在netstat输出中显示PID和进程名称用-p

在netstat输出中不显示别名,用数字代替,使用 netstat -n

 工作中比较常用的是netstat -nap | grep  端口号,例如:

得到了进程号如果还是不确定端口被哪个程序占用,可以用ll /proc/进程号找到执行文件所在目录:

或者:

/proc目录中包含许多以数字命名的子目录,这些数字表示系统当前正在运行进程的进程号,里面包含对应进程相关的多个信息文件

关于/proc更详细的信息参考http://blog.csdn.net/hiyun9/article/details/51967742

参考资料:https://www.cnblogs.com/huxinping8800/p/7084994.html

原文地址:https://www.cnblogs.com/xiaoyinyue/p/8572262.html