我在 Ubuntu 12.04 LTS 上出现这个错误:
ChannelException: Failed to bind to: 0.0.0.0/0.0.0.0:6702
我需要帮助来检查问题出在哪里。
我可以检查端口是否繁忙或关闭吗?如果是,该怎么做?
这是我的/etc/hosts
:
127.0.0.1 localhost
127.0.1.1 ubuntu
# The following lines are desirable for IPv6 capable hosts
::1 ip6-localhost ip6-loopback
fe00::0 ip6-localnff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
答案1
问lsof
(man lsof
)。
sudo lsof -i :6700
注意:真的读man lsof
!我现在没有坐在 Linux 机器前。
答案2
您可以通过运行此命令来检查该端口是否正在使用。
sudo lsof -i :<Port Number>
我使用 8080 作为示例,因为我在端口 6700 上没有运行任何程序,请将 8080 更改为您的端口号
sudo lsof -i :8080
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
havp 1331 havp 3u IPv4 3434363 0t0 TCP 192.168.1.127:http-alt (LISTEN)
havp 25061 havp 3u IPv4 3434363 0t0 TCP 192.168.1.127:http-alt (LISTEN)
havp 25062 havp 3u IPv4 3434363 0t0 TCP 192.168.1.127:http-alt (LISTEN)
havp 25067 havp 3u IPv4 3434363 0t0 TCP 192.168.1.127:http-alt (LISTEN)
havp 25068 havp 3u IPv4 3434363 0t0 TCP 192.168.1.127:http-alt (LISTEN)
havp 25086 havp 3u IPv4 3434363 0t0 TCP 192.168.1.127:http-alt (LISTEN)
或使用此命令sudo netstat -tulnp | grep <port number>
neil@AVP:~$ netstat -tulnp | grep 8080
(Not all processes could be identified, non-owned process info
will not be shown, you would have to be root to see it all.)
tcp 0 0 192.168.1.127:8080 0.0.0.0:* LISTEN -
如果端口有 ,(LISTEN)
则表示端口已打开。输出中未显示的任何端口均表示端口已关闭
移自@waltinator 的(未格式化的)评论:
我在使用它之前尝试使用 sudo lsof -i :6702,它是空的,然后当我使用它时,我得到了这个
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
java 3143 st 71u IPv6 12097 0t0 TCP *:6702 (LISTEN)