从外网访问局域网,反向代理+正向代理

需要设备

设备 IP 用户名 备注
树莓派 192.168.xxx.xxx pi 在局域网中,需在同一网段才可访问
服务器【阿里云】 47.100.xxx.xxx team 在公网中,任意设备可以通过IP访问
PC 可以直接访问服务器,无法直接访问树莓派

解决的问题

需要解决的问题是通过PC访问不在同一网段内的树莓派

首先PC是无法直接访问树莓派的,因为两个设备不在同一网段,但是树莓派和PC都可访问阿里云服务器,那么我们可以将阿里云服务器作为跳板,通过反向代理+正向代理的方法,使PC和树莓派实现间接访问。

解决方案

通过SSH的反向代理和正向代理,只需简单的三步就可实现外网访问局域网。

  1. 树莓派上做反向代理,使阿里云可以反向访问树莓派。
  2. 阿里云上做正向代理,用作本地端口转发,使公网IP映射到本地IP。
  3. PC通过SSH连接树莓派

环境需求

所有设备需安装SSH客户端(目前Windows,MAC,Linux系统一般都自带SSH客户端,如需安装可自行百度)

SSH参数解释

-f 后台运行
-C 允许压缩数据
-N 不执行任何命令
-R 将端口绑定到远程服务器,反向代理
-L 将端口绑定到本地客户端,正向代理

实际步骤

  1. 树莓派上操作,建立树莓派到阿里云的反向代理。

    port为阿里云服务器开放的端口【范围在4711~4811】

    $ ssh -fCNR port:localhost:22 [email protected]
    

    根据提示输入密码。

    完成阿里云与树莓派上的【port】端口与22端口绑定。

  2. 阿里云上操作,做这一步是因为绑定后的端口只支持本地访问,还不支持通过公网IP访问。

    $ ssh -fCNL "*:port:localhost:port" localhost
    

    根据提示输入密码。

    将公网IP映射到本地IP,现在可以通过公网访问树莓派了。

  3. 在PC上操作,使用SSH从PC间接访问到树莓派。

    用户名为树莓派用户名

    IP为阿里云服务器IP

    $ ssh -p port [email protected]
    

    根据提示输入密码。

    至此我们已经解决了PC访问不在同一网段内的树莓派的问题。

你可能感兴趣的:(从外网访问局域网,反向代理+正向代理)