简单的端口转发

unc*_*all 25 port-forwarding

我在尝试使用第二台服务器设置反向代理时遇到了一些麻烦。我的想法是让防火墙将 https 转发到反向代理,并将端口 29418 (gerrit ssh) 转发到第二台服务器。现在我的合作 IT 人员说:不能!要么两个端口都去服务器 1,要么两个端口都去服务器 2。

好的,作为解决方法,我尝试在端口 29418 -> server2:29418 的反向代理上设置端口转发

细节:

  • Server1 IP:Ubuntu 12.04.2 LTS 上的 10.0.0.132 和 192.168.10.2
  • Server2 IP:Ubuntu 12.04.2 LTS 上的 10.0.0.133 和 192.168.10.3

现在 https 和端口 29418 从防火墙转到 10.0.0.132,IT 表示这是唯一的方法。:(

所以请告诉我如何从 10.0.0.132:29418 -> 192.168.10.3:29418 或 10.0.0.133:29418 转发

当我在 10.0.0.132 上工作时,我可以连接到 10.0.0.133:29418 和 192.168.10.3:29418,因此端口是打开的。

- 更新 -

我的 iptables -t nat -L 看起来像这样:

root@dev:/root# iptables -t nat -L
Chain PREROUTING(策略接受)
目标 prot opt 源目标
DNAT tcp -- 任何地方 dev.example.com tcp dpt:29418 to:10.0.0.133

链输入(政策接受)
目标 prot opt 源目标

链输出(政策接受)
目标 prot opt 源目标

链POSTROUTING(策略接受)
目标 prot opt 源目标
root@dev:/root# cat /proc/sys/net/ipv4/ip_forward
1

小智 39

以防其他人正在寻找一种实际有效的方法。尽管@HorsePunchKid 在他的建议中是正确的,但我发现这个演练填补了缺失的步骤:

http://www.debuntu.org/how-to-redirecting-network-traffic-to-a-new-ip-using-iptables/

在本质上:

启用 IP 转发:

sysctl net.ipv4.ip_forward=1
Run Code Online (Sandbox Code Playgroud)

添加您的转发规则(使用 nnnn:port):

iptables -t nat -A PREROUTING -p tcp -d 10.0.0.132 --dport 29418 -j DNAT --to-destination 10.0.0.133:29418
Run Code Online (Sandbox Code Playgroud)

要求 IPtables 伪装:

iptables -t nat -A POSTROUTING -j MASQUERADE
Run Code Online (Sandbox Code Playgroud)

就是这样!无论如何它对我有用:)

  • 这是我在这个主题上找到的最好的答案。 (2认同)

小智 12

如果有人在寻找临时方法,请尝试以下解决方案。

    ssh -L 192.168.0.10:8080:10.0.0.10:80 root@10.0.0.10
Run Code Online (Sandbox Code Playgroud)

上面的命令将所有连接到主机上的端口 8080 重定向到虚拟机的 80 端口。您可以通过访问网页http://192.168.0.10:8080来测试工作,它会在来宾机器上显示网页。

这适用于所有端口:)


小智 7

如果您在 10.0.0.132 上安装了 iptables,我认为这将非常简单:

iptables -t nat -A PREROUTING -j DNAT -d 10.0.0.132 -p tcp --dport 29418 --to 10.0.0.133
Run Code Online (Sandbox Code Playgroud)

这表示在 10.0.0.132 可能尝试执行的任何其他路由之前,将在端口 29418 上进入 10.0.0.132 的流量发送到 10.0.0.133,而不是在同一端口上。如果您运行此命令并遇到问题,请将 -A 标志替换为 -D 以将其删除。

如果您希望在 10.0.0.132 启动时自动运行此规则,请考虑将上述命令添加为 /etc/network/interfaces 中的“post-up”规则。