ubuntu 查看进程所使用的网络连接

ss 命令是一个用于检查 socket 统计信息的工具,它是 netstat 命令的现代替代品,提供更多的信息且更快。ss 命令来自于 iproute2 包,现在在大多数 Linux 发行版中可用。

下面是ss -tunap各个选项的解释:

  • -t (TCP): 显示 TCP sockets。
  • -u (UDP): 显示 UDP sockets。
  • -n :不解析服务名称(即不将端口号转换为服务名,如 80 端口转换为 http),直接显示端口号。
  • -a :显示所有 sockets(默认情况下,仅显示处于监听状态的 sockets)。
  • -p :显示 socket 对应的进程信息(需要 root 权限)。

组合这些选项,ss -tunap 命令会列出系统上所有 TCP 和 UDP sockets 的详细信息,包括它们的状态、端口号以及相关的进程ID和进程名称。这对于诊断网络问题或仅仅查看哪些服务在监听特定的端口非常有用。使用这个命令可能需要管理员权限(或 sudo),特别是为了能查看各个 socket 对应的进程信息。

举例:

查看所有python程序使用的网络信息:

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

分析:

获取所有python程序的pid:

bash 复制代码
ps -aux | grep python | grep -v 'grep' | awk '{print $2}'

paste -sd '|' -paste命令用于合并输入的行,-s选项使得所有行被合并为单一行,-d '|'指定分隔符为|-表示从标准输入读取。相比于tr '\n' '|',这不会在输出的最后添加额外的|

bash 复制代码
| paste -sd '|' -
相关推荐
wdfk_prog12 分钟前
lely-canopen-rtt:为什么推荐在 RT-Thread 上使用 Lely CANopen 构建主站
java·运维·缓存·docker·容器
元岳数字人小元18 分钟前
数字人交互的用户体验设计与场景交互感受
运维·人工智能·开源·人机交互·交互
一技安身20 分钟前
【信创】外网打包ragflow镜像并导入内网银河麒麟V10arm64服务器
运维·服务器
T011561825 分钟前
全栈项目实战手记|艺培场馆课时预约小程序全项目开发历程完整复盘总结
运维·服务器·小程序
linx29539 分钟前
单元五 · 对称认知·下:编译与链接
linux·c语言·开发语言·c++·嵌入式硬件
橘色的喵1 小时前
Claude Code 状态栏脚本:一行显示模型、上下文占用、git 分支和当前目录
linux·git·bash·claude
Jason_zhao_MR1 小时前
新国标下DTUFTU设计最优解——米尔基于全志T153核心板_排版优化
linux·单片机·架构·t113i·双处理器·mcu+linux·电力采集
程序员-Benothing1 小时前
Linux 用户与用户组管理:useradd usermod groupadd 实战
linux·运维·服务器
33三 三like1 小时前
安装并启动Docker
运维·docker·容器
滕州市燕猫虎计算机科技工作室个体工商户1 小时前
进入Docker容器内的命令行界面
运维·docker·容器