在openwrt上使用autossh(已放弃)

用了一天后发现,这东西真不靠谱,还不如自已写的SHELL检测重连来的精准和方便,放弃中

参考文章:

https://my.oschina.net/umu618/blog/849345

https://segmentfault.com/a/1190000000636636

官风的使用说明(英文):https://www.harding.motd.ca/autossh/README.txt

过程 :

首先安装autossh:

opkg update

opkg install autossh

修改配置: /etc/config/autossh,这里要注意是config autossh 名称,最好加上‘名称’,特别是同时连多个SSH情况时

config autossh 1
    option ssh '-i /etc/dropbear/my_key_1 -N -T -L localhost:1234:192.168.1.1:4567 [email protected] -p remoteport'
    option enabled '1'
    option monitorport '20001'
    option gatetime '0'
    option poll '60'

config autossh 2
    option ssh '-i /etc/dropbear/my_key_2 -N -T -R 0.0.0.0:5678:localhost:2222 [email protected] -p remoteport_2'
    option enabled '1'
    option monitorport '20002'

修改启动文件:/etc/init.d/autossh ,作用是可以同时连接多台SSH

给 start_instance() 函数增加两行:

export SERVICE_MATCH_NAME=1
export SERVICE_NAME="$section"

    最终 start_instance() 函数看起来是这样:

start_instance() {
	local section="$1"

	config_get ssh "$section" 'ssh'
	config_get gatetime "$section" 'gatetime'
	config_get monitorport "$section" 'monitorport'
	config_get poll "$section" 'poll'

	export AUTOSSH_GATETIME="${gatetime:-30}"
	export AUTOSSH_POLL="${poll:-600}"
	export SERVICE_MATCH_NAME=1
	export SERVICE_NAME="$section"
	#export SERVICE_DEBUG=1
	service_start /usr/sbin/autossh -M ${monitorport:-20000} -f ${ssh}
}

启动autossh

/etc/init.d/autossh start

你可能感兴趣的:(在openwrt上使用autossh(已放弃))