在 Windows 上,使用 WinSW 将 Xray-core 配置为开机自启服务,浏览器使用 SmartProxy 管理网络请求,可以避免 TUN 模式或系统代理对其他应用的影响。
但 Chrome 的翻译功能并不使用 SmartProxy 设置的代理,所以会出现谷歌翻译不可用。
解决方法是,使用 Xray 的 Dokodemo-Door 功能,将请求转发到代理。
配置文件示例:
1 | { |
在 C:\Windows\System32\drivers\etc\hosts
内添加以下内容:
1 | 127.0.10.100 translate.googleapis.com |
hosts 文件将谷歌翻译的域名指向 Xray 监听的地址,浏览器发起的请求将会由 Xray 处理,Xray 内部经过 routing 判断后,请求会转发到合适的出站代理。
在 dokodemo-door
配置里的 listen
写的不是 127.0.0.1
,不会影响其他软件监听 443 端口。
事实上,127.0.0.0/8
都属于本地环回地址,可以使用多个地址来实现而不出现端口冲突。
这是为 Bitwarden 编写的配置文件:
1 | { |
hosts 记录:
1 | 127.0.20.100 bitwarden.com |
在不希望 TUN 模式或系统代理影响全部软件,或者目标软件不使用系统代理设置的情况下,可以尝试这种方法解决。
之前在某处看到这种方法解决谷歌翻译的文章,但找不到了,所以写了这份笔记。