“在公司搭了集群,回到家里用不上?”
“家里的代码库,出了门拉取不到?”
……
还在为这些问题烦恼吗?本文将帮助你使用一个开源项目,连接到没有外网IP的内网机器。
原理
简单介绍一个内网穿透的原理,通过一台拥有外网固定IP的机器(比如说各大厂商提供的云服务器)作为桥梁,让内网机器监听这个固定IP的某个端口,而你可以通过访问固定IP的这个端口,间接的访问到内网机器。
要求
拥有固定IP的云服务器一台
步骤介绍
这边将内网机器称作A
将固定IP机器称作为B
将工作的机器,即使用者正在使用的机器称作为C
- 在A上安装一个长期开启的客户端,用来监听B的39000端口。(当然也可以是其他端口)
- 在B上开启绑定39000端口的服务。
- 在B上开启一个映射,将B机器的39001端口映射到A机器的22端口上。
- 在C需要访问A机器的22端口时,通过访问B机器的39001端口间接访问。
实际演示
开启A的监听客户端
首先登录A机器
然后使用自动安装脚本(linux 64)安装开源项目
这边使用的开源项目是snail007的goproxy项目
点此查看项目
安装成功后根据提示进入到/etc/proxy目录下
运行客户端
cd /etc/proxy;
proxy client -P "120.25.146.156:39000" -C proxy.crt -K proxy.key
成功开启客户端监听
注意
这里到‘120.25.146.156:39000’是要监听到外网IP和端口号
将/ect/proxy中的proxy.crt和proxy.key拷贝出来
开启B的服务端
登录B机器
安装goproxy
curl -L https://mirrors.host900.com/snail007/goproxy/install_auto.sh | bash
注意
将上面拷贝出来的proxy.crt和proxy.key拷贝到B机器的/etc/proxy目录下
启动服务端
curl -L https://mirrors.host900.com/snail007/goproxy/install_auto.sh | bash
开启端口映射
开一个新窗口登录B机器
开启端口映射
cd /etc/proxy
proxy server -r ":39001@:22" -P "127.0.0.1:39000" -C proxy.crt -K proxy.key
测试
在C机器上看看能否通过B的39001端口接入到内网机器A的22端口
ssh -p 39001 root@120.25.146.156
成功接入✅