将服务器 1 上的连接隧道/转发到服务器 2

将服务器 1 上的连接隧道/转发到服务器 2

我现在已经花了一些时间研究,但还没有找到以下问题的解决方案:

我想将服务器 1 端口 x 上的所有请求通过隧道传输到服务器 2 端口 x。端口保持不变,我只想将通过端口 x 发送到服务器 1 的所有数据通过隧道传输到服务器 2。

连接看起来如下:

客户端 > 服务器 1 > 隧道 > 服务器 2

并反转:

服务器 2 >隧道> 服务器 1 > 客户端

这可能吗?如果可以,怎么做?两台服务器都运行 Debian 8。

如果这是一个完全菜鸟的问题,请原谅我,但我才刚刚开始接触服务器和其他东西。

谢谢^^

答案1

这称为代理。是的,这可以通过在 server1 上启用转发模块然后在 iptables 上添加适当的转发规则来实现。

例如:

*在服务器1上:
启用转发:

echo "1" > /proc/sys/net/ipv4/ip_forward  
sysctl net.ipv4.ip_forward=1  

在 Iptables 上添加转发规则

iptables -t nat -A PREROUTING --dst server1_ip -p tcp --dport portX -j DNAT --to-destination server2_ip:portX
iptables -t nat -A POSTROUTING -p tcp --dst server2_ip --dport portX -j SNAT --to-source server1_ip
iptables -t nat -A OUTPUT --dst server1_ip -p tcp --dport portX -j DNAT --to-destination server2_ip:portX

在哪里:
端口X:您希望转发的端口
服务器1_ip:接收初始ip并转发到server2的服务器ip。
服务器2_ip:您希望将流量转发到的服务器的 IP 地址。

相关内容