我有两个由 Linux 节点组成的网络 A 和 B,我想通过 SSH 在两者之间进行通信:
- 两个网络被互联网隔开。
- 网络 A 位于防火墙后面,只允许与其中的节点建立 SSH 连接。
- 网络B由两个节点组成。
- 我希望能够向网络 A 中的任何节点发送数据包。
- 但请注意,由于只允许使用 SSH,因此无法使用特定 IP 通过互联网直接访问网络 A 中的节点。
- 我无法访问任何用于 NAT 的防火墙。
我怎样才能实现这种沟通?
有没有办法通过 SSH 将我的 IP 数据包从网络 B 中的节点“y”发送到网络 A 内的节点“r”?
答案1
您需要 NAT 来实现这一点。您必须在防火墙中配置 NAT。这可能看起来像这样:
- 来源:A 的 WAN IP
- 源端口:任意
- 目的地:B 的 WAN IP
- 目的端口:22
- 重定向至:B 的 LAN IP
你需要在两侧都进行此操作。
我希望这就是你的意思。
答案2
正确的做法是让防火墙执行 NAT(网络地址转换),将其后面的节点映射到不同的 IP 地址。但是,如果您在 Internet 端只有一个 IP 地址,但防火墙后面有多个节点,那么这可能行不通。在这种情况下,防火墙可以提供端口地址转换。这意味着发送到防火墙端口 22 的数据包将转发到节点“r”上的端口 22,发送到端口 23 的数据包将转发到节点“s”上的端口 22,依此类推。
答案3
您可以在两个防火墙上设置 IPSec 或 OpenVPN 隧道。这样,您就可以忽略互联网,将两个网络视为位于同一 LAN 上。关于这两种技术的设置方法,有很多教程。Google 是您的好朋友,或者在此论坛中打开新帖子。
一旦设置了 VPN 隧道,您仍然可以使用防火墙来保护链接。