2026/7/22 16:08:56
网站建设
项目流程
1.场景
- 涉及4台机子:本地电脑A、远程服务器B、远程服务器C、远程服务器D
- 4台机子的互联访问情况如下:
- 需要想办法从本地电脑A直接访问服务器D
![]()
2.ssh 逐台跳转到服务器D手动输入逐台跳转
- 使用xshell或其他终端:
- 从本地电脑A先ssh访问B,输入B的账号密码:会话1[服务器B]
- 接着继续ssh访问C,输入C的账号密码:会话1[服务器C]
- 接着继续ssh访问D,输入D的账号密码:会话1[服务器D]
- 这样的操作,逐台跳转到目标服务器D
- 手动输入ssh命令、账号密码过多
3.建立ssh隧道跳转服务器Dssh隧道
- 基于上述手动输入命令跳转,过于复杂
- 希望能达到从本地电脑A直接ssh访问D,输入D的账号密码
- 利用ssh隧道
- 先本地电脑A ssh访问B,建立local->C的ssh隧道
- xshell正常连接B,提供B的ip/port/账号/密码
- 设置ssh隧道,设置local:port->C:22的映射
- 重新连接B
- 执行vi等长连接操作
- 之后本地电脑A 直接访问C
- 连接local:port,提供C的账号/密码
- 能直接连接C,不必手动从B跳转C
- 后续连接D,类似
- 在连接C后,设置local:port2->D:22的映射即ssh隧道
- 能直接连接D,连接local:port2,提供D的账号/密码
- 如何减少手动操作
- 其中A->B->C的ssh隧道,参考
4.类似还可建立其他隧道
- 上述为ssh隧道,让本地机器能直接访问需要多跳的机器:
- 建立其他隧道
- mqtt隧道:mqtt localhost:yyyy
- http隧道:
- curl -v http://127.0.0.1:8000 // 验证隧道成功
- curl --resovle 10.10.10.10:8000:127.0.0.1 -v http://10.10.10.10:8000/api/xxx // 验证resolve参数
- curl --resovle … -X POST … -H … -d …