本篇文章将介绍内网穿透的几种方法,并记录通过frp实现树莓派利用阿里云主机内网穿透的过程,同时还会介绍有关阿里云主机的选购方案。如有错误,还望各位看官及时指出。
系列文章:
- 树莓派选购及初步配置
- 树莓派上部署LAMP
- 树莓派+阿里云+frp
- Apache实现二级域名及实现https
- 树莓派搭建Nextcloud
- 树莓派搭建Calibre-Web实现电子书管理+Nextcloud同步
树莓派有了LAMP,已经可以承担起服务器的工作,如果你只打算做家庭服务器的话,本篇文章完全没有必要,但如果想要在外面也能了连到家里内网中的树莓派服务器,就需要完成这样一个工作:内网穿透。
内网穿透有很多种方法,这里主要说以下三种:
- 如果家里有公网IP的话,可以用路由器做映射,进而实现内网穿透;
- natapp、ngrok等商业化或非商业化内网穿透工具,用的其实是人家的公网IP;
- 买云主机服务器以获得公网IP
这三种方法有一个共性就是,要想在公网访问到树莓派,必须要有一个公网的IP,而在这三种方法里,最省钱的无疑是第一种,操作也很简单,最多需要做个动态解析。唯一的问题在于,你很可能没有公网IP,那就无法使用第一种方法了。
路由器映射
IP地址其实就是连入互联网的设备在网络上的唯一标识,我们目前用的最多的还是IPv4,可能是由于IPv4地址资源很紧缺,所以不会真正的给每个设备分配一个IP地址。解决方案是,给一群设备分配一个IP地址,这些设备组成一个内网,共用一个公网IP,而这些设备本身拥有一个内网IP,通过内网IP在内网中进行区分,但实际上在公网上它们的IP地址都是一样的。
有些网络运营商会将一个很大的局域网里的一个内网地址分配到你家,而家里的设备又构成一个更小的局域网,再分配内网的内网的IP。总而言之,如果是这种情况,你是没有公网IP的,你可以想办法问运营商要一个,但能不能要到也不一定。那样的话,可以考虑其他两种方法。
如何判断你是否拥有公网IP呢,你可以登录路由器查看路由器的IP,一般10,192,172开头的都是内网。另外,还可以去网上搜IP地址,直接看自己在互联网上的IP是不是和路由器显示的相同,如果相同,那说明你的IP是公网IP,反之则为内网。
关于路由器映射这种方法需要根据路由器的品牌型号以及具体情况具体设计方案,并且由于笔者家里没有公网IP……呃,总之就是这种方法没有试过,所以下面主要介绍其他两种。
使用Nrgok进行内网穿透
有一种比较强大的免费内网穿透工具:Nrgok,但它的速度可能不太好。并且其域名隔一段时间会发生变化,有点不太友好。还有很多基于Nrgok的工具,比如Natapp,ittun等,这些产品我基本都试用过,它们有一个共性,就是如果它是免费的,那不是动态域名,就是流量限制,或是速度较慢。拿来做测试还好,但如果是做长期运行的服务器,还是不太行,所以放弃白瞟的想法吧。
这里推荐Na