大佬教程收集整理的这篇文章主要介绍了如何调试linux网络:地址已在使用中,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
bind(3,{sa_family = AF_INET,sin_port = htons(874),sin_addr = inet_addr(“127.0.0.1”)},16)= -1 EADDRINUSE(地址已在使用中)
这种情况发生在我尝试开始侦听该端口的任何进程中,因此它与进程本身无关.上面的strace输出来自命令strace -ff nc -l -p 874 -s 127.0.0.1.
所以,这表明有一个进程已经在localhost端口874上进行监听.但是,我似乎无法找到它.以下命令都不返回任何内容:
netstat -aplunt | grep :874 netstat -na | grep :874 lsof -i :874 lsof -i tcp | grep 874 fuser 874/tcp socklist | grep 874 iptables -t filter -S | grep 874 iptables -t nat -S | grep 874 iptables -t mangle -S | grep 874 conntrack -L | grep 874
如果我试着听0.0.0.0:874它失败并出现相同的错误.监听在Nic上配置的其中一个IP地址工作正常,并且收听127.0.0.2:874也可以正常工作.在另一个端口上侦听也可以正常工作,也可以在127.0.0.1或0.0.0.0上进行.
所以,现在我很好奇.如何找出网络堆栈返回EADDRINUSE的原因?我还可以查看其他什么,或者我可以运行哪些其他命令来获取更多信息?
附加信息:
>内核4.1.31.
>这里不使用Selinux.
>尝试使用telnet连接到127.0.0.1返回“连接被拒绝”
>我以root身份运行命令
以上是大佬教程为你收集整理的如何调试linux网络:地址已在使用中全部内容,希望文章能够帮你解决如何调试linux网络:地址已在使用中所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。