SSH反向隧道
SSH 反向隧道(Reverse SSH Tunnel)是利用 SSH 建立的一种加密隧道,其作用是让处于防火墙或 NAT 后面的主机,可以将其内部的某个端口映射到外部服务器,使外部用户能够通过该服务器访问到内部服务。
最近在寻找一种低成本、本地化的通信方式,可以借助云服务器开放给外网的持续化服务方法,在种种限制下实现内网设备的高性能与低配置云服务器的平衡,个人了解到了SSH反向隧道这个技术,因此本篇主要介绍SSH反向隧道
1.应用场景
如下图,我们考虑这种情况:
- 公网机器B可以被客户机器A和内网机器C通过ssh访问到
- 希望通过公网机器B让客户端机器A访问到内网机器C
- 内网机器C性能好,但没有公网ip
- 公网机器B有公网ip且带宽足够
- 客户端机器A希望可以持续访问内网机器的服务
例如:我希望在云服务器开放一个后端服务(计算向服务),但由于服务器性能不够,或者并发性难以支持,而升级服务器或租用额外的负载均衡服务成本又带来费用,但是本地内网有闲置PC可用,希望借助云服务器将本地内网的服务转发出去。
2.使用方法
- 确保服务器有OpenSSH等服务
- 公网机器B配置配置sshd_config文件:AllowTcpForwarding yes 和 GatewayPorts yes
- 内网机器C上执行:ssh -R 8080:localhost:1234 user@<\server_ip>
- 客户端机器A访问服务————http://<\server_ip>:8080
3.其他应用
-
内网穿透
例如,在远程维护或调试工作中,内网的设备可以通过建立一个反向隧道,使站外设备能够访问其内部服务。一些局域网游戏的联机服务可以考虑这种方法。 -
远程访问和运维
使用反向隧道从远程安全地访问位于防火墙或私有网络中的服务器,无需直接更改防火墙配置或暴露内网IP。 -
安全加密通信
因为SSH连接本身是加密的,所以通过SSH反向隧道传输的数据可以得到保护,减少了中间人攻击和数据泄露的风险。 -
临时服务暴露
当需要临时让外界访问某个内网服务时,通过反向隧道无需繁琐的网络配置变更,快速搭建一个临时的访问通道。
Comments NOTHING