linux查看进程使用的端口号信息

润信云 技术支持

Linux系统中,可以使用多种命令来查看进程使用的服务器端口号。以下是一些常见的方法:

ss(Socket Statistics)命令

参数如下:

    • -h, --help:显示帮助信息。

    • -V, --version:输出版本信息。

    • -n, --numeric:不解析服务名称。

    • -r, --resolve:解析主机名。

    • -a, --all:显示所有套接字(sockets)。

    • -l, --listening:显示监听状态的套接字(sockets)。

    • -o, --options:显示计时器信息。

    • -e, --extended:显示详细的套接字(sockets)信息。

    • -m, --memory:显示套接字(socket)的内存使用情况。

    • -p, --processes:显示使用套接字(socket)的进程。

    • -i, --info:显示 TCP 内部信息。

    • -s, --summary:显示套接字(socket)使用概况。

    • -4, --ipv4:仅显示 IPv4 的套接字(sockets)。

    • -6, --ipv6:仅显示 IPv6 的套接字(sockets)。

    • -0, --packet:显示 PACKET 套接字(socket)。

    • -t, --tcp:仅显示 TCP 套接字(sockets)。

    • -u, --udp:仅显示 UDP 套接字(sockets)。

    • -d, --dccp:仅显示 DCCP 套接字(sockets)。

    • -w, --raw:仅显示 RAW 套接字(sockets)。

    • -x, --unix:仅显示 Unix 套接字(sockets)。

    • -f, --family=FAMILY:显示指定类型的套接字(sockets),FAMILY 可选类型包括 unix、inet、inet6、link、netlink 等。

    • -A, --query=QUERY, --socket=QUERY:查看某种类型的套接字,QUERY 可以是all、inet、tcp、udp、raw、unix、packet、netlink等,也可以是它们的组合,例如tcp,udp。

    • -D, --diag=FILE:将原始 TCP 套接字(sockets)信息转储到文件。

    • -F, --filter=FILE:从文件中读取过滤信息,用于过滤某种状态的连接,FILTER 的格式为(state TCP-STATE) (EXPRESSION)。

    netstat命令


    参数如下:

      • -a 或 --all:显示所有连线中的 Socket。

      • -A<网络类型> 或 --<网络类型>:列出该网络类型连线中的相关地址。

      • -c 或 --continuous:持续列出网络状态。

      • -C 或 --cache:显示路由器配置的快取信息。

      • -e 或 --extend:显示网络其他相关信息。

      • -F 或 --fib:显示 FIB。

      • -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 或 --statistics:按照每个协议来分类进行统计,默认显示 IP、IPv6、ICMP、ICMPv6、TCP、TCPv6、UDP 和 UDPv6 的统计信息。

      • -t 或 --tcp:显示 TCP 传输协议的连线状况。

      • -u 或 --udp:显示 UDP 传输协议的连线状况。

      • -v 或 --verbose:显示指令执行过程。

      • -V 或 --version:显示版本信息。

      • -w 或 --raw:显示 RAW 传输协议的连线状况。

      • -x 或 --unix:此参数的效果和指定-A unix参数相同。

      • --ip 或 --inet:此参数的效果和指定-A inet参数相同。

      lsof(list open files)命令

      用于查看系统中打开的文件和相关进程信息。以下是一些常见的参数:
      • -a:表示两个或多个条件都必须满足时才显示结果。例如,lsof -a -u root -i tcp 将列出属于 root 用户且使用 TCP 协议的进程所打开的文件。

      • -c <进程名>:列出指定进程所打开的文件。

      • -g <GID>:列出 GID 号进程的详情。

      • -d <文件描述符>:列出占用该文件描述符的进程。可以指定多个文件描述符,如 -d 1 -d 2。

      • -d <目录>:列出目录下被打开的文件。

      • +D <目录>:递归列出目录下被打开的文件,但搜索时间相对较长。

      • -n:不将 IP 转换为 hostname,默认情况下是转换的。

      • -i <条件>:列出符合条件的进程。条件的格式通常为 <协议>:<端口> 或 @<主机名|IP 地址>,例如 -i tcp:80 表示列出使用 TCP 协议且端口为 80 的进程,-i @127.0.0.1 表示列出与本地主机(127.0.0.1)相关的进程。

      • -p <进程号>:列出指定进程号所打开的文件。

      • -u <用户名>:列出该用户相关进程所打开的文件。

      • -U:仅列出系统 socket 文件类型。

      • -h:显示帮助信息。

      • -v:显示版本信息。


      案例

      netstat -tunlp
      ss -tunlp


      该命令会显示所有的 TCP 和 UDP 连接以及对应的进程信息,包括监听的端口和进程PID。
      lsof -i :<port_number>


      例如,lsof -i :80 会显示使用 80 端口的进程信息。

      查看当前所有python程序建立的连接信息

      ss -tunap | grep -E "$(ps -aux | grep python | grep -v 'grep' | awk '{print $2}' | paste -sd '|' -)"

      查看当前所有python程序建立服务器信息

      ss -tunlp | grep -E "$(ps -aux | grep python | grep -v 'grep' | awk '{print $2}' | paste -sd '|' -)"


      本文链接:https://blog.runxinyun.com/post/199.html 转载需授权!

      分享到:
      版权声明
      网站名称: 润信云资讯网
      本站提供的一切软件、教程和内容信息仅限用于学习和研究目的。
      不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。
      我们非常重视版权问题,如有侵权请邮件与我们联系处理。敬请谅解!邮件:7104314@qq.com
      网站部分内容来源于网络,版权争议与本站无关。请在下载后的24小时内从您的设备中彻底删除上述内容。
      如无特别声明本文即为原创文章仅代表个人观点,版权归《润信云资讯网》所有,欢迎转载,转载请保留原文链接。
      0 91

      留言0

      评论

      ◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。