我的机器上有这个:
$ cat /etc/profile.d/proxy.sh
export http_proxy=http://192.168.1.30:3128
export https_proxy=https://192.168.1.30:3128
效果很好,直到我需要对本地主机上的应用程序使用 HTTP 接口。
$ wget localhost
--2023-03-02 06:54:52-- http://localhost/
Connecting to 192.168.1.30:3128... connected.
Proxy request sent, awaiting response... 503 Service Unavailable
2023-03-02 06:54:52 ERROR 503: Service Unavailable.
$ wget 127.0.0.1
--2023-03-02 06:55:20-- http://127.0.0.1/
Connecting to 192.168.1.30:3128... connected.
Proxy request sent, awaiting response... 403 Forbidden
2023-03-02 06:55:20 ERROR 403: Forbidden.
有没有办法阻止localhost
和127.0.0.1
请求被转发到代理?
细节:
这台机器没有直接连接到互联网。它没有网关或默认路由。但它位于带有代理服务器 (192.168.1.30) 的 LAN 上,该代理计算机 (192.168.1.30) 安装了代理服务器(端口 3128)并具有 Internet 连接。
$ ip addr
1: lo: ...
inet 127.0.0.1/8 scope host lo
2: eno1: ...
altname enp24s0f0
inet 192.168.1.100/24 brd 192.168.1.255 scope global eno1
$ ip route
192.168.1.0/24 dev eno1 proto kernel scope link src 192.168.1.100
$ cat /etc/hosts
127.0.0.1 localhost
$ cat /etc/network/interfaces
auto lo
iface lo inet loopback
auto eno1
iface eno1 inet static
address 192.168.1.100
netmask 255.255.255.0
从
wget
手册页:所以,你应该改变你
/etc/profile.d/proxy.sh
的:如果您有一个不使用
*_proxy
环境变量的 GUI Web 浏览器,那么您可以创建一个代理自动配置文件,命名该文件proxy.pac
,让您的本地 HTTP 服务器为其提供 MIME 类型application/x-ns-proxy-autoconfig
。然后通过在桌面环境或 Web 浏览器的代理设置中指定代理自动配置 URL 来配置您的桌面环境和/
http://localhost/some/where/proxy.pac
或Web 浏览器以使用该自动配置文件。file:///some/location/proxy.pac
在您的情况下,文件的内容可能是: