首页 > 代码库 > 利用ssh实现对局域网内机器的访问

利用ssh实现对局域网内机器的访问

【1】目标

两台机器A,B在两个不同的局域网内,且都没有公网ip。现在希望能够实现从主机A对B实现远程操作

需要具有公网ip的中转机器 C cip

之前在网上查看攻略发现可以用ssh通过一个具有公网ip的中转服务器来实现这一目标,具体攻略见

http://www.jb51.net/hack/58514.html

这一方法通过一个监控脚本来实现短线重连功能,即在B上每隔一段时间检查是否有进程 ”ssh -N -R -f“若没有,则判断为已断开连接。若无,则执行该连接命令。


    然而在实践中发现常常会有断开连接的情况使得B中 "ssh -f -N -R"进程仍存在,但其实C机器已经关闭了相应的端口,因此会出现从A通过中转连接不到B的情况。为了解决这一问题,我想出了下面这一方案:

        【1】在机器C上每隔一段时间监控一下目标端口是否已经打开,若已经打开,则啥也不做,若没有打开,则写入一个文件

        【2】在机器B上每隔一段时间从机器C上下载文件,若存在,则啥也不干,否则,则执行连接。

利用ssh实现对局域网内机器的访问