跨主机通信-其中一个位于防火墙后面

跨主机通信-其中一个位于防火墙后面

情况就是这样。

我的机器 主机 1 主机 2

这三台机器都是 Ubuntu 机器。我的机器和主机 1 都有面向公众的 IP。

主机 2 具有 NAT IP,并且只能从主机 1 通过 NAT IP 访问。

我在主机 1、主机 2 和我的机器上具有具有 sudo 权限的 SSH 访问权限。

我在主机 2 上的端口 6550 上运行了一个服务,我想从我的机器访问该服务。

需要做什么?

另外,我确实知道在主机 2 的 8080 端口上有另一个服务正在运行,该服务通过主机 1 的 IP 向公众公开。即 host2-nat-i​​p:8080 映射到 -> host1-public-ip:4567

答案1

我在主机 1、主机 2 和我的机器上具有具有 sudo 权限的 SSH 访问权限。

如果你可以通过 SSH 从你的机器连接到主机 2,那么你可以使用SSH 端口转发

SSH 的端口转发功能可以将各种类型的互联网流量偷运进或出网络。这可用于避免网络监控或嗅探器,或绕过互联网上配置不当的路由器。

在此处输入图片描述

可以实现更复杂的应用

在此处输入图片描述


另一种方法是使用类似socat在 host1 上设置 TCP 中继

socat TCP4-LISTEN:www TCP4:www.domain.org:www

安装一个简单的 TCP 端口转发器。使用 TCP4-LISTEN,它会监听本地端口“www”,直到有连接进入,接受该连接,然后连接到远程主机 (TCP4) 并开始数据传输。

您可以用任意数字端口号代替 www (80)。有选项可使其成为处理多个并发和连续连接的持久中继。

相关内容