如何判断一个端口是否可以在Ubuntu机器上访问?

我有一台Ubuntu机器,我一直试图在端口4949上设置Munin。我已经运行了,我可以从本地机器连接到端口4949,但外部机器的连接保持超时。 我已经在configuration中设置了allow ^.*$ ,所以它不应该拒绝任何连接。

如果我运行lsof我会得到:

 deployer@rc:~$ sudo lsof | grep munin /usr/sbin 31863 root 2w REG 202,1 78531 189176 /var/log/munin/munin-node.log /usr/sbin 31863 root 3r REG 202,1 6778 591661 /usr/sbin/munin-node /usr/sbin 31863 root 4w REG 202,1 78531 189176 /var/log/munin/munin-node.log /usr/sbin 31863 root 5u IPv6 42450001 0t0 TCP *:munin (LISTEN) 

我不知道这是否是防火墙问题。 如何判断入站连接是否成功到达4949端口?

由于你在Ubuntu上,你可能已经安装了防火墙来pipe理你的防火墙。 什么是输出

 sudo ufw status 

如果你需要添加一个规则来允许入站到TCP端口4949,你可以这样做:

 sudo ufw allow proto tcp from 192.168.0.0/24 to 192.168.0.1 port 4949 

您还可以查看您正在监听的接口

 sudo netstat -tanp 

此外,nmap是一个很好的工具来检查另一台机器什么端口打开,但如果它不是一个局域网设置,你需要小心扫描公共IP。

这将显示守护进程正在监听什么端口。

 # lsof | grep TCP | grep LISTEN 

你会想看到*:4949来确认Munin被绑定在所有接口上。