如何不仅在本地开放端口?

如何不仅在本地开放端口?

我正在尝试在我的 VPS(Ubuntu)上打开一个端口,以便尝试一些与网络相关的编程。我正在使用 UFW,但似乎无法为非本地连接打开端口 2794。我添加了规则“ufw 允许从任何到任何端口 2794 proto tcp”,但由于某种原因,它无法工作。

当我启动我的简单服务器来监听端口 2794 的连接并运行 nmap(nmap -p 2794 127.0.0.1)时,从 VPS 运行时我得到以下输出:

PORT     STATE SERVICE
2794/tcp open  unknown

这表明端口至少对本地连接是开放的。但是当我从我的桌面主页运行 nmap (nmap -p 2794 <IP>) 时,我得到:

PORT     STATE  SERVICE
2794/tcp closed unknown

此外,我成功地从中运行了一个 Nginx 服务器,当我在 Firefox 中查看 IP/站点时,我可以看到内容,这意味着端口 80 和 22 已开放供外部连接。任何帮助都非常感谢。

答案1

你确定防火墙是问题所在吗? 也可能是其他问题。

也许您的简单服务器只监听本地主机(127.0.0.1在 IPv4 中,或::1在 IPv6 中)。这可以解释您的 nmap 结果。您可以使用 检查这一点ss。打开一个终端并执行ss -ltn | grep 2794。如果第四列(即“本地地址:端口”列)显示类似127.0.0.1:2794或 的内容[::1]:2794,则您的简单服务器只监听本地主机。

如果是这种情况,您有几种选择。您可以使用代理服务器将流量从 Internet 转发到您的简单服务器。您可以使用规则iptables转发 TCP 连接。或者(这可能是最简单的选择)您可以更改您的简单服务器,使其侦听所有接口。通过指定它应该侦听0.0.0.0(IPv4)或::(IPv6)来执行此操作。

相关内容