找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
广告投放联系QQ68610888
查看: 30765|回复: 65

【教程】【更新】我家云/粒子云 开启ipv6支持 实现内网穿透

  [复制链接]
发表于 2019-11-28 22:37 | 显示全部楼层 |阅读模式
本帖最后由 pgou 于 2020-9-9 20:32 编辑

感谢各位大佬对我家云的完善!现在有很多新的固件,防掉盘和风扇控制也已经相对稳定。希望我家云越来越好用!本帖系原创,转发请注明出处和作者。
  1. 更新日志:
  2. 2019.12.30 更新DDNS域名解析,支持2019-11-26Dnspod官方API更新
  3. 2019.11.29 更新首页导航适配,支持ipv6访问
  4. 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列表

  1. 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;
修改之后是这样的
  1. listen 80;
  2. listen [::]:80 ipv6only=on;
复制代码
重启Nginx
  1. 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的支持有点小问题,导致有些功能的地址识别不出来(比如控制台),修改的办法也很简单
  1. 修改/opt/wwwroot/navi/index.php
  2. 把所有 <?php echo $IP;?>
  3. 都替换为 <?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
  1. 由于没有Entware 编译环境,直接在我家云搭建的编译环境,保留主要配置信息
  2. 只是增加了ipv6的支持--with-ipv6
  3. ./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

  4. 安装了以下依赖包
  5. sudo apt-get install mlton-runtime-aarch64-linux-gnu
  6. sudo apt-get install qemu-system-arm
  7. sudo apt-get install openssl libssl-dev
  8. sudo apt-get install libpcre3 libpcre3-dev
  9. sudo apt-get install zlib1g-dev
  10. sudo apt-get install libxml2 libxml2-dev
  11. sudo apt-get install libxslt-dev
  12. sudo apt-get install libgeoip-dev
  13. sudo apt-get install libgd2-xpm libgd-dev
  14. sudo apt-get install libgd2-dev libgd-dev

  15. 参考资料
  16. https://blog.csdn.net/huangbaokang/article/details/94594797
  17. https://www.jb51.net/article/152016.htm
  18. https://blog.csdn.net/sqlquan/article/details/101165993
  19. 对作者表示感谢!

  20. Entware环境信息:

  21. 配置目录
  22. /opt/etc/nginx

  23. 站点配置
  24. /opt/etc/nginx/vhost

  25. 执行文件
  26. /opt/sbin/nginx
复制代码





本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×

评分

参与人数 7恩山币 +7 收起 理由
2562733675 + 1 感谢你的分享,无论怎样,你都是最无私的人.
samhiang + 1 感谢你的分享,无论怎样,你都是最无私的人!来,说说,你E盘上还有啥一起给我吧!
ww6620075 + 1 编译文件Nginx 能补发一下吗 百度云失效了
miwuzhise + 1 感谢你的分享,无论怎样,你都是最无私的人!来,说说,你E盘上还有啥一起给我吧!
bobolbc + 1 正需要呢,先留着,再来研究,感谢
potoho + 1 很好!!!
繁华l落尽 + 1 强大的恩山!(以下重复1万次)

查看全部评分

我的恩山、我的无线 The best wifi forum is right here.
发表于 2019-11-29 12:59 | 显示全部楼层
本帖最后由 potoho 于 2019-11-29 15:23 编辑

请教下如果是导航栏里的控制台是ip加端口,怎么修改ipv6也直连?

点评

直连是对设备而言的,控制台一般是88端口,这么访问: http://:88  详情 回复 发表于 2019-11-29 19:53
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

 楼主| 发表于 2019-11-29 19:53 | 显示全部楼层
potoho 发表于 2019-11-29 12:59
请教下如果是导航栏里的控制台是ip加端口,怎么修改ipv6也直连?

直连是对设备而言的,控制台一般是88端口,这么访问:
http://[ipv6地址]:88
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

发表于 2019-12-1 23:53 | 显示全部楼层
感谢楼主 我想请问我使用的是小钢炮固件 设置时候跟armbian一样呢

点评

没用过小钢炮,linux的都大同小异吧,试试我正文里面的几个命令能不能正常执行  详情 回复 发表于 2019-12-2 20:51
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

发表于 2019-12-2 20:46 | 显示全部楼层
紫薯补丁。支持,学习一下
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

 楼主| 发表于 2019-12-2 20:51 来自手机 | 显示全部楼层
inreverie 发表于 2019-12-1 23:53
感谢楼主 我想请问我使用的是小钢炮固件 设置时候跟armbian一样呢

没用过小钢炮,linux的都大同小异吧,试试我正文里面的几个命令能不能正常执行
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

