关键词: 树莓派 Raspberry 4G LTE 华为 Huawei ME909 移远 EC20 公网服务器 远程连接 远程SSH MobaXterm 内网穿透
    概述:树莓派是一个稳定成熟性价比合理且受创客喜爱的计算平台,在实际应用中有一个比较典型的远程控制需求,只要树莓派能上网,那么可以通过各种方法来进行远程控制,比如MQTT、发送邮件、FTP、远程SSH等。今天我们要演示的是远程SSH连接的方案。
    所需硬件平台:
    1,安装了raspbian完整系统的树莓派平台,理论上全系树莓派都可支持,已经在树莓派zero和4B上验证通过;
    2,公网服务器,最好是运行Ubuntu系统,这样无需额外配置即可使用SSH。公网服务器的搭建这里不再赘述,可以购买阿里云或者腾讯云的最低配虚拟主机;
    树莓派平台可以通过有线网络、WiFi、4G模块等方式连接入网。对于通过路由器拨号上网的网络环境,不管是用有线网络还是用WiFi网络接入,一般都可以通过设置路由器端口映射进行访问(采用光猫拨号的一般没法映射,如果您有好方法请分享给我们,谢谢),也可以通过本文的方式进行远程SSH连接访问;对于4G LTE方式联网的树莓派,因为运营商分配的并不是可以在公网访问的IP地址,所以只能通过服务器进行中转,也就是本文演示的方法。
    本文采用的硬件平台是:
    1,树莓派zero,不带WiFi的纯zero版本,便宜,约70RMB;
    2,为zero设计的底板,有USB转以太网,3个USB口。底板有USB Type-C接口,可以通过此接口给整个系统供电,也可以通过树莓派zero上的供电MicroUSB口对整个系统供电,由于要在底板USB口上连接4G模块,所以我们建议用底板的USB Type-C接口进行供电;
    3,带外壳的USB 4G LTE模块,测试采用电信卡。
    基于4G LTE模块的树莓派远程SSH连接方案(内网穿透) - 图1
    基于4G LTE模块的树莓派远程SSH连接方案(内网穿透) - 图2
    硬件平台搭建完毕后,确保公网服务器能访问(可以通过域名或者直接ip地址),确保树莓派能上网。服务器端需要开一个可供远程访问的账号,为了安全起见,建议控制一下该账号的权限。
    接下来进行配置:
    1,PC端使用mobaxterm以服务器端的账号信息远程登陆公网服务器;
    2,在树莓派端开启一个命令行控制终端,输入以下命令:
    ssh -p 22 -NR xxx.xxx.xxx.xxx:9091:localhost:22 AcountName@xxx.xxx.xxx.xxx
    注意:AcountName请用公网服务器的账户名替换,xxx.xxx.xxx.xxx请用公网ip替换,当然如果有域名就以域名替换。在输入该命令后会提示输入密码;
    3,回到步骤1的PC端mobaxterm窗口,输入以下命令:
    ssh -CNL “*:9092:localhost:9091” AcountName@localhost
    注意:AcountName请用公网服务器的账户名替换,同样会提示输入密码;
    4,在PC端,再开一个mobaxterm的ssh连接,目标地址填公网服务器,端口是9092,用户名是pi(即树莓派默认的用户名,如果树莓派上有改动,请同步修改)。
    提示登录时,输入raspberry 这个密码,也就是树莓派上pi用户的密码,如果树莓派上的用户名和密码有改动,请同步修改。
    这样就可以完成内网穿透,从公网登录到pi板子上。
    这是即可像本地SSH连接一样查看树莓派上的运行信息、管理文件、运行程序等。下面截图是远程ping包,以确认树莓派是以4G网络连接的。
    基于4G LTE模块的树莓派远程SSH连接方案(内网穿透) - 图3
    我们总结一下:
    步骤1和步骤3用于从本地连接到公网服务器并进行配置;
    步骤2用于树莓派连接服务器并建立转发通道;
    步骤4用于本地连接公网服务器的并建立转发通道。
    完成步骤1-3后,即可在任意一台可以上网的PC上进行SSH远程控制连接到目标树莓派。
    总的流程是:远程的树莓派和本地PC都连接到公网服务器,公网服务器负责在两者之间转发数据。因为SSH的数据流量本身就比较小,所以对服务器的需求很低,最低配的硬件和带宽即可满足多个设备的同时接入。多个pi接入时只需要更换一下端口即可。
    如果对虚拟主机不熟悉,我们可提供代为配置的服务,最低配虚拟主机的费用一年仅一两百元即可,对于有远程SSH控制需求的用户还是可以承受的。只要设备不同时远程控制,那么一个最低配的虚拟主机连接几十台树莓派也毫无压力。
    补充说明一下,Mobaxterm功能非常强大,通过SSH连接上远程树莓派之后,可以进行文件列表浏览、拖拽方式复制文件(从本地到远程树莓派或者从树莓派到本地,速度取决于网速)。
    基于4G LTE模块的树莓派远程SSH连接方案(内网穿透) - 图4
    树莓配通过电信4G连接,测试用的公网服务器采用最低配,带宽1Mbps,实际拖拽文件的速度和带宽基本吻合。4G LTE模块的电信速度在30-50Mbps,如果公网服务器带宽选的更大一点就可以进一步提升文件同步速度。
    另外,还可以在Mobaxterm下安装x11的app:
    sudo apt-get install x11-apps
    然后启动:
    xcalc
    就可以看到透过mobaxterm的x server功能,xcalc启动到了本地的pc界面里。
    也可以运行如下命令,启动浏览器:
    chromium-browser
    不过由于RPi0的性能比较弱,启动时间需要2-3分钟,而且受限于网速,页面刷新也很慢。
    基于4G LTE模块的树莓派远程SSH连接方案(内网穿透) - 图5