Bash 将HTTP通信转发到专用服务器

Bash 将HTTP通信转发到专用服务器,bash,networking,ssh,tunnel,socat,Bash,Networking,Ssh,Tunnel,Socat,我想将http流量从外部服务器转发到专用网络中的服务器,该专用网络只允许使用NAT进行传出连接。我在这方面很新,所以我随机尝试,但没有运气。这里的一个关键问题是我无法控制这个私有网络,包括防火墙和网关,因此我无法在网关上设置任何东西来重定向来自那里的流量 我知道如何设置到私有服务器的反向ssh,但那是另一回事。我不知道这会有什么帮助 [添加我对ssh隧道的尝试] 让我们看看我的linnode服务器是一个具有已知ip的服务器。我的专用服务器是B,显然具有未知的外部ip地址。目标是将流量从A重定向到

我想将http流量从外部服务器转发到专用网络中的服务器,该专用网络只允许使用NAT进行传出连接。我在这方面很新,所以我随机尝试,但没有运气。这里的一个关键问题是我无法控制这个私有网络,包括防火墙和网关,因此我无法在网关上设置任何东西来重定向来自那里的流量

我知道如何设置到私有服务器的反向ssh,但那是另一回事。我不知道这会有什么帮助

[添加我对ssh隧道的尝试]

让我们看看我的linnode服务器是一个具有已知ip的服务器。我的专用服务器是B,显然具有未知的外部ip地址。目标是将流量从A重定向到B,因此我在B中运行此命令:

ssh -N -f -R 8000:localhost:80 user@[A's ip]

这应该建造一条从a:8000到B:80的隧道。但是当我使用netcat进行检查时,A上没有建立连接。

我不确定这是否有帮助,但skype等软件面临着与专用网络“外部”的服务器或设备需要联系内部计算机相同的问题,例如当有人打电话时。他们使用此漏洞技巧,以便防火墙识别到达的包的来源(在您的情况下是linode服务器),并允许它们通过:


也许你可以做到这一点,因为你知道你的流量来自哪里。

ssh隧道应该能够满足你的需求。您是否介意分享您迄今为止的尝试,以便我们可以一起解决如何使其工作?基本上,您可以通过ssh从内部服务器连接到linnode系统,并指示设置额外的隧道。如果你能像那样连接到linnode,那就行了。我添加了我的try。请查收。谢谢@arkaschaI刚刚又检查了一遍,这对我很有效。然而,有几件事需要记住:1。只有root用户可以转发特权端口,如80。因此,您必须使用
sudo
实用程序。2.在这种情况下,您可能还必须使用
-i
标志指定ssh密钥,因为您需要切换用户。3.请注意,上的ssh服务器确实使用默认端口,或者使用
-p
标志指定端口。由于您使用的是
-N
标志,因此不会出现连接问题。最好在远程节点上查看系统日志文件。@arkascha 1。你如何验证这一点?2.如何检查系统日志文件?嗯,我通过连接到远程端口进行了验证,远程端口的工作和交付结果就像连接到本地系统开放端口一样。关于检查日志文件:您正在使用ssh之类的东西,但不知道如何查看日志文件?陛下总之:类似于
tail-f/var/log/messages
或类似的东西,具体取决于linux发行版。