场景:
公司里在用的代理是带 auth 信息的 user:pwd@host:port 的, 但是 Chrome 命令行启动的时候不支持带认证的代理, 所以只能先转发到一个本地免密代理再进行请求.
目前已经进行的尝试:
1. 通过 --proxy-server=http://host:port 直接挂那个需要认证的代理, 浏览器里会暗处认证框, 但是 Chrome CDP 里面的 Fetch.enable(authChallengeResponse=true) + Fetch.continueWithAuth 发现根本截取不到前面的那个认证 Fetch.authRequired, 只能截取到普通的 Fetch.requestPaused 事件
2. 通过 Network.setExtraHTTPHeaders 强制写入 Proxy-Authorization, 直接报错完全没用
3. 目前唯一成功的就是通过 cow 做二级代理, 但是看过 issue 作者 2014 年表示不希望实现一个端口转发一个代理的功能 (
https://github.com/cyfdecyf/cow/issues/162), 所以一个 cow 进程只能做一个 port + 二级代理的绑定, 如果绑定多个, 就不能一对一了.
4. 回头看了下 mitmproxy 里的 connection 监听转发, 并不适合我想做的
5. 试着命令行挂 export http_proxy 的方式代理, Chrome 启动也要填登录框
总结: 求一个可以帮我把带认证的代理转为免认证的 host+port 代理的方式. 目前想到的就是每次挂代理之前启动一个自定义 rc 路径的 cow 进程.
有其他选择吗, 最好 Python3 以上的, 就省的启动进程了
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
https://www.v2ex.com/t/714327
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.