使用树莓派搭建ngrok服务器,实现远程访问 (树莓派ngrok服务器)

提到远程访问,相信很多人都会想到VPN或者SSH这些技术。但是,这些技术都需要进行许多繁琐的设置,对于新手来说还是有些难度的。不过,有没有一个简单的解决方案呢?今天,我们就来介绍一下的方法。

一、关于ngrok

ngrok是一款简单易用的反向代理工具,可以将本地网络穿透到公网,从而实现远程访问。ngrok支持多种操作系统和开发语言,比较流行的语言有Java、Python、Node.js和Go等。

ngrok的原理比较简单,其主要是实现了一个反向代理,将外部请求转发到你本地的网络上。具体的讲解,在这里就不再详细阐述。

二、准备工作

在开始搭建ngrok服务器之前,我们需要进行一些准备工作。具体如下:

1. 树莓派一台

2. ngrok账号注册

在使用ngrok之前,我们需要先注册一个账号。在官网上进行注册即可。注册完成后,你将得到一个authtoken,这将被用于启动ngrok。

3. 安装ngrok

在树莓派上安装ngrok非常简单,只需要在终端中输入以下命令即可:

“`

wget https://bin.equinox.io/c/xKQZKTDHziA/ngrok-stable-linux-arm.zip

unzip ngrok-stable-linux-arm.zip

“`

解压完成之后,你就可以将ngrok移动到/usr/local/bin目录下:

“`

sudo mv ngrok /usr/local/bin/

“`

4. 配置端口映射

如果你想让外部通过ngrok访问树莓派上的某个应用,你需要先将树莓派上的应用端口映射到ngrok中。在这里,我们以Tomcat为例进行说明。

假设你要将Tomcat的8080端口映射到ngrok中,可以在终端中输入以下命令:

“`

ngrok http 8080

“`

此时,ngrok会自动将Tomcat的8080端口映射到一个随机端口上(例如1234),并生成一个对应的URL,你可以通过这个URL来访问Tomcat应用程序。当然,你也可以手动将ngrok映射到自己想要的端口。

5. 启动ngrok

在完成上述准备工作之后,我们就可以开始启动ngrok了。在终端中输入以下命令:

“`

ngrok authtoken

ngrok http 8080

“`

其中,需要替换为你自己的authtoken。启动完成后,你会看到类似下面这样的输出:

“`

ngrok by @inconshreveable

Session Status online

Account x (Plan: Free)

Version x.x.x

Web Interface http://127.0.0.1:4040

Forwarding http://.ngrok.io -> http://localhost:8080

Forwarding https://.ngrok.io -> http://localhost:8080

Connections ttl opn rt1 rt5 p50 p90

0 0 0.00 0.00 0.00 0.00

“`

此时,你就可以通过ngrok的URL来访问Tomcat应用程序了。例如,你可以在浏览器中输入http://.ngrok.io来访问Tomcat的应用程序。

三、

通过本文的介绍,我们可以发现,利用树莓派搭建ngrok服务器非常简单,只需进行简单的配置就可以实现远程访问。这种方法的好处是操作简单,适用于大多数用户,而且不需要进行太多的设置,非常适合新手使用。同时,ngrok还支持多种语言和多种操作系统,可以满足不同的需求。

相关问题拓展阅读:

为树莓派添加he的ipv6隧道

这次安装he隧道的过程真的是充满了艰辛,来来折腾了好几天,各种查资料和发邮件发帖求教,相当心累了。

先大概说下我对he隧道的理解吧,这是一个6in4的协议,即把ipv6数据包封装在ipv4包里进行通信。流程简述如下:

要完成这个过程需要以下几个地址都是可访问的:

至于最后客户端的ipv6地址,用途是给外网的ipv6服务器做身份标识,比如在test-ipv6.com的测试中,展示的本机ipv6地址就是这个client ipv6 address。

说完大致的原理,来看下给树莓派创建he隧道的过程。

