autossh 实现反向代理实现通过外网访问内网环境
当我们环境搭建起来仅公司内部网络可以访问环境,在公司之外没有办法访问环境。当环境出现问题需要远程support 的时候,远程访问环境是个大问题。
有什么方法可以能够远程的就访问到公司内部的环境?
了解到需求提出来以下的解决方案实现可以远程访问环境需求。
真实环境肯定是不能拿出来给大家参考的所以使用虚机给大家分享演示一下。
1. 准备工作
server | ip | 描述 |
test1 | 10.150.117.208/20 (外网地址) | 可以通过外网访问的server ,可以组一个阿里云虚机 |
test3 |
10.150.116.249/20 (公司网和外网地址打通)
192.168.1.3/24(内网ip ) |
和阿里云可以通信的server ,且这台server 可以访问内部环境 |
test4 |
192.168.1.4/24 |
环境 |
2. 在test1 上通过防火墙做一些ip 限制,允许那些网络可以访问,并且放通指定端口
3. 在test3 上安装autossh
autossh -M 12345 -TfN -R 10022:192.168.1.4:22 root@10.150.117.208
-M 12345 本机的12345端口是用来监控ssh 连接状态出了问题会自己重连
-f 后台执行ssh指令
-C 允许压缩数据
-N 不执行远程指令
-R 将远程主机(服务器)的某个端口转发到本地主机指定的端口
-L 将本地机(客户机)的某个端口转发到远端指定机器的指定端口
-p 指定远程主机的端口
10022:192.168.1.4:22 相当于将192.168.1.4 的22 端口映射到公网主机10022 端口
root@10.150.117.208 公网主机ip
3, 执行成后在test1 上ssh -p 10022 localhost 可以直接跳到我们的192.168.1.4 server 上
4. 验证
在test1 上检查ip ping 我们想要访问的环境ip
检查我们去环境是直接ping 不通的
我们ssh 我们指定端口可以直接到我们的目的环境中