概述:本文介绍了OpenWrt上的uhttpd程序在IPv6网络下的配置方法,针对IPv6下无法正常访问,但IPv4下却可以访问的问题,通过修改默认的配置文件,对其进行了解决
什么是uhttpd?
其实,它是OpenWrt上Luci界面默认使用的HTTP后端程序,有点类似于著名的反代程序——nginx。
uhttpd配置比较简单,虽然性能不及nginx(好像其它也没有比得上nginx的…),但它的使用场景对于性能要求不高,因此它作为默认的Server后端,但在IPv6下,对它的使用遇到了一些困难,下面让我们来详细分析一下。
需要准备的工具:WinSCP(或其它能访问OpenWrt文件的程序)、SSH(自带的WebShall或者Putty也可以)
首先来到网络—防火墙,在这里,只需要把图中红色方框处的选项(即wan区域入站策略)改为“接受”后保存并应用即可
转到网络—接口,在这里,如果你已经获取到了IPv6的PD前缀,那么LAN上就应该会有可分配的全局路由前缀与地址,图中LAN上的IPv6地址与我们通常访问路由器的地址“192.168.0.1”并列,因此我们可以知道,这个地址在这里的作用就是类似于访问路由器的内网地址(只不过在这里直接用了全局公网地址),访问上面的IPv6地址就可以打开路由器的管理界面(注意IPv6地址应包含在一对英文方括号“[]”中,浏览器才能够打开),当然,事情并不总是这么简单….
访问失败,连接被拒绝。
我们可能会想,明明开放了防火墙,内网IPv4可以访问的Luci 界面怎么到了IPv6就不好使了呢?
对于这个问题,经过多次上网查阅资料,最终在uhttpd的配置文件中找到了答案。
接下来我们转到uhttpd的配置文件,路径为“/etc/config/uhttpd”
打开文件,看到这里,想必熟悉Linux配置文件的同学应该可以看出问题所在了,在文件中,我们可以看到留给IPv6使用的监听端口[::]:80前面用“#”进行了注释处理,也就是说,这一行配置不起作用,uhttpd只监听了IPv4的80端口,因此从外界传入路由器IPv6上80端口的数据包找不到对应的处理程序,只能被路由器丢弃,因此才会出现了前面“连接被拒绝”的情况
当热,在这里,我们还需要排除运营商(ISP)禁用了443、80等常用端口的可能性:我们可以将图中默认的端口进行更改,如设置为8888、6666等,随后再进行访问
经过测试,在此处,运营商并没有禁用这些端口,因此无需进行修改
因此,解决方法也比较简单:删除图中两处红框处的“#”号 ,并点击“保存”按钮即可
接下来登录SSH,方法不再赘述,成功登录后执行重启uhttpd的命令
/etc/init.d/uhttpd restart
即可
现在,我们可以在内、外网通过IPv6访问路由器后台了~
————————————————
版权声明:本文为CSDN博主「123-wqy」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weixin_43593122/article/details/95766357
转载请注明:七维网络 » IPv6之远程管理路由器-OpenWrt