尝试在树莓派上做一个openwrt,通过公网访问内网的服务(nas、web、usb printer、bt云盘等离线下载。。。)
–2020.8.1.update
尝试了各种方式编译openwrt后,发现只需要在对应平台上编译其插件即可,无需在make menuconfig中的选项海洋中挣扎。最后选择了https://github.com/SuLingGG/OpenWrt-Rpi基于官方版本的编译镜像
完成:
1、wifi热点 2、内网穿透 3、百度网盘离线 4、KMS激活 5、你懂的
总结:
1、编译oepnwrt花了很多时间,尝试了3种编译方式:
1.1、本地编译,在本地ubuntu中进行编译。优点:廉价,速度快;缺点:代码源和更新源默认国外,速度很慢且不稳定,需要扶墙。
1.2、远程编译,在谷歌云上的vps中进行编译。优点:访问代码源和更新源速度惊人;缺点:编译时间长,且需要ssh保持连接,但是ssh又太稳定,需要扶墙。
1.3、在线编译,配置github在线编译功能,真的很强大,唯一的缺点是配置比较麻烦,需要一些时间学习–至今我也没有配置成功:(–。
2、配置openwrt的过程踩了几个小坑:
2.1、wan口配置成dhcp client(希望在各种环境中实现热拔插),未知原因的无法访问互联网,改成静态地址就可以。怀疑是获取ip地址的时候没有正确获取网关地址,至今未解。
2.2、wifi热点设置的时候,用802.11N模式,所有设备均搜索不到热点,必须用legency模式,并不是所有设备都是老设备,至今未解。
2.3、尝试了ddns之后才发现没有公网ip。以前adsl时代,电信的pppoe是有公网ip的,只不过是动态分配而已,现在光纤接入,是内网ip,所以ddns不适用。
用frp内网穿透(需要在公网上养一台服务器做转发),参考教程:https://github.com/fatedier/frp/blob/master/README_zh.md
2.4、做内网穿透的时候,所有端口都可以正常访问到,唯一web有问题,firefox、chrome和edge都提示ERR_UNSAFE_PORT。由于做的端口映射,所以外网访问内网的web,在浏览器地址栏内是http://xxx.xxx.com:6000,外部端口号映射到内网的80端口,所以浏览器会给出不安全的端口错误。将非标准web端口配置到浏览器内,以firefox为例:about:config->新建String类型项network.security.ports.banned.override,值为6000
计划:
1、在树莓派上做一个php+mysql站点,用作本站点的同步备份。然后在后面拖一个nas,做私有云盘。 2、用树莓派做一个wifi mesh,用于无线信号范围扩展 3、加一个摄像头监控
–2020.7.8.update
触雷:
1、不要用root权限编译(不要sudo,否则由于权限问题编译失败) 2、一定要加梯子,否则由于curl下载失败导致编译失败,即使加了梯子,也不知道中国电信(小区内因修宽带断网已经搞了好几次了)抽的是什么风,境外ping值奇高,很像被ddos的感觉。无奈在谷歌云上创建了一台ubuntu 18.4 lts,在它上面编译顺利多了(虽然前端无需梯子,但本地网络还是需要稳定) 3、make menuconfig的时候,最后全部配置好了save的时候一定是.config,编译过程默认加载.config。可以save一个备份(如a.config),加载备份的a.config最后save的时候还是需要save到.config中,否则按全部默认选项编译 4、编译错误,由于make命令的V=s参数会输出详细的编译信息,所以出错后可以依据输出的线索查找解决办法 5、root分区太小(20G)导致磁盘空间不足,编译完占用的磁盘空间21G,在menuconfig中选择的配置项越多占用的磁盘空间越多(猜测),创建虚拟机的时候,磁盘空间给大一点(64G)
–2020.6.30.update
主要工作即为raspberry编译openwrt(也可以下载编译好的发布版),我选择编译,因为一直以来玩的都是别人的openwrt,这回想自己试试。
思路:
1、在windows10上用vmware做一个Ubuntu 18.04.4 LTS的虚拟机,用作编译环境(2020.7.8.update:用谷歌云上的虚拟机进行编译更方便,除了谷歌云的控制台需要梯子访问,虚拟机本身是不需要梯子的,直接ssh上去就可以)。 2、在ubuntu上做一个全局代理(Privoxy)为了编译过程稳定不中断(由于你懂的原因,诸如apt, git, wget, curl等在访问一个国外源的时候,有可能无法访问),前端需要一个梯子(流行的s、r、t都可以) 3、下载源码,配置参数,编译。