如果我的两台计算机共享公共/外部 IP,我该如何进行端口转发?

如果我的两台计算机共享公共/外部 IP,我该如何进行端口转发?

但是,我为笔记本电脑转发了端口 443。我的笔记本电脑和主计算机共享同一个公共/外部 IP 地址。

所以问题是:如果我为我的主计算机打开端口,它是可见的(根据 canyouseeme.org),但如果我为我的 Linux 笔记本电脑打开它,它就不可见。当然,我在 sysctl.conf 中以 root 身份启用了 IP 转发,但除非我使用“sudo nc -lvp 443”,否则它不知何故不起作用。

这是否意味着我只需打开主计算机的端口,它也可以适用于我的笔记本电脑,还是我忘记了什么?

答案1

一次只能将端口转发到一个 IP

您的笔记本电脑有一个内部 IP,您的主计算机有另一个内部 IP。路由器无法神奇地选择将端口 443 转发到其中哪一个。您必须指定一个或者另一个。

你可以做什么:

  1. 将端口 4431 转发到一台计算机,将 4432 转发到另一台计算机,然后让客户端通过指定来选择所需的端口,https://name.example.com:4331/例如

  2. 让你的笔记本电脑和主计算机具有相同的 IP,但是同一时间只能开启一个- 如果您想使用笔记本电脑,您必须先关闭台式机,反之亦然。但转发将始终转到已开机的电脑

  3. 浮动 IP。让您的笔记本电脑和主计算机具有不同的内部 IP,并使路由器转发到第三内部 IP - 您将将其设置为额外的笔记本电脑或台式机均可(但同样,一次只能使用其中之一)。与 (2) 相比,优点是您可以将两台计算机用于其他用途;缺点是工作量更大(除非您设法编写脚本)

更新如果您只希望转发到笔记本电脑,并且您已删除了转发到主计算机的功能(所有转发,而不仅仅是端口转发 - 例如,删除主计算机DMZ),那么它可能是本地 linux 防火墙。尝试(以 root 身份)

iptables -F INPUT; iptables -P INPUT ACCEPT

答案2

您需要将路由器上的端口转发到笔记本电脑。为此,请转到路由器的设置页面并查找端口转发(因路由器而异)。如果您使用的是调制解调器,则可能还需要在那里启用连接(但由于您提到它适用于台式机,所以这应该不是问题)

简而言之,找到您的笔记本电脑的本地 IP,然后从路由器将外部端口转发给它。

还要注意,您一次只能将一个端口转发到一个节点,并且必须在笔记本电脑上监听该端口。

相关内容