如果你需要获取一些网络信息,如路由表、端口、连接数,一个netstat足以;以前我经常使用专门的工具来做这些,比如route、lsof等.后面对netstat进行学习,发现非常好用.

入门

netstat [options]
  • options(常用)
    • -a 显示所有链接的socket
    • -n 直接显示IP
    • -l 只显示监听的socket
    • -t 只显示tcp
    • -r 查看路由表
    • -u 只显示udp
    • -p 显示哪个进程
    • -s 统计

输出

Active Internet connections (w/o servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State      
tcp        0      0 45.76.196.191.vul:41630 nrt12s13-in-f206.:https ESTABLISHED
...
Active UNIX domain sockets (w/o servers)
Proto RefCnt Flags       Type       State         I-Node   Path
unix  2      [ ]         DGRAM                    9552     /run/systemd/shutdownd
...

显示包含2部分,一个是网络socket,一个是本地socket(程序内部通信)

常用组合

  • 查看路由表netstat -r
  • 查看监听端口netstat -ltp
  • 查看对外连接netstat -ntp