You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Ubuntu中如何添加域名代理豁免?设置no_proxy后仍无法访问该怎么办?

在Ubuntu中配置域名代理豁免的完整解决方案(针对registry.npmjs.org无法连接的问题)

我来帮你排查这个问题——把域名加到/etc/environment的no_proxy后没生效是个挺常见的情况,咱们一步步来定位解决:

  • 先修正最容易踩的坑:URL格式错误
    你提到把https://registry.npmjs.org加到了no_proxy里,这是典型的错误!no_proxy配置项只需要填写域名或IP,不需要带协议前缀(http://或https://)。你得把它改成registry.npmjs.org,如果有多个豁免项,用逗号分隔(注意不要加空格)。

  • 让配置立刻生效
    修改/etc/environment后,系统不会自动加载新配置,你需要:

    1. 要么重新登录当前用户会话
    2. 要么在终端执行命令手动加载:source /etc/environment
      执行完后可以用echo $no_proxy验证,确认registry.npmjs.org已经在列表里。
  • 检查npm自身的代理配置(关键!)
    系统级的代理豁免有时候会被npm自己的配置覆盖,你得单独确认npm的代理设置:

    • 先查看当前npm的代理:npm config get proxy和npm config get https-proxy
    • 如果这两个命令返回了代理地址,那你需要给npm单独设置豁免:npm config set no-proxy registry.npmjs.org
    • 要是你根本不需要npm走代理,直接清除npm的代理配置更省心:
      npm config delete proxy
      npm config delete https-proxy
      
  • 排查是否有其他代理配置文件干扰
    Ubuntu里除了/etc/environment,还有不少地方能设置代理:

    • 个人用户的~/.bashrc、~/.bash_profile文件
    • /etc/profile.d/目录下的脚本文件
      这些地方的no_proxy配置会覆盖系统级的设置,你得打开这些文件检查,如果里面有no_proxy的定义,把registry.npmjs.org也加进去,然后执行source ~/.bashrc(对应文件)让修改生效。
  • 验证网络连接是否真的绕过了代理
    配置完后用curl测试最直观:curl -v https://registry.npmjs.org,看输出里的连接日志——如果看到* Connected to registry.npmjs.org (xxx.xxx.xxx.xxx) port 443,说明已经绕过代理;如果出现* Connected to your-proxy-server (xxx.xxx.xxx.xxx) port 8080,那说明豁免还是没生效,得回头检查前面的步骤。

  • 最后:刷新DNS缓存(可选)
    要是前面都做了还是不行,可能是DNS缓存导致的域名解析异常,执行sudo systemd-resolve --flush-caches刷新DNS(针对用systemd的Ubuntu版本,比如18.04及以后)。

内容的提问来源于stack exchange,提问作者Prem

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.19 10:44:17