finalshell可通过本地、动态socks5、远程及跳板机隧道实现安全访问远程服务:本地隧道映射远程端口至127.0.0.1;动态隧道构建socks5代理;远程隧道反向暴露本地服务;跳板机隧道支持二级内网穿透;所有隧道需重连生效并确保端口与服务可用。

如果您已在FinalShell中成功建立SSH连接,但需要安全访问远程服务器上的特定服务(如Redis、Visdom、数据库等),则可通过隧道功能将远程端口映射至本地。以下是实现该目标的具体方法:
一、配置本地隧道
本地隧道适用于将远程服务器上的某个服务端口(例如6379、8097、27017)通过SSH加密通道暴露在本机指定端口上,使本地应用程序可直接连接127.0.0.1:端口来访问远程服务。
1、在FinalShell左侧服务器列表中,右键目标服务器连接,选择“编辑”或点击右侧“设置”按钮。
2、在弹出窗口中切换到“隧道”选项卡,点击“添加”按钮。
3、填写隧道配置:名称可任意(如“redis-tunnel”);类型选择“本地”;监听端口填写本地欲使用的端口号(如6379);绑定IP填写127.0.0.1;目标地址填写服务器IP(如127.0.0.1或实际服务器公网/内网IP);目标端口填写远程服务实际监听端口(如6379、8097)。
4、点击“确定”保存,返回连接设置页后点击“确定”或“应用”使配置生效。
5、重新连接该服务器,隧道即开始工作;此时在本地终端执行telnet 127.0.0.1 6379或使用Redis客户端连接127.0.0.1:6379即可验证连通性。
二、配置动态SOCKS5隧道
动态SOCKS5隧道适用于需代理整个浏览器或应用程序流量的场景,例如访问服务器所在网络的内网Web服务,其本质是构建一个本地SOCKS代理,所有经该代理的请求均通过远程服务器转发。
1、进入目标服务器的“设置”→“隧道”→“添加”。
2、类型选择“动态”,监听端口设为未被占用的高端口(如1080);绑定IP设为127.0.0.1。
3、保存并重新连接服务器。
4、在本地系统或浏览器中手动配置SOCKS5代理为127.0.0.1:1080,无需填写用户名密码(除非服务器端SSH强制要求)。
5、访问服务器可直达的内网地址(如http://192.168.1.100:8080),确认页面正常加载即表示隧道可用。
三、配置远程隧道
远程隧道适用于反向穿透——当FinalShell所在本机处于NAT或防火墙后、无公网IP时,可让远程服务器主动监听某端口,并将流入该端口的流量回传至本机指定服务,常用于远程调试或临时暴露本地开发服务。
1、在服务器“设置”→“隧道”→“添加”中,类型选择“远程”。
2、监听端口填写服务器端欲开放的端口(如8088),注意该端口需在服务器防火墙中放行;绑定IP建议填0.0.0.0以允许外部访问;目标地址填127.0.0.1;目标端口填本机服务端口(如本地运行的Web服务在8080,则此处填8080)。
3、保存并重连服务器。
4、在服务器上执行curl http://127.0.0.1:8088测试是否返回本地服务响应;若需从外网访问,则用服务器公网IP加该端口(如http://server-ip:8088)。
四、使用隧道连接跳板机访问二级内网主机
当目标主机位于跳板机(中转服务器)后方且不可直接访问时,需先建立跳板机隧道,再新建一条指向该隧道的SSH连接,实现两级穿透。
1、新建第一个连接,配置跳板机(如jump-server)的SSH信息并保存。
2、对该跳板机连接启用隧道:类型选“本地”,监听端口设为2222,绑定IP为127.0.0.1,目标地址填内网主机IP(如10.0.1.5),目标端口填22。
3、新建第二个连接,主机填127.0.0.1,端口填2222,认证信息填写内网主机的用户名与密码(或密钥)。
4、先双击打开跳板机连接,保持其处于已连接状态;再双击打开第二条连接,即可直连内网主机。
五、验证与排错关键点
隧道配置生效的前提是SSH连接持续活跃;若连接中断,隧道自动断开。常见失败原因包括端口被占用、目标服务未运行、防火墙拦截、绑定IP错误等。
1、检查FinalShell右下角状态栏是否显示“已连接”,且隧道图标呈绿色亮起。
2、在本地执行netstat -ano | findstr :监听端口(Windows)或lsof -i :监听端口(macOS/Linux),确认端口已被FinalShell进程监听。
3、登录服务器,执行ss -tuln | grep 目标端口,确认远程服务正在监听对应端口。
4、若使用本地隧道访问Visdom,浏览器必须访问http://127.0.0.1:本地监听端口,而非服务器IP地址。
5、隧道配置修改后,必须重新连接服务器才能生效,仅保存设置不触发隧道重建。










