我正在尝试在我的 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)来执行此操作。