我刚刚从我的 ISP 那里为我正在处理的一个项目安装了一个新的安装程序,在该项目中我使用自己的路由器使用 PPPoE 连接到 ISP。我的路由器(Ubuntu 16.04)有两个以太网适配器——一个运行 PPPoE 以连接到 ISP,另一个以 192.168.0.0 为我的本地 LAN 供电。该 LAN 上的适配器是 192.168.0.1。
我设法让 PPPoE 启动并运行,并让 DHCP 和 DNS 正常工作。那时世界一切都很好。那时我可以使用 ISP 给我的静态 IP 远程 ssh 进入这个盒子。
最后一步是让 NAT 工作。一旦我启动并运行 NAT,我就无法再使用我的静态 IP 从 Internet SSH 进入。如果我刷新我的 iptables,那么一切都很好(但我当然失去了 NAT)。当我重新加载表时,我失去了 ssh。
运行 NAT 后,其他一切都很好 - 路由器后面的机器可以访问远程网站并可以 ssh 到远程站点。唯一中断的是我远程 ssh 进入我的路由器的能力。
现在,我意识到我可能不希望能够长期远程 ssh,但我的问题是如何解决这个问题,而不是如何“不这样做”。首先,我想了解正在发生的事情,其次,在我玩游戏和试验的短期内,我希望能够从互联网上 ssh 进入这个路由器。
我了解 NAT 背后的基本原理以及它的作用,但是作为 NAT 的新手,我并不真正了解这些表格如何使它完成需要完成的工作。所以我也希望有人能帮助我——那里只有几行需要解释。我希望有人至少可以看看我的 iptables 并找出我需要添加或删除什么来解决问题,如果他们能帮助我理解为什么会很好。
这是我从 iptables-save 得到的:
*filter
:INPUT ACCEPT [437:32936]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [1025:121653]
-A INPUT -i lo -j ACCEPT
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -i ppp0 -m state --state NEW -j REJECT --reject-with icmp-port-unreachable
-A FORWARD -i ppp0 -o enp1s0 -m state --state RELATED,ESTABLISHED -j ACCEPT
-A FORWARD -i enp1s0 -o ppp0 -j ACCEPT
-A FORWARD -i ppp0 -o enp1s0 -j REJECT --reject-with icmp-port-unreachable
COMMIT
*nat
:PREROUTING ACCEPT [664:132498]
:INPUT ACCEPT [227:18335]
:OUTPUT ACCEPT [410:31400]
:POSTROUTING ACCEPT [7:522]
-A POSTROUTING -o ppp0 -j MASQUERADE
COMMIT
*mangle
:PREROUTING ACCEPT [53197:28014137]
:INPUT ACCEPT [1215:191342]
:FORWARD ACCEPT [51916:27803280]
:OUTPUT ACCEPT [1027:122421]
:POSTROUTING ACCEPT [52950:27926212]
COMMIT
[123456:987654] 符号是什么?
这就是整个故事。提前致谢。
-gt-