如何解决使用 OpenWRT 路由器自动 SSH 到 AWS EC2 服务器
我有一个 OpenWRT 路由器,我正在尝试与 Amazon AWS 服务器建立持久的反向 ssh 隧道。问题是我的 ISP 更改了我的公共 IP,所以为了 ssh 到它,我必须使用端口敲门来防止每个 IP 看到 ssh 端口。我写了一个 bash 脚本来建立连接。不,我不想使用 autossh...它不支持输入键路径。
什么有效:
无论如何,此脚本位于 /root/scripts/autosshtoaws.sh
。我可以使用命令 ./root/scripts/autosshtoaws.sh
从终端运行它。它在后台就好了。如果我手动断开互联网线路,AWS 服务器上的 sshd 配置为终止套接字,并且我的路由器配置为终止套接字。它会像预期的那样尝试。
问题:
我已将此作为 init.d
服务运行。网络启动后它启动良好。当我重新启动路由器并查看 netstat
命令时,它显示了多次尝试,就好像它在一遍又一遍地尝试一样。
脚本如下:
#!/bin/bash
PATH=/usr/sbin:/sbin:/usr/bin:/bin
ssh_command="/usr/bin/netcat -z MYMACHINE.amazonaws.com 777 611 501; sleep 2; /usr/bin/ssh -i /root/.ssh/aws_key.pem -R 8080:192.168.0.99:7070 ubuntu@MYMACHINE.amazonaws.com"
while true; do
if [[ -z $(ps | grep "$ssh_command" | sed '$ d') ]]
then eval $ssh_command
else sleep 60
fi
done
这是 netstat 命令显示的内容:
tcp 0 0 1.1.1.1:54926 2.2.2.2:22 ESTABLISHED
tcp 0 0 1.1.1.1:54312 2.2.2.2:22 TIME_WAIT
tcp 0 0 1.1.1.1:54760 2.2.2.2:22 TIME_WAIT
tcp 0 0 1.1.1.1:54700 2.2.2.2:22 TIME_WAIT
tcp 0 0 1.1.1.1:54636 2.2.2.2:22 TIME_WAIT
这里是服务配置:
#!/bin/sh /etc/rc.common
USE_PROCD=1
START=95
STOP=01
start_service() {
procd_open_instance
procd_set_param command /bin/sh "/root/scripts/autostartsshtoaws.sh"
procd_close_instance
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。