当前环境拓扑图:
用户管理海外服务器,通过公网SSH远程时,由于网络质量原因公网丢包严重,这就导致管理员在对海外云主机进行管理时体验较差,表现形式可能是由于公网丢包严重执行命令卡顿,或者SSH进程异常中断等。
针对上述需求,给出以下方案来优化此问题。
- 新增一台代理服务器,此服务器到用户的网络质量和到海外服务器的网络质量良好,可以充当中间桥梁,途中我们以香港服务器为例。
- 管理员通过使用代理服务器充当跳板机来对海外服务器进行管理。
操作步骤:
代理服务器配置
首先需要在代理服务器上启动一个socks代理服务,并将此服务的端口授权给管理员可以进行访问。
关于socks代理有各种服务可以实现,在这里我们为了操作最轻量级就直接使用系统自带的SSH来实现此功能。ssh -p5258 -fqND 0.0.0.0:6565 root@127.0.0.1
使用以上命令可以建立一个SSH隧道代理,以下是上述参数的含义:
- -p5258:由于我们要连接的隧道服务器的ssh端口是5258,所以在此需要使用-p进行指定;
- -fqND:f表示后台认证用户名/密码无须登录到远程主机,通常和N(不执行脚本或命令)连用,q表示禁用告警和诊断消息,D表示指定本地机器进行动态端口转发;
- 0.0.0.0:6565:表示监听在此台机器上所有IP的6565端口;
- root@127.0.0.1:表示在本地上启用代理服务,也可以换成其他服务器,特定场景特定需求。
管理用户连接
ssh -o ProxyCommand="nc -X 5 -x 114.114.114.114:6565 %h %p" root@8.8.8.8
设置完代理服务器后,在ssh时需要指定代理服务器的IP及端口信息,最后指定要连接到的服务器即可,登录成功后服务器会给出登录的IP地址,或者使用who
命令进行查看,只要登录的IP地址是代理服务器的地址表示所有配置正常。
作者:Federico Sun