netstat命令用于查看系统所有网络套接字的连接情况。
netstat [-acCeFghilMnNoprstuvVwx][-A][–ip]
参数:
- -a–all:显示所有连线中的Socket。
- -A:列出该网络类型连线中的IP相关地址和网络类型。
- -c–continuous:持续列出网络状态。
- -C–cache:显示路由器配置的快取信息。
- -e–extend:显示网络其它相关信息。
- -F–fib:显示FIB。
- -g–groups:显示多重广播功能群组组员名单。
- -h–help:在线帮助。
- -i–interfaces:显示网络界面信息表单。
- -l–listening:显示监控中的服务器的Socket。
- -M–masquerade:显示伪装的网络连线。
- -n–numeric:直接使用IP地址,而不通过域名服务器。
- -N–netlink–symbolic:显示网络硬件外围设备的符号连接名称。
- -o–timers:显示进程号。
- -p–programs:显示正在使用Socket的程序识别码和程序名称。
- -r–route:显示Routing Table。
- -s–statistice:显示网络工作信息统计表。
- -t–tcp:显示TCP传输协议的连线状况。
- -u–udp:显示UDP传输协议的连线状况。
- -v–verbose:显示指令执行过程。
- -V–version:显示版本信息。
- -w–raw:显示RAW传输协议的连线状况。
- -x–unix:和指定“-A unix”参数相同。
- –ip–inet:和指定“-A inet”参数相同。
命令实例:
1、列出所有连接
netstat -a
2、只列出TCP协议的连接
netstat -at
注:netstat -t不会列出监听的TCP连接
3、只列出UDP协议的连接
netstat -au
注:netstat -u不会列出监听的UDP连接
4、只列出TCP、UDP协议的连接
netstat -atu
5、禁用反向域名解析,加快查询速度
默认情况下 netstat 会通过反向域名解析技术查找每个 IP 地址对应的主机名。这会降低查找速度。如果你觉得 IP 地址已经足够,而没有必要知道主机名,就使用 -n 选项禁用域名解析功能。
netstat -atn
6、只列出监听中的连接
任何网络服务的后台进程都会打开一个端口,用于监听接入的请求。这些正在监听的套接字也和连接的套接字一样,也能被 netstat 列出来。使用 -l 选项列出正在监听的套接字。
禁用反域名解析,仅列出监听的TCP连接:netstat -tnl
7、获取进程名、进程号以及用户 ID
查看端口和连接的信息时,能查看到它们对应的进程名和进程号对系统管理员来说是非常有帮助的。举个栗子,Apache 的 httpd 服务开启80端口,如果你要查看 http 服务是否已经启动,或者 http 服务是由 apache 还是 nginx 启动的,这时候你可以看看进程名。
使用 -p 选项查看进程信息。
查看TCP监听的进程名和进程号:netstat -tnlp
范例一:查看端口的连接状态
netstat -an
注意:这是在windows下做的测试范例二:检查端口是否被占用
netstat -an | grep 8080