ssh – 创建远程隧道的最佳方法是什么?

我有3台Linux服务器:

> 10.0.0.0/24 – (10.0.0.10)我局域网内的Linux服务器.
> 20.0.0.0/24 – (20.0.0.10)带有HTTP Apache服务器的Linux服务器
> 50.50.50.50/32 – Amazon AWS上的服务器,它同时看到10.x和20.x LAN.

10.x看不到20.x和20.x看不到10.x.
在AWS上设置50.50.50.50服务器以从10.x到20.x创建隧道的最佳方式(以及如何操作)是什么?

20.0.0.10在“DMZ”LAN上运行HTTPd服务器.
我需要从10.0.0.0/24服务器看到20.0.0.10:80.
2个网络10.x和20.x位于同一个Cisco ASA防火墙/路由器上,但​​由于许可证问题我无法路由,因此我想通过可以看到20.x网络的外部服务器绕过这个.
我希望能够从10.x服务器转到50.50.50.50:80并查看20.0.0.10:80内容.

最佳答案
您在问题中描述了完全不同的情况.如果您想通过50.50.50.50:80仅达到20.x:80,那么您可以使用iptables配置50.50.50.50的端口转发:

target_ip="20.1.2.3"
source_ip="50.50.50.50"
iptables -t nat -A PREROUTING -s 10.0.0.0/8 -p tcp --dport 80 -j DNAT --to-destination 20.1.2.3
iptables -t nat -A POSTROUTING -s 10.0.0.0/8 -d "$target_ip" -p tcp --dport 80 -j SNAT --to-source "$source_ip"
iptables -A FORWARD -s 10.0.0.0/8 -d "$target_ip" -p tcp --dport 80 -j ACCEPT
iptables -A FORWARD -d 10.0.0.0/8 -s "$target_ip" -p tcp --sport 80 -j ACCEPT
echo 1 >/proc/sys/net/ipv4/ip_forward

如果在20.0.0.0/8和50.50.50.50之间存在隧道,则可能必须将$source_ip设置为隧道接口IP地址.

转载注明原文:ssh – 创建远程隧道的最佳方法是什么? - 代码日志