发表于 2019-12-2 22:02 | 显示全部楼层
按楼主的方法测试成功-即使用ipv6的地址访问到了同等于内网IP地址的管理界面。
但是对于域名解析那一段不是很理解没能实现。
目前路由K2刷的潘多拉,在wan6口上已经启用了dynv6的域名解析ipv6了,可以通过自己的域名直接访问到潘多拉的web管理界面。
使用dynv6的域名:88显示该页无法显示,是不是还要在我家云这个固件上再装一个ddns插件,来再解析nginx获取到的ipv6的地址?

点评

osn
参考这个,也是用的dynv6的。Linux中获取本机的最新IPv6地址_更新ddns的脚本  详情 回复 发表于 2019-12-5 11:50
osn
参考这个,Linux中获取本机的最新IPv6地址_更新ddns的脚本 https://www.cnblogs.com/osnosn/p/11813096.html  发表于 2019-12-5 11:48
是的,需要在我家云安装我帖子里提到的DDNS解析脚本。ipv6每个设备都有直达外网的ip,不用在路由解析。  详情 回复 发表于 2019-12-3 13:08
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

 楼主| 发表于 2019-12-3 13:08 来自手机 | 显示全部楼层
lvsea2008 发表于 2019-12-2 22:02
按楼主的方法测试成功-即使用ipv6的地址访问到了同等于内网IP地址的管理界面。
但是对于域名解析那一段不 ...

是的,需要在我家云安装我帖子里提到的DDNS解析脚本。ipv6每个设备都有直达外网的ip,不用在路由解析。

点评

阿里云的解析脚本按链接里群晖的外网ipv6访问加在OMV的计划任务里,运行后ipv6有了,但是电脑上内打开绑定的域名,在手机内外网都找不到  详情 回复 发表于 2019-12-29 12:20
谢谢!昨晚后来捣鼓号了,使用dynv6的脚本加入计划任务里定时解析! 但还有一问题,就是办公室一win8.1电脑,就是开启不了IPV6的访问,使用了几个开通ipv6的批处理都没用,本地连接的状态显示ipv6无网络访问权限这  详情 回复 发表于 2019-12-3 18:41
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

发表于 2019-12-3 16:56 | 显示全部楼层
支持折腾 学习怎么用 还没用上暂时
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

发表于 2019-12-3 18:41 | 显示全部楼层
pgou 发表于 2019-12-3 13:08
是的,需要在我家云安装我帖子里提到的DDNS解析脚本。ipv6每个设备都有直达外网的ip,不用在路由解析。

谢谢!昨晚后来捣鼓号了,使用dynv6的脚本加入计划任务里定时解析!
但还有一问题,就是办公室一win8.1电脑,就是开启不了IPV6的访问,使用了几个开通ipv6的批处理都没用,本地连接的状态显示ipv6无网络访问权限这样的标志,所以想要办公室电脑也能实现浏览家里ipv6解析的域名,楼主这有方法吗?

点评

本机功能上win8应该是支持的,主要看路由是否有ipv6服务,比较老旧的路由都没这功能,可以问问单位网络管理员。 再一个可以手机建热点使用。  详情 回复 发表于 2019-12-4 07:13
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

 楼主| 发表于 2019-12-4 07:13 来自手机 | 显示全部楼层
lvsea2008 发表于 2019-12-3 18:41
谢谢!昨晚后来捣鼓号了,使用dynv6的脚本加入计划任务里定时解析!
但还有一问题,就是办公室一win8.1 ...

本机功能上win8应该是支持的,主要看路由是否有ipv6服务,比较老旧的路由都没这功能,可以问问单位网络管理员。
再一个可以手机建热点使用。
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

发表于 2019-12-4 14:37 | 显示全部楼层
我的网络环境不是IP6的 ,谢谢
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

发表于 2019-12-5 11:50 | 显示全部楼层
lvsea2008 发表于 2019-12-2 22:02
按楼主的方法测试成功-即使用ipv6的地址访问到了同等于内网IP地址的管理界面。
但是对于域名解析那一段不 ...

参考这个,也是用的dynv6的。Linux中获取本机的最新IPv6地址_更新ddns的脚本
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

发表于 2019-12-7 19:28 | 显示全部楼层
感谢大佬解决了我的大问题
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

发表于 2019-12-7 20:00 | 显示全部楼层
大佬问下,按你的其他都可以了,就是这个seafile配置好内网没问题,外网域名+端口8000无法访问,求解

点评

直接用ip访问试试(24开头和f开头的都试试),一般ip能通过域名都没问题 http://:8000  详情 回复 发表于 2019-12-8 11:04
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

有疑问请添加管理员QQ86788181|手机版|小黑屋|Archiver|恩山无线论坛(常州市恩山计算机开发有限公司版权所有) ( 苏ICP备05084872号 )

GMT+8, 2024-3-29 08:34

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

| 江苏省互联网有害信息举报中心 举报信箱:js12377 | @jischina.com.cn 举报电话:025-88802724 本站不良内容举报信箱:68610888@qq.com 举报电话:0519-86695797

快速回复 返回顶部 返回列表