解决连接Aria2出现net::ERR_FAILED的问题

青山 2022-01-1409:57:05
评论
949字

在家里的华硕AC86U路由器上插了一个移动硬盘,并在梅林系统里安装了Aira2的插件,做了内网穿透,方便随时随地的下载资源到移动硬盘上,结果用了一段时间发现,Aria2连接不上了。使用的Aria2的web页面是AriaNG,打开浏览器审查工具,报错如下:

解决连接Aria2出现net::ERR_FAILED的问题
浏览器报错-未连接

排查过程

以为是Aria2插件的问题,排查配置了很多遍,没发现什么异常,甚至重装了一次插件,照样报错。然后怀疑是路由器防火墙问题,查看了下iptables也没啥毛病,改放通也放通了。在服务器上curl http://192.168.50.1:6800/jsonrpc也是有返回:

解决连接Aria2出现net::ERR_FAILED的问题
curl的返回

PS:因为服务器和路由器已经使用ZeroTier做了内网互通,所以服务器是可以直接访问家里路由器的内网IP的。

也在电脑上尝试了telnet 6800端口,没毛病,也是通的。

但偏偏就是浏览器上直接访问接口会报错,状态码是400:

解决连接Aria2出现net::ERR_FAILED的问题
400 Bad Request

发现异常

最后,还是在浏览器的审查工具上找到了原因,在审查工具的右上角,除了常见的显示[控制台]报错数量的红色提醒外,还有一个[警告]的红色提醒数,点开后就看到了“Ensure private network requests are made from secure contexts”:

解决连接Aria2出现net::ERR_FAILED的问题
找到问题原因

这么一大串的英文,说的就是使用http站点访问你本地的资源有很大的风险,你得用https来访问,为了降低风险,Chrome浏览器从92版本(2021年7月)就开始禁止这种请求,怪不得用着用着就嗝屁了。

解决问题

那么知道问题原因了,解决起来就简单了,要么按照Chrome立的规矩来,使用https,要么就关闭这种新特性。也懒得换https了,直接关闭Chrome该特性得了。

Chrome浏览器打开chrome://flags/#block-insecure-private-network-requests,打开后就是“Block insecure private network requests.”这一项,把它改成“disabled”关闭,再点右下角的“Relaunch”重新启动浏览器就生效了。

解决连接Aria2出现net::ERR_FAILED的问题
修改浏览器配置

这个问题困扰挺久的了,一直以为是服务端配置的问题,万万没想到问题出现在客户端,最后知道真相的眼泪。。。

匿名

发表评论

匿名网友 填写信息

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: