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

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

我有一台 Ubuntu 机器,我一直在尝试在端口 4949 上设置 Munin。我已将其运行,并且我可以从本地机器连接到端口 4949,但来自外部机器的连接一直超时。我已经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?

答案1

由于您使用的是 Ubuntu,因此您可能安装了 ufw 来管理防火墙。

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 是一个很好的工具,可以从另一台机器检查哪些端口是开放的,但是如果它不是 LAN 设置,则需要小心扫描公共 IP。

答案2

这将显示哪些守护进程正在监听哪些端口。

# lsof | grep TCP | grep LISTEN

您将需要查看 *:4949 来确认 Munin 已绑定到所有接口。

相关内容