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

NPM(v9.4.0)代理配置遇E407错误:密码含@字符的解决求助

解决NPM代理密码含@字符的认证问题

嘿,这个问题我之前踩过坑!密码里的@确实会把HTTP代理URL的解析逻辑搞乱——因为@在URL里是用来分隔「用户认证信息」和「代理地址」的标记,直接写的话npm会把@后面的部分当成密码的一部分,自然就无法正确连接代理服务器了。试试下面这些方法,应该能搞定:

方法一:用URL编码替换密码中的@

URL里的特殊字符需要转成编码格式,@对应的编码是%40。把你密码里的@换成%40,再重新设置代理:

# 设置HTTP代理
npm config set proxy http://user:MyP%40ssword@proxy.big.corp.fr:8080
# 设置HTTPS代理
npm config set https-proxy http://user:MyP%40ssword@proxy.big.corp.fr:8080

方法二:验证配置是否生效

设置完后可以用下面的命令检查配置,确保代理地址被正确解析:

npm config get proxy
npm config get https-proxy

如果输出的URL里,密码部分是MyP%40ssword而不是被截断的内容,说明配置没问题了。

方法三:清除旧配置避免冲突

如果之前尝试过各种转义方式,可能残留了错误的配置,先清除再重新设置:

npm config delete proxy
npm config delete https-proxy

然后再执行方法一里的设置命令。

方法四:手动编辑npm配置文件

如果命令行的引号/转义还是有问题,可以直接编辑npm的配置文件:

  1. 打开用户目录下的.npmrc文件(Windows是C:\Users\<你的用户名>\.npmrc,Mac/Linux是~/.npmrc)
  2. 添加或修改以下内容:
proxy=http://user:MyP%40ssword@proxy.big.corp.fr:8080
https-proxy=http://user:MyP%40ssword@proxy.big.corp.fr:8080

保存后退出,再执行npm i -g npm@latest试试。

一般来说,用URL编码替换@就能解决问题了,要是还不行,可以确认下公司代理是否需要额外的认证方式(比如NTLM),不过大部分场景下上面的方法足够。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 07:57:54