我在同一台机器上有一个 Web 守护进程(监听端口 80 和 443)和一个 ssh 守护进程(监听端口 22)。
我有一个客户端(生成 HTTP、HTTPS、SSH 流量),位于代理服务器(端口 8080)和防火墙(仅开放端口 80 和 443)后面。
我决定使用 HTTP 隧道来传输通过代理服务器的 SSH 流量。问题是该流量的目的地是端口 22,而该端口已被防火墙关闭。
我可以使用目标端口为 80 或 443 的 HTTP 隧道,这对于防火墙来说没问题,但对于目标服务器来说则不然。
除了拥有 2 台服务器之外,还有其他解决方案吗:1 台 Web 服务器监听端口 80 和 443,1 台 ssh 服务器监听端口 80 或 443?
任何建议将不胜感激。
洛朗
答案1
我认为这里可能需要一张图。您说您已经通过代理服务器设置了 SSH over HTTP 隧道。假设您在远程服务器计算机上运行某些程序来处理终止该 SSH over HTTP 隧道,那么您应该可以开始工作了。
如果您仍在尝试将连接源发送到远程服务器、目标端口 22,那么听起来您实际上并没有通过 HTTP 代理的 SSH。
Dag Wieers(RPM 存储库名人)写过一篇如何通过 HTTP(S) 隧道传输 SSH。如果您的远程服务器正在运行 Apache,您应该能够在远程服务器上完成该配置。
我说的是这样做:
(来源:wellbury.com)
答案2
您需要第二个 IP 地址来让 SSH 守护程序监听端口 80 或 443。但正确的答案是修复客户端的防火墙以允许适当的流量流出。通过 HTTP(S) 隧道传输所有内容是愚蠢的,它会让互联网变成一个双端口小镇。