0%

看看谁在连网 - netstat

看看谁在连网 - netstat

.. _linux_netstat_beginner:

.. note::
不识庐山真面目,只缘身在此山中。
宋 苏轼《题西林壁》

排查“端口占着谁”“机器对外连了哪”时,老一辈工具箱里常翻出 netstat。新系统更推 ss,但文档、考试和旧机子上,netstat 仍随处可见,值得会读。

netstat 的官方定义为:

netstat - Print network connections, routing tables, interface statistics, masquerade connections, and multicast memberships

命令格式

1
$ netstat [选项]

常用组合:

  • -a:含监听与已建立的连接
  • -t / -u:只看 TCP / UDP
  • -n:地址端口用数字,不做反查(更快)
  • -p:带上进程(常需权限)
  • -l:只看监听
  • -r:路由表
  • -s:协议统计

看监听端口

1
$ netstat -tuln

-tuln 是高频口头禅:TCP+UDP、监听、数字显示。输出里 Local Address 的端口就是服务挂着的地方。

看连接并带上进程

1
$ sudo netstat -tnp

-p 能帮你对上“这个 ESTABLISHED 到底是哪个程序”。没有权限时进程列可能是空的。

瞄一眼路由

1
$ netstat -rn

默认网关、网段怎么走,旧习惯会来这里看一眼;现在也可以用 ip route

netstat 在部分发行版已标为过时,新环境优先学 ss -tuln;但看见同事敲 netstat -anp,你至少知道他在干嘛。

处无为之事,行不言之教;作而弗始,生而弗有,为而弗恃,功成不居!