为什么 Debian 关闭了互联网端口,但不关闭本地网络端口

为什么 Debian 关闭了互联网端口,但不关闭本地网络端口

我有一个家庭路由器,它对家庭网络使用 NAT。我的 IP 上有一台 debian 10 机器,192.168.0.60它通过一个小型 Web 应用程序侦听端口 5000。我希望能够从公共互联网访问此端口。

从 debian 中,curl localhost:5000产生正确的响应。

在我的 mac 上192.168.0.55curl 192.168.0.60:5000产生了正确的响应。

为了将其打开到互联网,我将路由器配置为端口转发5000 -> 192.168.0.60:5000

但是,当我curl $PUBLIC_IP:5000从外部设备(即不在网络中)使用时,我什么也得不到。https://www.yougetsignal.com/tools/open-ports/也会导致端口关闭。

我的第一个猜测是,这将是路由器上的一个微不足道的端口转发问题。为了排除这种情况,我做了以下操作:

  1. 在我的 Mac 上运行相同的应用程序,听 5000
  2. 将路由器上的端口转发规则更改为5000 -> 192.168.0.55:5000(我的 Mac)
  3. 用过的https://www.yougetsignal.com/tools/open-ports/验证端口是否已打开

也就是说,这排除了路由器,并将罪魁祸首放在 debian 机器上。此时我迷失了:为什么我可以从本地网络而不是互联网上卷曲它?

iptables 的内容如下:

root@debian# iptables -L
Chain INPUT (policy ACCEPT)
target     prot opt source               destination

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination

答案1

问题是iptables-legacy和之间存在着不平凡的相互作用iptables。清除后iptables-legacy,就开始工作了。

相关内容