|
本帖最后由 pgou 于 2020-9-9 20:32 编辑
感谢各位大佬对我家云的完善!现在有很多新的固件,防掉盘和风扇控制也已经相对稳定。希望我家云越来越好用!本帖系原创,转发请注明出处和作者。
- 更新日志:
- 2019.12.30 更新DDNS域名解析,支持2019-11-26Dnspod官方API更新
- 2019.11.29 更新首页导航适配,支持ipv6访问
- 2019.11.28 完成全文初稿
复制代码 一、前言
ipv6其实已经相当普及,只是我们还没有感受到它的优势!
之前用过群晖,发现ipv6实现内网穿透非常方便、稳定,而且手机4G和多数地区的宽带上网默认已经支持ipv6!
没有外网ip的环境下(很多运营商就是死活不给的),ipv6是最便捷的穿透方式,没有带宽损失,稳定高效。
宽带如何开启ipv6,可以查看光猫,lede、openwrt以及梅林的设置方式,这里不赘述,善用搜索就会有答案。
可以参考这个教程 https://koolshare.cn/thread-165156-1-1.html
需要检测自己的网络环境是否已经支持ipv6,访问这个地址http://test-ipv6.com/,如果能显示ipv6地址,证明就是可以的啦~
很多地方运营商没有封闭ipv6的80端口,但还是建议尽量不要用它!
二、设置支持环境
这里以Ride_Wind大,带Entware和omv的固件为例,其他固件都差不多的。
我测试的固件一般都默认支持ipv6,只要路由器开启了对应的服务,默认就能获取到地址
ssh下输入以下命令,就能查看已经获取的ip列表
- ip addr show eth0 | grep inet | awk '{ print $2; }' | sed 's/\/.*$//'
复制代码 如果看到XXXX:XXXX:XXXX:XXXX:XXXX:XXXX就是ipv6地址。
如果路由器设置无误,还是获取不到地址,可以查看armbian的设置
执行armbian-config,Network,Ipv6状态是否为Enable,如果不是,设置为Enable
三、开启Nginx支持
完成以上步骤,你可以在浏览器输入http://[XXXX:XXXX:XXXX:XXXX:XXXX:XXXX你的ipv6地址]/,注意有[ ],你会发现无法打开,哈哈。。。。
我就是在这里卡住的,能ping通但是无法访问。后来发现是Entware自带的Nginx没有开启ipv6支持。
我编译好了和原版配置相同,但支持ipv6的Nginx,请自行替换
链接: https://pan.baidu.com/s/1S94yxw4MOk9i4WsA0m_srw 提取码: 6pbh
下载并替换 /opt/sbin/nginx
修改网站配置文件/opt/etc/nginx/vhost
以navi.conf为例,在 listen 80; 下面添加 listen [::]:80 ipv6only=on;
修改之后是这样的
- listen 80;
- listen [::]:80 ipv6only=on;
复制代码 重启Nginx
- sudo /opt/sbin/nginx -s reload
复制代码 好了,现在打开http://[XXXX:XXXX:XXXX:XXXX:XXXX:XXXX你的ipv6地址]/ 就能看到导航菜单了!
剩下的网站配置文件修改都一样,根据需要自行操作就好
特别说明:ipv6地址在浏览器打开的话,不能直接输入,需要加[ ],例如 [IPV6地址]
如果需要访问特定的端口,地址栏输入 [IPV6地址]:端口 ,例如 [IPV6地址]:88
外网访问,参见https://koolshare.cn/thread-165156-1-1.html
普及一下基础知识
fe80开头就像169.254.x.x,是这个网段里没人给你分ip,自动协商的地址,其地址不能在网络上路由,也就是说,通常无法用于上网
现在各大运营商用的ipv6
电信是240e开头的(240e::/20)
移动是2409开头的(2409:8000::/20)
联通是2408开头的(2408:8000::/20)
其他一些标记有teredo也不是原生ipv6
原贴作者maybeonly
再次强调:很多地方运营商没有封闭ipv6的80端口,但还是建议尽量不要用它!
如果考虑到安全问题,执行ip addr show eth0,选择标注有“scope global temporary dynamic ”的全球临时动态地址
四、开启IPV6的DDNS域名解析
ip是动态的,还那么长,给它绑定个域名,设置自动更新,岂不完美
这里我就不细说了,详见https://blog.csdn.net/Imkiimki/article/details/83794355
我已经把配置好的,适合我家云使用的文件放在下面,大家可以直接下载使用:
2019.11.26Dnspod官方升级API接口,导致原作者脚本失效(其实问题不大,就是sed匹配失效了),正好自己也要用,顺手更新一下:链接:https://pan.baidu.com/s/1wnPO4sRihW3GQ6fd_cyioA 提取码:m2sl
ddnspod_wojiayun.sh(权限0755)和dns.conf放在同一目录下
dns.conf配置方式,详见
https://github.com/imki911/ArDNSPod
https://blog.csdn.net/Imkiimki/article/details/83794355
阿里云也有相对应的,原理一样,有需要自己找吧。
执行ddnspod_wojiayun.sh就能自动更新域名解析啦,建议设置为开机启动以及每3小时执行一次,临时ip有效期12个小时(至少我的lede是这样),短于这个时间都可以。
五、首页导航适配
Ride_Wind大上图样子的导航(其他的没试,原理一样),对ipv6的支持有点小问题,导致有些功能的地址识别不出来(比如控制台),修改的办法也很简单- 修改/opt/wwwroot/navi/index.php
- 把所有 <?php echo $IP;?>
- 都替换为 <?php echo $URL;?>
复制代码
至此我家云IPV6适配基本完毕。
如果第一次使用ipv6,可能会有点晕,没关系,我也是这么过来的,跟着步骤按部就班做一遍,看到实际效果就慢慢明白了。
文章很长,是因为我尽量把原理都讲了,也是大家学习了解ipv6的机会。ipv6终归是大趋势,迟早要接触的,更何况它在内网穿透方面有着先天的优势。
所有设置都在我本机测试通过,才疏学浅难免有所疏漏,大家尽可批评指正,相互交流学习。
上述所有的修改都同时兼容了ipv4和ipv6,如果各位做固件的大神觉得没问题,希望能直接集成到固件里,这样后来的人就不用一步一步修改各种配置和文件啦~
六、有待完善的细节(小白略过)
自己对Nginx编译并不熟悉,编译出来的文件虽然能用,但是大很多,有6487KB,原来的只有967KB,希望有大牛可以出面优化一下,我把配置信息贴在下面,供参考:默认nginx版本为1.16.1 执行 /opt/sbin/nginx -V 查看默认配置信息,发不上来,有需要下载看吧
链接: https://pan.baidu.com/s/12qjwg2chEOaGrpKPto2EfQ 提取码: wp57
- 由于没有Entware 编译环境,直接在我家云搭建的编译环境,保留主要配置信息
- 只是增加了ipv6的支持--with-ipv6
- ./configure --crossbuild=Linux::aarch64 --with-cc=aarch64-linux-gnu-gcc --prefix=/opt --conf-path=/opt/etc/nginx/nginx.conf --http-log-path=/opt/var/log/nginx/access.log --error-log-path=/opt/var/log/nginx/error.log --lock-path=/opt/var/lock/nginx.lock --pid-path=/opt/var/run/nginx.pid --modules-path=/opt/lib/nginx --http-client-body-temp-path=/opt/var/lib/nginx/body --http-fastcgi-temp-path=/opt/var/lib/nginx/fastcgi --http-proxy-temp-path=/opt/var/lib/nginx/proxy --http-scgi-temp-path=/opt/var/lib/nginx/scgi --http-uwsgi-temp-path=/opt/var/lib/nginx/uwsgi --with-debug --with-pcre-jit --with-ipv6 --with-http_ssl_module --with-http_stub_status_module --with-http_realip_module --with-http_auth_request_module --with-http_v2_module --with-http_dav_module --with-http_slice_module --without-http_upstream_zone_module --without-stream_upstream_zone_module --with-http_addition_module --with-http_flv_module --with-http_gunzip_module --with-http_gzip_static_module --with-http_image_filter_module=dynamic --with-http_mp4_module --with-http_random_index_module --with-http_secure_link_module --with-http_sub_module --with-http_xslt_module=dynamic --with-mail=dynamic --with-mail_ssl_module --with-stream=dynamic --with-stream_ssl_module
- 安装了以下依赖包
- sudo apt-get install mlton-runtime-aarch64-linux-gnu
- sudo apt-get install qemu-system-arm
- sudo apt-get install openssl libssl-dev
- sudo apt-get install libpcre3 libpcre3-dev
- sudo apt-get install zlib1g-dev
- sudo apt-get install libxml2 libxml2-dev
- sudo apt-get install libxslt-dev
- sudo apt-get install libgeoip-dev
- sudo apt-get install libgd2-xpm libgd-dev
- sudo apt-get install libgd2-dev libgd-dev
- 参考资料
- https://blog.csdn.net/huangbaokang/article/details/94594797
- https://www.jb51.net/article/152016.htm
- https://blog.csdn.net/sqlquan/article/details/101165993
- 对作者表示感谢!
- Entware环境信息:
- 配置目录
- /opt/etc/nginx
- 站点配置
- /opt/etc/nginx/vhost
- 执行文件
- /opt/sbin/nginx
复制代码
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
×
评分
-
查看全部评分
|