v2sub icon indicating copy to clipboard operation
v2sub copied to clipboard

建议在go程序里面不读取环境变量设置的代理

Open o0oo0ooo0 opened this issue 1 year ago • 1 comments

我设置http-proxy等环境变量让系统里的程序自动使用v2ray代理, 路由规则的是绕过大陆. 当节点不可用的时候, 我用本程序v2sub -sub更新订阅[1]设置代理的时候却发现因为节点不可用, 且程序走了代理, 无法获取在境外服务器上的订阅信息. [1]默认不使用最新的订阅, 这可能是你没发现问题的原因, 因为有可能出现缓存订阅里的节点全部失效的情况, 因此这个issue是需要解决的 我的解决办法是在 func GetSub(url string, ch chan<- []string) 函数第一行加上 http.DefaultTransport.(*http.Transport).Proxy = nil

o0oo0ooo0 avatar Apr 30 '23 12:04 o0oo0ooo0

嗯,是有这个问题。

目前用的 http.DefaultTransport 使用 ProxyFromEnvironment 作为 Proxy,即默认使用环境变量代理。

更好的办法还是使用自定义的 http client。通过 flag 允许用户控制 是否通过命令行代理获取订阅信息。

多谢你的建议,我会改进这个问题。

arkrz avatar Apr 30 '23 13:04 arkrz