是的,Linux 的 netstat 命令可以通过管道结合其他工具(如 grep)来按 IP 地址筛选输出。以下是几种常见的用法:
netstat -tuln | grep '192.168.1.100'
-t:显示 TCP 连接-u:显示 UDP 连接-l:仅显示监听状态的端口-n:禁用主机名解析(直接显示 IP)grep:筛选包含 192.168.1.100 的行(本地或远程 IP)。netstat -antp | grep '192.168.1.200'
-a:显示所有连接(包括已建立和非监听状态)-p:显示进程信息(需 root 权限)192.168.1.200 通信的所有连接。netstat -atn | grep '10.0.0.5'
-a 和 -t 组合:仅显示 TCP 连接。awk 提取特定字段如果只想查看远程 IP(第 5 列)或本地 IP(第 4 列):
netstat -ant | awk '$5 ~ /203.0.113.42/'
$5 ~ /IP/:匹配第 5 列(远程 IP:Port)中的 IP。ss(推荐)现代 Linux 系统推荐使用 ss(更快速,功能类似):
ss -tunp dst 192.168.1.100
dst:指定目标 IP,也可用 src 匹配源 IP。-p)需 root 权限。grep 模式(如 grep '::1')。grep 可筛选状态(如 grep 'ESTABLISHED')。$ netstat -antp | grep '192.168.1.1'
tcp 0 0 192.168.1.100:22 192.168.1.1:65432 ESTABLISHED 1234/sshd: user
192.168.1.1 的所有 TCP 连接及进程信息。如果需要更复杂的筛选,可以结合 awk 或 ss 的过滤语法进一步处理。