利用ssh穿越多级跳板访问云端内网Web服务的简单办法

利用ssh穿越多级跳板访问云端内网Web服务的简单办法
最新回答
听风入韵

2020-05-08 16:10:22

利用SSH穿越多级跳板访问云端内网Web服务的核心步骤为:配置SSH多级跳板隧道、安装浏览器代理插件并设置规则、在最后一级跳板机建立本地SOCKS5隧道,最终通过浏览器代理访问目标服务。

一、配置SSH多级跳板隧道

需先完成“利用SSH穿越多个跳板机”的基础配置,具体操作如下:

  • 系统要求

    访问者机器为Linux或MacOS可直接操作;

    Windows 10需安装Ubuntu for Windows 10(共生环境),在Ubuntu 18.04中完成配置;

    Windows 7需使用Putty工具(因对OpenSSH的SSH Config支持较差)。

  • 配置方法:参考知乎专栏文章《利用ssh穿越多个跳板机最简单最高效的办法》(链接:
    https://zhuanlan.zhihu.com/p/55016458
    ),按文中步骤配置SSH跳板机的连接参数(如主机名、端口、用户名等),确保可通过SSH逐级穿透至目标网络。
二、安装浏览器代理插件并设置规则

以Chrome浏览器为例,需安装SwitchyOmega插件并配置自动代理规则:

  • 安装插件:在Chrome应用商店搜索“SwitchyOmega”,安装后启用插件。
  • 新建SOCKS5代理配置

    打开SwitchyOmega,新建一个Profile(如命名为socks5web);

    协议选择SOCKS5,服务器填127.0.0.1,端口填未被占用的端口(如1080)。

  • 配置自动切换规则

    在“自动切换”(Auto Switch)规则中,添加条件类型为Host wildcard(通配符匹配);

    条件细则可填单个域名/IP(如myweb.net),或含通配符的域名/IP(如*.myweb.net或192.168.1.*);

    选择刚创建的socks5web Profile,保存配置。

(图:SwitchyOmega插件配置界面示意图)三、在最后一级跳板机建立SOCKS5隧道

选择能解析目标域名或IP的最后一级跳板机(如jumper4),按以下步骤操作:

  • 域名解析准备

    确保跳板机可解析目标域名(如通过DNS服务器或直接修改/etc/hosts文件添加域名-IP映射);

    将访问者机器的SSH公钥放入跳板机的~/.ssh/authorized_keys文件中,实现免密登录。

  • 建立SSH隧道:在访问者机器上运行以下命令,将本地端口(如1080)通过SSH隧道映射到跳板机:ssh -o ServerAliveInterval=10 -gfND 1080 jumper4

    -o ServerAliveInterval=10:保持SSH连接活跃(每10秒发送一次心跳包);

    -gfND:后台运行隧道(-g允许远程主机连接本地端口,-f后台模式,-N不执行远程命令,-D绑定本地SOCKS代理);

    1080:本地SOCKS代理端口;

    jumper4:最后一级跳板机的主机名或IP。

四、通过浏览器访问目标服务
  • 启动代理:确保SSH隧道命令行窗口保持运行(Linux/Mac需保持终端开启;Windows 10的Ubuntu子系统可关闭窗口后通过systemd或nohup维持进程)。
  • 浏览器设置:打开Chrome,在SwitchyOmega插件中选择“自动切换”模式,输入目标URL(如
    http://myweb.net
    https://192.168.1.100
    )。
  • 访问验证:浏览器会通过本地SOCKS5代理(127.0.0.1:1080)将请求转发至最后一级跳板机,跳板机解析域名后访问内网Web服务,最终返回结果至浏览器。
五、注意事项
  • 端口冲突:确保本地代理端口(如1080)未被其他程序占用。
  • 防火墙规则:检查跳板机和本地网络的防火墙是否放行SSH(默认22端口)及代理端口(如1080)。
  • 隧道稳定性:若网络不稳定,可通过-o ServerAliveInterval参数调整心跳间隔(如改为30秒)。
  • 多级跳板扩展:若需穿透更多级跳板,可在中间跳板机上重复配置SSH隧道,最终将代理端口映射至最后一级跳板机。

通过以上步骤,可实现通过SSH多级跳板安全访问云端内网Web服务,且无需在浏览器端配置DNS解析。