You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

Ubuntu 20.04下Firefox与Chrome浏览器无视gai.conf配置,如何设置优先使用IPv4?

Ubuntu 20.04下Firefox与Chrome浏览器无视gai.conf配置,如何设置优先使用IPv4?

我之前也碰到过一模一样的问题——终端里ping域名都是走IPv4,可浏览器偏偏固执地用IPv6,查了半天发现是因为现代浏览器大多自带独立的网络栈,根本不鸟系统的gai.conf配置。下面给你几个亲测有效的解决办法:

一、Chrome/Chromium 强制优先IPv4

Chrome系浏览器有专门的启动参数可以强制走IPv4,操作很简单:

  • 找到Chrome的桌面快捷方式,右键点击「属性」
  • 在「命令」输入框的末尾,加个空格后加上--force-ipv4参数
    比如原命令是/usr/bin/google-chrome-stable %U,修改后变成:
    /usr/bin/google-chrome-stable %U --force-ipv4
    
  • 保存设置后重启Chrome,之后它就会优先使用IPv4访问所有网站了

二、Firefox 调整网络偏好设置

Firefox需要通过内置的配置页面修改:

  • 打开Firefox,在地址栏输入about:config,点击「接受风险并继续」
  • 搜索network.dns.ipv4OnlyDomains
    • 如果找不到这个项,右键选择「新建」→「字符串」,名称就填network.dns.ipv4OnlyDomains
    • 把值设置为.(一个英文点),表示对所有域名优先使用IPv4;如果只想针对特定域名,就填逗号分隔的域名,比如google.com,github.com
  • 额外可以搜索network.preferIPv6,把它的值设为false,进一步强化IPv4优先的策略
  • 重启Firefox后生效

三、系统层面补充优化(可选)

如果上面的浏览器设置还不够保险,你可以调整系统的IPv6参数,让系统整体更倾向IPv4:

  • 编辑/etc/sysctl.conf文件,添加以下两行:
    net.ipv6.conf.default.prefered_lft = 0
    net.ipv6.conf.all.prefered_lft = 0
    
    这里不建议直接禁用IPv6(设net.ipv6.conf.all.disable_ipv6=1可能会导致部分依赖IPv6的服务异常),只是把IPv6的首选生存期设为0,让系统默认优先选IPv4
  • 执行sudo sysctl -p让配置立即生效

为啥gai.conf对浏览器没用?简单说就是Chrome、Firefox这类现代浏览器为了速度和隐私,都用了自己的DNS解析器和网络请求逻辑,不会调用系统的getaddrinfo()函数,所以系统层面的gai.conf自然就对它们失效啦。

备注:内容来源于stack exchange,提问作者OwN

火山引擎 最新活动