先保证自己有一个可ping通的公网ip,详情可以咨询自己的运营商。

登录he的官网: tunnelbroker.net,注册账号啥的就不说了,直接点击创建隧道,这里有两种,我们选之一个regular tunnel就可以了。然后是填公网ip和服务器地址,事先可以测试一下各个服务器的延迟,具体教程很多这里就不重复了。

然后是重点:隧道创建完成后一定要先确认server ipv6 address是外网可Ping通的,不然结局就是我们本地可以发送ipv6数据到服务器,但是收不到任何响应,因为服务器的ipv6不通就表示外网的服务进不来。

推荐一个测试网站:

这里以ipv6.google.com为例,把自己的server ipv6 address输进去点击Ping now之后就能看到结果,基本和普通的ping测试没啥区别。

如果自己的server ipv6 address没法ping通,要么发帆铅邮件到he的开发团队让他们帮忙看,要么自己再向运营商换个公网ip然后重新创建个tunnel,不过一般重启下光猫就能有个新的公网ip了。

我的光猫只给了一个千兆口和一个百兆口,但家里的设备较多,又想让它们都能用满我200M宽带的全部带宽,就接了一个千兆路由器。但这里要注意的是,he隧道虽然可以支持nat穿透,但为了避免麻烦,更好只有一层穿透,即内网帆弯都在同一个网关后面,这就需要把光猫出来的网线插到路由器的LAN口,让路由器只充当一个交换机的角色。

所以我的网络连接就是,光猫通过光纤接外网,把千兆LAN口接到路由器的LAN口上,其他所有的设备都接到路由器上,不管有线还是无线(有线当然也只能接路由器的LAN口哈)。这个连接下,我所有的设备都同处一个网段,后期方便使用局域网的文件共享服务。

接着登陆光猫的管理界面,找到树莓派,复制其mac地址。

然后找到光猫对应的静态ip设置界面,将该mac地址与ip绑定。

当然设置静态ip的事也可以通过树莓派自身来完成,不过我觉得相比而言更麻烦一点,就直接在光猫统一管理了。

补充一点,如果光猫有IPV6 DHCP服务,更好让其处于默认状态,不确定的设置前可以先重置一下光猫。我之前不小心设置了一下忘了还原,就也一直连接不上。

在局域网内,用其他电脑ssh登录进树莓派,当然如果你的树莓派本身也接了显示器键鼠啥的用它自己也行。

在tunnelbroker的页面,打开刚刚创建的tunnel,在example configurations里选择Debian/Ubuntu,然后复制里面的内容。(假设里用的就是树莓派的默认系统raspbian)

编态轿闷辑树莓派的/etc/network/interfaces文件,把刚刚复制的内容粘贴进去,同时把local后面的地址改成内网刚刚配的静态ip。

我的配置文件如下,已隐去ipv6地址,实际中替换为自己的真实地址即可

保存文件,重启网络,可以用命令 sudo system networking restart,当然也可以直接重启树莓派。

重启之后用ifconfig看看,如果有he-ipv6这个隧道就说明创建成功了。

最直接的方式就是用ping6这个命令看看通不通。

然后可以用第1步提到的测试网站看看自己的client ipv6 address能不能通,以保证在之后的访问中其他网站的服务器可以识别自己的身份。

如果上面没有ping通的话,可以再用ifconifg看看各个接口的信息,注意he-ipv6那部分,有两个重要字段,即RX packets 和 TX packets,下面简称RX和TX。

一般现代的操作系统不管是树莓派、路由器、还是光猫,它们都是支持ipv6的,包括这种6in4协议,如果发现自己连不通可以试试重装系统,恢复出厂设置等方式。

由于ipv6是公网地址,直接暴露在网上还是挺危险的,可以考虑加一些防火墙,详情可以参考其他的文章。

关于树莓派ngrok服务器的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。


数据运维技术 » 使用树莓派搭建ngrok服务器,实现远程访问 (树莓派ngrok服务器)