Linux 查看打开的网络端口

使用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会打印出所有被丢弃的数据包,其中会看到对于的端口号

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值