求一个能做二级代理转发的工具, 因为 Chrome 命令行挂不上带认证的代理

2020-10-12 22:58:52 +08:00
 ClericPy
场景:
公司里在用的代理是带 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 以上的, 就省的启动进程了
1518 次点击
所在节点    问与答
12 条回复
yaoliyc
2020-10-12 23:03:19 +08:00
Proxifier
ClericPy
2020-10-12 23:07:13 +08:00
@yaoliyc 感谢回复... 看了下 windows + mac 的, 想部署在 Linux 服务器...

现在在看 squid
KyonLi
2020-10-12 23:36:31 +08:00
v2ray
ClericPy
2020-10-13 00:04:14 +08:00
@KyonLi 没找到可以让我把多个 (大概 100 左右) 原本在用的需要认证的代理转二级代理的多端口方式...
xmh51
2020-10-13 00:09:06 +08:00
gost
ysmood
2020-10-13 00:31:39 +08:00
ClericPy
2020-10-13 00:55:13 +08:00
@xmh51 目前来看, 比 cow 舒服的一点就是命令行参数里就可以写转发代理, 不用像 cow 一个个拼 rc 文件... 非常感谢! 这样子多开几个进程也可以接受, golang 真舒服


@ysmood 感谢, 我搜了到处都说不行, 这里的 HandleAuth 其实就是 Fetch.enable 里面的 paused := &proto.FetchRequestPaused{}; auth := &proto.FetchAuthRequired{}. 我在测试的时候发现只能收到前者的事件, 后者拿不到, 我再看看这个代码. 非常感谢!

PS: golang 在 Github 上居然也可以函数跳转, 真方便
ysmood
2020-10-13 01:11:45 +08:00
@ClericPy github 这个预览确实很强,不过目前只是搜索关键词,还没支持 type-safe 的跳转
KyonLi
2020-10-13 08:40:12 +08:00
@ClericPy 100 个 inbound+100 个 outbound+routing 就行了啊
ClericPy
2020-10-13 22:29:34 +08:00
@KyonLi 有 Python 实现么, 这方面没做过, 关键词都没听懂
muzuiget
2020-10-14 01:12:57 +08:00
没看懂你第 1 点那个 Chrome CDP 问题。
ClericPy
2020-10-14 21:58:47 +08:00
@muzuiget
开启 fetch 以后抓包拿到 continueWithAuth 事件, 结果我拿不到

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/714327

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX