![所有端口上都进行反向代理,而不仅仅是 http?](https://linux22.com/image/642143/%E6%89%80%E6%9C%89%E7%AB%AF%E5%8F%A3%E4%B8%8A%E9%83%BD%E8%BF%9B%E8%A1%8C%E5%8F%8D%E5%90%91%E4%BB%A3%E7%90%86%EF%BC%8C%E8%80%8C%E4%B8%8D%E4%BB%85%E4%BB%85%E6%98%AF%20http%EF%BC%9F.png)
您好,我最近在这里询问了一个关于在同一网络上的不同服务器上运行多个网站的问题多台服务器运行同样的东西,怎么办?我已经研究过如何设置反向代理,它运行起来没有问题,现在我想能够对其他服务(如 SSH 等)做同样的事情。我知道使用 HTT 协议不可能做到这一点,但还有其他方法吗?如果没有,我想知道如何在我的网络上获取 IP 地址?我有一个可以购买 IP 的 VPS,我可以将这些额外的 IP 映射到这里的服务器吗?这只能通过使用 VPN 或其他东西来实现,还是有更好的方法来实现?提前感谢你们的帮助,你们做得很好。
答案1
我相信您想要的是通常所说的 1:1 NAT(“1 对 1 网络地址转换”)。其主要目的是将一系列 TCP/UDP 端口从一个地址映射到另一个地址。
在 Linux Netfilter(iptables)中,您可以使用表链-j NETMAP
中的目标:-t nat
-A PREROUTING
NETMAP
This target allows you to statically map a whole network of addresses
onto another network of addresses. It can only be used from rules in
the nat table.
--to address[/mask]
Network address to map to. The resulting address will be con-
structed in the following way: All ’one’ bits in the mask are
filled in from the new ‘address’. All bits that are zero in
the mask are filled in from the original address.
由于您似乎指的是要映射到的单个主机,因此您的掩码将是 /32。
希望这对你有帮助,卡梅伦
答案2
您正在寻找 NAT(网络地址转换...由于额外的 IP 地址成本而被丢弃)或 PAT(端口地址转换...由于相同的端口限制而被丢弃)。另一个选项是使用客户端可以为其客户端应用程序设置的 socks 代理。
例如使用 ssh:
ssh [email protected] -D 9050
ssh user@internal-server -o "/usr/bin/nc --proxy-type socks4 --proxy localhost:9050 %h %p"
最后,您可能正在寻找像 openvpn 这样的 VPN 解决方案,它将路由推送到经过身份验证的客户端,并可以访问所有服务器端口。
希望这个回答能帮到你。