服务器上设置了代理之后,服务器可以访问外网,但是不能访问服务器本地。如何解决

你在服务器上设置了代理后,发现:

  • 可以访问外网
  • 不能访问服务器本地地址(如 localhost、127.0.0.1、内网IP)

这是代理设置中常见的问题,尤其是当你设置了全局 HTTP/HTTPS 代理时。本地访问也会被强制走代理,导致连接失败。


一、问题原因

你可能在服务器中设置了如下代理环境变量:

export http_proxy=http://your-proxy:port
export https_proxy=http://your-proxy:port

这样一来,所有 HTTP/HTTPS 请求(包括对 localhost, 127.0.0.1, 本地网卡IP 的访问)都会默认走代理,导致访问本地服务失败。


二、解决方法

✅ 方法一:设置 no_proxy 环境变量(推荐)

告诉系统 不对某些地址走代理,例如:

export no_proxy=localhost,127.0.0.1,::1,192.168.0.0/16,10.0.0.0/8

如果你服务器的本地 IP 是 192.168.1.100,也可以显式加上:

export no_proxy=localhost,127.0.0.1,192.168.1.100

这样配置后,访问这些地址时将绕过代理


✅ 方法二:访问本地服务时临时禁用代理

如果不想设置 no_proxy,可以在运行访问命令时临时屏蔽代理:

curl --noproxy '*' http://localhost:8000

或:

env -u http_proxy -u https_proxy curl http://localhost:8000

三、持久化配置

如果你在 .bashrc.zshrc 或系统代理配置文件中设置了代理,记得一并设置 no_proxy 变量:

export http_proxy=http://your-proxy:port
export https_proxy=http://your-proxy:port
export no_proxy=localhost,127.0.0.1,::1,192.168.0.0/16,10.0.0.0/8

执行:

source ~/.bashrc

或重启 shell 生效。


四、特殊情况补充

如果你用的是 pip、apt、docker、npm 等工具,它们也可能会继承这些环境变量。确保这些工具也支持 no_proxy 或使用局部配置方式。


如果你能提供具体访问失败的命令(如 curlwgetrequestsapt 等),我可以进一步帮你分析具体情况。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值