Linux 查看打开的网络端口

本文介绍在嵌入式BusyBox环境下如何使用netstat命令及/proc文件系统查看已建立连接和监听状态的端口,包括重新编译BusyBox支持程序名显示的方法,以及通过/proc文件系统查找打开端口的进程号和名称的过程。同时,针对客户端场景提供了iptables和TCPdump工具的使用建议。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

使用netstat

netstat -nape 可以列出所有已经建立连接和listening状态的端口

​对于嵌入式busybox,netstat命令可能不支持列出打开端口的程序名,方法有两个:

  1. 配置busybox

​​重新编译busybox,支持-p选项列出程序名

    2.通过/proc文件系统查找

查看系统打开的所有tcp端口

a)cat /proc/net/tcp

local_address 列就是ip:port ,这里都是16进制的

inode: 打开的socket对应的inode

 

b)查找inodeno对应的进程号

for dir in `find /proc/ -name "fd"`; do ls -l $dir | grep 'socket\:\[13849\]' && echo $dir;done

 

c)根据进程号得到进程的名字

head -n 1 /proc/2135/status

可以看出3841,对于的10进制为14401,打开该端口的程序名为sshd

通过该方法同样可以查看udp打开的端口,netstat程序实际上就是通过上述过程显示的打开端口信息

 

 

对于client端,该方法并不适用,这时就要用到iptables的log功能或者TCPdump工具,iptables invalid output会打印出所有被丢弃的数据包,其中会看到对于的端口号

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值