Part1、需求一
缘由
内网服务器A需要访问外网服务器B中内网的某些应用,但是外网服务器并不开放这些服务的端口,因此需要设置代理访问!
操作
A服务器上的操作:
# 安装autossh
yum -y install autossh
# 需要将A的公钥放到B的服务器上
ssh-copy-id B_IP
# -M参数,这个参数指定一个端口,这个端口是外网的B机器用来接收内网A机器的信息
# 1088是内网A的代理端口
autossh -M 20000 -D 0.0.0.0:1088 -f -C -q -N root@B_IP
测试:
# 任意一台内网服务器
curl --socks5 A_IP:1088 http://B内网IP:端口
如果需要在B服务器通过ssh登录到内网服务器,使用如下命令即可:
# -M参数,这个参数指定一个端口,这个端口是外网的B机器用来接收内网A机器的信息
# 1088是内网A的代理端口
# 7280是外网B服务器的远程端口
autossh -M 7281 -fCNR 7280:localhost:22 -D 0.0.0.0:1088 root@B_IP
# B服务器ssh远程登录
ssh localhost -p 7280
Part2、需求二
缘由
如果反过来,外网服务器B中内网电脑要访问A环境的内网,需要怎么做呢?
操作
基于上面的操作基础之上,再设置一次代理
A服务器操作:
autossh -M 7281 -fCNR 7280:localhost:22 root@B_IP
B服务器操作:
autossh -M 7381 -D 0.0.0.0:1099 -f -C -q -N root@localhost -p 7280
B服务器内网电脑测试:
curl --socks5 B_IP:1099 http://A内网IP:端口
Part3、需求三
缘由
内网A服务器需要访问外网的某个端口,使用tcp协议
操作
1.公钥相互设置到对方主机
2.内网A服务器设置(22端口代理)
autossh -M 7281 -fNR 7280:localhost:22 root@xxx.xxx.xxx.xxx -p2009
7281: 监视端口
7280: 远程端口
22: 本地ssh端口
2009: 远程ssh端口
3.外网B服务器设置(端口代理)
autossh -M 7381 -fNR 8101:localhost:9001 root@localhost -p7280
9001: 代理端口
8101: 内网访问外网9001需要用到的端口