我有一个简单的客户端和一个 HTTP 服务器(端口 80)。在某些情况下,客户端和服务器可以存在于不同的位置,在防火墙后面进行 NAT(仅允许到端口 80 的出站连接)。
我正在尝试使用 SSH 隧道(或其他任何东西...NGINX?),以便使用第三个服务器绕过防火墙,该服务器对双方都可用并接受入站连接(80/22/其他?)。
可以通过SSH隧道来实现吗?我可以让它与任何类型的反向代理一起使用吗(我可能需要在服务器端使用额外的代理..我的 HTTP 服务器)?
答案1
这个问题不清楚,但无论如何我会尝试解决它。
如果您只想始终能够通过该中间主机访问 HTTP 服务器,您可以使用从 HTTP 服务器到中间主机的反向 SSH 隧道,并在中间服务器的环回接口上导出 HTTP 服务器的端口(您可以公开它)也可以在外部接口上使用,但这意味着网络上的任何人都可以访问您的 HTTP 服务器)。
为此,您需要使用HTTP 服务器。这会将端口 80 公开为Friendly.domain.tld 上环回接口上的端口8080。ssh -R 8080:127.0.0.1:80 [email protected]
接下来,您需要通过在本地计算机上运行以下命令将其移植到本地计算机:。从此时起,环回接口上的 8080 端口已连接到 HTTP 服务器:)ssh -L 8080:127.0.0.1:8080 [email protected]
您可以从我前段时间写的一篇博客文章中获取更多信息:http://dmitry.khlebnikov.net/2010/12/ssh-port-forwarding-intermediate.html