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服务器本机服务连接,就没必要了。

  代理公司内网开发人员的本机程序出去也是可以的,不多累赘。

 

posted @ 2021-12-08 22:18  windysai  阅读(338)  评论(0编辑  收藏  举报