由于大家都知道或者不知道的原因,如果你想在公司访问家里的电脑,或者是家里的私人服务器的话,就要掏大价钱来买专线才有固定的外网 IP。不然的话大部分地区是没有外网IP的。
如果树莓派放在家里,想从公司远程连接树莓派来上传或者下载什么东西的话就没有办法连接树莓派了。
但是,只要树莓派能上网,就难不倒我们天朝热情的玩家 。有一个词语是来专门形容这个的,叫 “内网穿透”,大概就是从外地能远程访问到在家里(内网)的树莓派,就是内网穿透技术。
内网穿透能实现的办法有很多种。今天介绍一下我现在树莓派上使用的 ngrok 。ngrok 是一个国外开源的项目。大致就是,使用一个有外网 ip 的服务器来作为中转站,实现内网穿透。
据体的一些技术细节就暂时不表,如果你刚好有一个服务器的话,可以自己搭建一个 ngrok 服务器,使用起来方便快捷。但是如果你恰好没有服务器的话,那这篇教程就适合你了。
在这里先介绍一个 ngrok 的网站,站长 @Gofunc 免费提供 ngrok 使用 http://www.ittun.com/ 不需要注册什么的,只需要下载软件后上传到树莓派,然后配置一下树莓派的 IP 地址就可以了。
首先访问 ittun.com 这个网站,下载树莓派需要的软件:
如上图所示,下载红线画的那个版本,是可以在树莓派上运行的。
下载后上传到树莓派,或者直接使用树莓派下载,都是可以的。
我这里把压缩包放在了桌面(主要是感觉桌面太空了,想要放点东西),大家可以按自己的喜好随便放,然后右键压缩包,提取文件到当前文件夹。运行完毕后打开终端管理器。
先进入到桌面文件夹:
cd Desktop/
然后查看一下文件夹。
pi@raspberrypi:~/Desktop $ ls linuxarm
这里可以看到文件夹是 linuxarm 接下来给文件夹添加权限,防止没有权限执行里面的文件(这里我们给的是 777 最高权限),执行完成后打开(cd)文件夹。
chmod -R 777 linuxarm/ cd linuxarm/
使用 nano 编辑 config.yml 文件(可以使用任何编辑器)。config.yml 是程序的配置文件,我们对他进行编辑后保存,然后运行软件就能实现内网穿透了。
nano config.yml
nano 编辑器是 Ctrl+o 回车 是写入文件,Ctrl+x 离开文件。文件打开后把里面的内容改成如下:
下面介绍一下这些分别都是干什么的
server_addr: "tcp.ittun.com:44433" // 这一句是必须要这么写,代表端口转发的服务器地址和端口。 tunnels: ssh: // 代表ssh登录树莓派 remote_port: 50924 // 远程ssh登录树莓派时要访问的端口 proto: tcp: ":22" // 这个代表服务器转发到树莓派的端口,如果是ssh就是22端口 desk: // 代表远程桌面 remote_port: 50724 // 这个是远程访问远程桌面要访问的端口 proto: // 如果是使 xrdp 来访问远程桌面的话树莓派就是 3389 的端口 //如果是使用 vnc 远程访问树莓派的话,这里就要填写 vnc 的远程端口。 tcp: ":3389"
如上,修改完成后保存关闭,在当前文件夹执行下面的语句来启动 ngrok :
./ngrok -config config.yml start ssh desk
运行后看到如下界面就是已经成功了
赶快试一下是否可以访问吧,使用 xrdp远程桌面访问应这样填写:
这样就可以登录进树莓派了。
ssh登录这样填写:
需要注意登录的时候端口号一定要和配置文件里设置的端口号相同,且只能设置大于 50000 的端口号。