Open quinnwencn opened 4 days ago
需要访问内网或者家里的PC等没有公网IP的电脑时,除了安装teamviewer等商用软件外,其实还可以通过ssh反向隧道连接,依赖是一个公网IP的服务器。我们举例家里有一台电脑A,有一个公网服务器B,然后希望在另外的地方通过电脑C连接电脑A。我们可以通过A主动连接到公网电脑B,然后通过公网电脑B建立一个端口转发,从而使得C可以通过公网电脑B访问电脑A。 具体步骤如下:
在电脑A上建立反向SSH隧道
ssh -p 10000 -R 2222:localhost:22 userB@ip_of_pcB
这里的参数解释如下:
在电脑C上通过公网服务器B转发数据
ssh -p 10000 -L 3333:localhost:2222 userB@ip_of_pcB
参数解释:
通过电脑C连接电脑A:
ssh -p 3333 userA@localhost
PS:如果服务器B开启了非对称密钥验证,那么步骤1和2需要通过-i选项选择本地的私钥,前提是已经把电脑A和C的ssh公钥拷贝到服务器B上
需要访问内网或者家里的PC等没有公网IP的电脑时,除了安装teamviewer等商用软件外,其实还可以通过ssh反向隧道连接,依赖是一个公网IP的服务器。我们举例家里有一台电脑A,有一个公网服务器B,然后希望在另外的地方通过电脑C连接电脑A。我们可以通过A主动连接到公网电脑B,然后通过公网电脑B建立一个端口转发,从而使得C可以通过公网电脑B访问电脑A。 具体步骤如下:
在电脑A上建立反向SSH隧道
这里的参数解释如下:
在电脑C上通过公网服务器B转发数据
参数解释:
通过电脑C连接电脑A:
PS:如果服务器B开启了非对称密钥验证,那么步骤1和2需要通过-i选项选择本地的私钥,前提是已经把电脑A和C的ssh公钥拷贝到服务器B上