很多人的办公电脑只能访问公网,真正要维护的服务器却在内网。这时候跳板机就是那道门:先登上一台有公网入口的机器,再从它转到目标服务器。Finalshell本身提供了SSH隧道能力,可以把这件事做成可保存的配置,不用每次手敲命令。下面按实际操作顺序走一遍。
先确定用哪种跳板方式
Finalshell里常见的做法有两种,选一种即可,不必混用。
- 本地端口转发:在跳板机上开一个隧道,把本地某个端口映射到内网服务器的22端口,目标会话连本地端口。
- 直接指定跳板机会话:在目标连接的隧道设置里选中已保存的跳板机连接,由客户端自动完成中转。
前一种直观、好排查;后一种省事,适合会话多的情况。新手建议先用本地端口转发把链路跑通。
准备三项信息
动手前把下面几样确认清楚,能少走很多弯路。
- 跳板机的公网IP、SSH端口、登录账号与认证方式(密码或密钥)。
- 目标内网服务器的IP和SSH端口,以及登录凭据。
- 在跳板机上执行一次 ssh 目标IP,确认跳板机到目标机是通的;不通就先解决网络或安全组。
第一步:先单独连上跳板机
不要一上来就配隧道。先在Finalshell里新建一个SSH连接,填跳板机信息,保存并双击登录。
- 会话名称建议写成“跳板-机房A”这类固定格式,后面选的时候不容易选错。
- 登录成功后看一眼命令行提示符,确认落到的确实是跳板机,而不是别的机器。
第二步:打开目标连接的隧道设置
再新建一个连接,主机先填目标内网IP,保存。然后右键这个会话进入编辑,找到SSH隧道或代理相关的那一栏。
- 勾选启用隧道或跳板选项。
- 跳板机选择上一步保存的会话。
- 如果界面要求填跳板机地址和端口,就照实填写,认证信息与跳板机会话保持一致。
第三步:填写转发规则
以本地端口转发为例,需要填四组值。
- 类型:Local(本地转发)。
- 监听地址:127.0.0.1。
- 监听端口:挑一个本地没被占用的,比如2222、2201。
- 目标主机与端口:填内网服务器的IP和22。
保存后,Finalshell会在连接时先登录跳板机,再建立这条转发通道。
第四步:让目标会话走这条通道
回到目标会话的基本设置,把主机改成127.0.0.1,端口改成上一步填的监听端口,比如2222。保存。
- 认证方式仍然用目标服务器的账号,不是跳板机的账号。
- 如果目标机只允许密钥登录,把对应私钥选到目标会话里,不要和跳板机的密钥混在一起。
第五步:连接并验证
先双击跳板机会话,保持在线;再双击目标会话。正常情况下应该能直接进入目标服务器。
- 在目标机执行 hostname 或 ip addr,确认登录的是内网那台机器。
- 看Finalshell的隧道状态或日志,确认转发通道已建立。
- 断开重连一次,验证配置能复用,而不是偶然成功。
第六步:连不上时的排查顺序
按从近到远的顺序查,别一上来就改配置。
- 跳板机本身能否登录,端口和密码是否正确。
- 跳板机的sshd是否允许TCP转发,配置项 AllowTcpForwarding 是否为 yes。
- 本地监听端口是否被别的程序占用,换一个端口再试。
- 跳板机到目标机的22端口是否放通,安全组和防火墙都要看。
- 目标机是否限制了来源IP,只允许跳板机访问属于正常策略。
几个容易忽略的细节
- 跳板机重启或网络抖动后,隧道会断,需要重新连一次跳板机会话。
- 多级跳板要逐级做转发,A到B、B到C,不要试图一步到位。
- 隧道端口写进会话备注,换电脑导入配置时能少对一遍。
- 生产环境建议给跳板机单独建账号并限制命令,不要把个人账号共享给多人。
链路跑通后,把这几个会话放进同一个分组,命名统一,下次换机器只要导入配置就能继续用。跳板机设置本身不复杂,难的是把认证、端口和转发规则对齐;按上面的顺序一步步来,基本一次就能配好。