Google Chrome 忽略 SOCKS5 代理的本地主机

Google Chrome 忽略 SOCKS5 代理的本地主机

我正在利用 Google Chrome 通过 SOCKS 代理进行端口转发。

本质上我正在通过终端运行以下命令: ssh [email protected] -D 9999

然后在 Google Chrome 中,我将 SOCKS 代理设置为127.0.0.1:9999

问题是,我需要访问主机https://localhost/foo/bar才能访问我需要访问的内容。这在 Firefox 上可以正常工作(当我修改代理设置时),但在 Chrome 上则不行。

如果我进入/etc/hosts我的系统并创建这样的条目:

127.0.0.1 foobar

然后我可以转到https://foobar/foo/bar,一切正常。看来 Chrome 拒绝转发localhost127.0.0.1。有什么办法可以解决这个问题吗?

答案1

默认情况下,Chrome 72+ 不会localhost通过您配置的代理发送请求。

您需要配置 Chrome 的代理绕过列表以包含<-loopback>,这是一个特殊选项,指示其localhost通过代理发送。

通过命令行,它看起来像:

google-chrome --proxy-server=socks://127.0.0.1:9999 --proxy-bypass-list='<-loopback>'

答案2

我有类似的问题。(但我用的是 SwitchyOmega,不知道 chrome 已经可以在内置设置中使用 socks 了)。至少,我的问题的标题可能是一样的。

有时我使用代理 ssh 隧道来访问只能从服务器本身访问的端口。

但是 Chrome 开始忽略 localhost 的代理设置,所以我不得不寻找解决方法。

目前的解决方案是使用通配符 DNS 服务。示例链接到本地​​主机:http://127.0.0.1.nip.iohttp://127.0.0.1.xip.io

相关内容