我现在已经花了一些时间研究,但还没有找到以下问题的解决方案:
我想将服务器 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 地址。