centos下使用autossh命令 – 记忆角落

centos下使用autossh命令

/ 2评 / 2

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

睡觉了~明天还要上班呢呜呜呜呜~


2条回应:“centos下使用autossh命令”

  1. 大雄说道:

    好像很牛批的样子.

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注