Skip to content

netstat 命令 #22

Description

@mirages

netstat 命令

查看系统中网络连接状态信息

  • -a, --all: 显示本机所有连接和监听的端口
  • -n, --numeric: 不解析域名
  • -u: 显示 udp 连接
  • -t: 显示 tcp 连接
  • -p: 显示连接对应的 PID 和 程序名
netstat -antup
Proto Recv-Q Send-Q Local Address Foreign Address State tcp 0 0 0.0.0.0:vcom-tunnel 0.0.0.0:* LISTEN

参数说明:

  • Proto: 连接的协议种类
  • Recv-Q: 接收到的字节数
  • Send-Q: 从本服务器发出去的字节数
  • Local Address: 本机的 ip 地址,可以是 ip 也可以是主机名
  • Foreign Address: 远程主机的 ip 地址
  • State: 网络连接状态,
    • CLOSED : 初始(无连接)状态。
    • CLOSING :等待远程TCP对连接中断的确认
    • LISTEN : 侦听状态,等待远程机器的连接请求。
    • ESTABLISHED : 完成TCP三次握手后,主动连接端进入ESTABLISHED状态。此时,TCP连接已经建立,可以进行通信。
    • TIME_WAIT : 在TCP四次挥手时,主动关闭端发送了ACK包之后,进入TIME_WAIT状态,等待最多MSL时间,让被动关闭端收到ACK包。
    • SYN-RECEIVED :再收到和发送一个连接请求后等待对方对连接请求的确认(如有大量此状态,估计被flood攻击了)
    • CLOSE-WAIT :链接异常终端,等待对方发来的连接中断请求,然后调用 close() 关闭连接
    • FIN-WAIT-1 :等待远程TCP连接中断请求,或先前的连接中断请求的确认
    • FIN-WAIT-2 :从远程TCP等待连接中断请求

TIME_WAIT 状态的 tcp 链接可以通过缩短等待时间来快速释放 tcp 链接。

# 查看 tcp TIME_WAIT 默认等待时间
cat /proc/sys/net/ipv4/tcp_fin_timeout
# 修改默认等待时间echo 30 > /proc/sys/net/ipv4/tcp_fin_timeout

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    linuxlinux commad

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions