将树莓派连接到公网

连接公网

要想把运行在本地的树莓派连接到公网访问,通常有两种方式。

公网IP+DDNS

首先要确认你的网络是通过宽带直连互联网,没有复杂的局域网环境,且拥有直连互联网的路由器/pc的权限。公网IP需要你的宽带运营商提供,这个IP仍然是动态的,即每次连接宽带,公网IP都会变化。如果需要一个稳定的入口则需要搭配域名和DDNS使用。

索要ip

宽带上网时,公网能看到的宽带运营商的IP地址(直接百度搜索“ip”即可查到自己的公网IP),是无法直接访问到你的计算机或者路由器的。可以理解为,公网IP和本地宽带入口之间还有一层路由信息,通过公网IP,外网的连接无法寻找到你的计算机。需要运营商给你的宽带一些特殊的配置。

电信宽带索要成功概率较大,不过不同地区也不太一样,比如我就要不到。但是我听一些朋友说,这也是有技巧的,不要直说,可以说_“家里安装监控,需要把网络改成桥接模式”_。

DDNS

外网可以访问到本地计算机了,但是想要从外网访问必须要记住经常变动的IP地址,十分不便。

DNS解析就是把 xxx.com这样的网址解析到 123.234.123.234这样的IP地址,更方便使用。DDNS即动态DNS,就是定时修改xxx.com所解析的地址,这样就不需要记住变更的IP了。

一般路由器都有这种功能,我使用过TP-LINK和小米路由器,在路由器管理界面都有DDNS的设置方式。还是建议使用TPLINK,tplink有官方提供的免费DDNS服务,小米只能设置网上第三方提供的服务,这些服务可能要注册额外账号,也可能要收费。

TPLINK为例,创建新域名后,你就会得到一个 这样的域名 xxx.tpddns.cn,你可以把它映射到树莓派的内网IP上,通过xxx.tpddns.cn域名访问到路由器的流量都会被发送到树莓派上,树莓派上的服务就可以在公网访问了。

内网穿透

公网IP+DDNS是最好的解决方案,但是宽带公网IP有时候很难获取。内网穿透也是一种解决方案。

服务提供商

花生壳应该是国内最著名的内网穿透服务的提供商了,如果你需要稳定的外网访问,可以考虑,不过既然都是玩树莓派了,一般不是这样的需求。花生壳免费版限制较多,收费版性价比不高。

国外的 ngrok 不错,推荐使用它的免费版,收费版不推荐,容易被墙,费用稍贵于国内服务(但一个收费账号可以同时使用多个通道),最重要的是不支持微信支付宝付款。免费版不支持自定义域名,且ngrok提供的域名会定期更换,不太方便。

国内推荐 sunny-ngroksakura frp。国内不推荐免费版,首先收费很便宜,一般1个通道<=10元一个月,有时候搞活动还会打折。同时国内的白嫖党太多了,免费服务器用户太多很不稳定。

注意内网穿透很多都是按通道计费的,如你需要一个ssh和一个web服务那就要两个隧道,以此类推。如果追求稳定,就不建议免费版。 所以公网IP+DDNS的方式还是最好的。

自己搭建服务

如果你有云服务器,可以自己搭建ngrok或者frp服务,自行搜索教程。由于云服务器通常价格较高,可以买低配服务器搭建内网穿透连接运行在本地的主机。如果是搭建云存储类的,建议流量付费,固定带宽速度太慢,可以考虑外网VPS,更加划算,还可以用于某些科学用途。如果是游戏服务器之类的,建议固定带宽,使用国内服务商延时低。

注册域名

最后建议注册一个域名,当然这不是必须的。内网穿透或者DDNS提供的域名,通常不可选择。想要更加方便灵活,就可以自己注册域名。配置DNS CNAME类型,把自定义的域名记录到例如上述的xxx.tpddns.cn,这样就可以通过自己的网址来访问自己的服务了。

可选国内如阿里云腾讯云,或者国外,国内需要备案,比较慢且麻烦,国外容易被封不稳定。部分国外域名提供商不支持国内付款方式,还是推荐国内的。域名费用通常不贵,一年价格特别便宜(相当于促销吧),比如.top .site 等后缀的域名一年费用甚至小于10元,尝鲜建议注册一年。如果要注册更长时间,建议一次性5年性价比较高,便宜的域名5年价格在100元多一点,相当划算。