autossh反向代理
autossh反向代理
最近老板想把台式服务器的服务都挪到新买的R730XD上,不知道是不是想淘汰台式机。。。想想也挺好,毕竟台式机还是不能跟真正服务器相比的,鉴于早段时间还坏了里面一个虚拟机的硬盘扇区,导致那台虚拟机无法启动,总感觉越用越有很多隐患。
既然要挪走,就要把里面的虚拟机服务全部迁移走啦,之前测试过,台式机virtual box导出来的镜像在ESXI 6.0恢复是无法识别的。virtual box的虚拟机导出的格式文件后缀为:OVA
导入到ESXI sphere就报错了:
当时我还用工具 ovftool.exe 去给 .ova 的文件做 .ovf 的的格式转换,再导到ESXI,又说 OVF包无效,最终放弃(可能哪天心情好会继续研究 = =)
话说,台式机的服务有autossh、知识库wiki、cms后台服务。。。还有我各种测试的宝贝。今天先讲下autossh,老实说,从来没有搭建过,只知道如何跑起来(上一任运维交接文档有)
1、应用场景
就我理解 ,autossh跟ngrok差不多,就是做内网反向代理的。以下抄录网上的一个仁兄的话:
“当我们使用公司或家中电脑搭建了 Web 服务时,一般不能直接从外网访问,为了实现从外网直接访问到内网的服务,一般会需要用到 内网穿透 技术。常用的内网穿透工具有 NAT 转发、DMZ 主机、AutoSSH、ngrok、frp、花生壳等。” 简化来说就是这样:A服务器(内网ip) ——》 ssh通道 ——》B服务器( 公网IP)2、前期测试部署 看我博客的读者,应该知道我基本很少写部署文档的,因为网上一大把,而且也没啥难度~~~这里也不啰嗦,可以参考这篇: https://zhuanlan.zhihu.com/p/112227542
注意/关键点:
(1)首先内网服务器A要能上外网的
(2)给内网服务器A配置免密钥登陆到外网服务器B
这个测试比较关键,如果配置成功,是可以免密钥登陆到B机器上的:
ssh -p B服务器ssh端口 B服务器登陆用户@B服务器公网ip
(3)运行测试命令
ssh -p B服务器ssh端口 -R B服务器公网ip:17788:A服务器ip:A服务器ssh端口 B服务器登陆用户@B服务器公网ip说明: 17788:是自定义的端口号 具体意思自己百度吧~ (4)测试 运行完(3)的命令后,理应会在B服务器看到监听17788,代表开了一个会话
3、部署autossh
sudo yum install wget gcc make wget http://www.harding.motd.ca/autossh/autossh-1.4e.tgz tar -xf autossh-1.4e.tgz cd autossh-1.4e ./configure make make install
4、最后运行
假设代理公司内网C服务器的一个服务端口,即C和A同属一个内网网段,
autossh -M 17500 -NR 57760:内网代理的服务器C:内网代理的服务器C的服务端口 B服务器登录用户@B服务器公网ip -p B服务器ssh端口 &
归纳起来就是:装autossh ——》 配置免秘钥 ——》 autossh命令运行 ——》 远程公网机器telnet测试(或nginx代理)
最后说一句,代理到线上公网服务器B之后,由于我没有在公网机器上添加参数
GatewayPorts yes
所以代理到公网B服务器上的时候,只有本机能访问。
如果要外网访问这个内网C服务器的服务,可以通过给nginx配置域名去转发到这个127.0.0.1 端口去,当然如果仅仅是给B服务器本机服务连接,就没必要了。
代理公司内网开发人员的本机程序出去也是可以的,不多累赘。