嘗試在樹莓派上做一個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、下载源码,配置参数,编译。

發表回復