autossh 是一个用来启动 ssh 并进行监控的程序,可在需要时重启 ssh,如果程序问题或者是网络问题。其灵感和机制来自于 rstunnel (Reliable SSH Tunnel). autossh 1.2 的方法已经改变:autossh 使用 ssh 来构造一个 ssh 重定向循环(本地到远程和远程到本地),然后发送测试数据并获得返回结果。
内网主机主动连接到外网主机,又被称作反向连接(Reverse Connection),这样NAT路由/防火墙就会在内网主机和外网主机之间建立映射即可相互通信了。但这种映射是路由网关自动维持的,不会持续下去,如果连接断开或者网络不稳定都会导致通信失败,这时内网主机需要自动重连机制了。
参数:
-M为autossh参数, -CqTfnN -D 为ssh参数 -M 5678 : 负责通过5678端口监视连接状态,连接有问题时就会自动重连 -C :启动数据压缩传输 -q :安静模式运行,忽略提示和错误 -T :不占用shell -f :后台运行 -n :配合 -f 参数使用 -N :不执行远程命令,专为端口转发度身打造 -D 192.168.0.2:7070 :指定一个本地机器 “动态的“ 应用程序端口转发,如果不加IP地址,默认只监听127.0.0.1 反向代理 ssh -fCNR 正向代理 ssh -fCNL -R 将远程主机(服务器)的某个端口转发到本地端指定机器的指定端口 -L 将本地机(客户机)的某个端口转发到远端指定机器的指定端口
折腾一晚上的实战:
今晚折腾一晚上autossh的用法~
首先我准备了三台机器:
一台是192.168.80.128本地虚拟机,一台是129.204.XXX.99 的腾讯云虚拟机,一台是116.62.xxx.182的阿里云虚拟机。
目的是打算能从129.204.XXX.99 虚拟机上通过映射的端口访问116.62.xxx.182虚拟机,然后我本地机器能通过CRT端口转发访问,192.168.80.128本地虚拟机可认为是跳板机。
其实这次最最最最主要的目的是以后可能会要访问很多内网机器,但是我本地机器是无法去访问公司很多内网机器,而只有一台能对外访问,从而我讲这台做一个映射罢了。
首先嘚先安装autossh
1.命令安装:
yum install autossh
如果yum安装不了:
可参考:https://www.linuxidc.com/Linux/2015-05/117665.htm
2.运行命令
autossh -M 20912:22 -NR 29640:116.62.xxx.182:22 -p22 root@129.204.xxx.99
通过netstat -anp | grep 29640可以看到 转发映射成功:
但是有一个问题,29640端口映射的ip是127.0.0.1而不是0.0.0.0,那么这就有很大问题了,这样我们就无法通过他的ip去访问到这个29640端口
至于为什么:可点击看:Linux的netstat查看端口是否开放见解(0.0.0.0与127.0.0.1的区别)
我这边就不多介绍~
怎么解决呢:
cd /etc/ssh/ vi sshd_config 修改 GatewayPorts yes 重启 ssh服务 service sshd restart 关掉autossh 命令窗口 重新打开窗口输入: autossh -M 20912:22 -NR 29640:116.62.xxx.182:22 -p22 root@129.204.xxx.99
再次netstat -anp | grep 29640
3.通过CRT连接服务器
在CRT工具上,对192.168.80.128本地虚拟机进行端口转发配置。
CRT端口转发如何配置-->百度~
效果图:
然后就可以把本地端口间接映射了。
完成~
如果看不懂我写的没关系,我自己懂就行,而你们可以看看别人的吧:https://www.cnblogs.com/kwongtai/p/6903420.html
睡觉了~明天还要上班呢呜呜呜呜~