双隧道技术:远程协助同事的SSH端口转发实战
场景描述
当你正在办公室埋头处理报告时,突然接到同事的求助电话——他在现场遇到了一台难以攻破的设备。虽然同事拥有出站互联网访问权限,但典型的网络配置阻止了外部直接访问他的机器。此时,如果能直接登录他的设备进行演示,问题将迎刃而解。
配置步骤
建立反向SSH隧道
首先需要确保你的防火墙配置了端口转发,允许外部端口连接到你的机器。同事通过以下命令建立连接:
|
|
此命令会从他的机器SSH到你的机器,并将他的22端口转发到你机器的2222端口。选择2222端口的原因有二:一是非root用户无法开放1025以下的端口;二是你的22端口可能已被现有SSH服务占用。
连接同事机器
现在你可以通过本地2222端口SSH到同事的机器:
|
|
此时你已以他的身份连接到目标机器。若双方同时使用screen -x命令,即可实现共享终端会话,实现真正的协同工作或培训。
Web应用访问技巧
方法一:远程端口转发
若同事发现需要你查看的Web应用(如位于10.1.1.2:80),可通过新建隧道转发该端口:
|
|
方法二:本地端口转发
或者通过建立到同事的新连接进行本地转发:
|
|
两种方法都可通过访问localhost:8000查看Web应用。若服务器使用虚拟主机,只需在/etc/hosts中添加域名映射到127.0.0.1,即可通过vhost.name:8000访问。
此技术同样适用于转发远程桌面、数据库等任意端口。
技术总结
这种方法有效实现了外部用户到内部网络的接入。虽然存在其他解决方案,但SSH隧道在理解端口映射关系后变得十分简单,且所有数据传输均经过加密,提供了安全的工作通道。
注意:若出站22端口被阻断,可将SSH服务改为监听80或443端口。仅检查端口号的出站规则会允许此类流量,但深度包检测仍可能阻断连接。
致谢
感谢Gavin提供本文灵感并协助测试验证。