登录
  • 人们都希望被别人需要 却往往事与愿违
  • 判断一个人的人品, 不是看他好起来做什么好事, 而是看他坏起来不做什么坏事。

把 Cloudflare WARP 转换为 http 代理

Cloudflare Benny 小土豆 4125 次浏览 1466 字 9 个评论

Cloduflare WARP 真的非常好用,并且支持代理模式。启用这个模式之后,它会在本机监听一个 socks 端口,应用程序可以配置到这个端口来使用代理。

对于服务器来说,一般使用 warp-cli

  1. warp-cli proxy port 60606
  2. warp-cli mode proxy

之后你就可以 curl

  1. https_proxy=socks5://127.0.0.1:60606 http_proxy=socks5://127.0.0.1:60606 curl ipv4.win
  2. IP: 104.28.157.116 CLOUDFLARE.COM CLOUDFLARE.COM

然而,Go 的程序不支持 socks 代理,要手动加 transport 我可没那个功夫去加。

好消息是,Go 默认是尊重环境变量http_proxy的。那么就要想办法给 socks 代理转换为 http 代理

这事很简单嘛!用pproxy就好了,别的不会,这个肯定很会!

  1. pproxy -v -l http://127.0.0.1:8118 -r socks5://127.0.0.1:60606
  2.  
  3. https_proxy=http://127.0.0.1:8118 http_proxy=http://127.0.0.1:8118 curl ipv4.win
  4. curl: (52) Empty reply from server
  5.  
  6. # pproxy logs
  7. Serving on ipv? 127.0.0.1:8118 by http
  8. http 127.0.0.1:45012 -> socks5 127.0.0.1:60606 -> ipv4.win:80
  9. Unknown remote protocol from 127.0.0.1

把 Cloudflare WARP 转换为 http 代理

怎么报错了呢🤨

可能是 pproxy的问题,那么用gost

  1. gost -L http://127.0.0.1:8118 -F socks5://127.0.0.1:60606
  2. 2024/11/03 12:32:43 route.go:700: http://127.0.0.1:8118 on 127.0.0.1:8118
  3. 2024/11/03 12:32:46 http.go:162: [http] 127.0.0.1:33284 -> http://127.0.0.1:8118 -> ipv4.win:80
  4. 2024/11/03 12:32:46 http.go:257: [route] 127.0.0.1:33284 -> http://127.0.0.1:8118 -> 1@socks5://127.0.0.1:60606 -> ipv4.win:80
  5. 2024/11/03 12:32:46 http.go:280: [http] 127.0.0.1:33284 -> 127.0.0.1:8118 : unexpected EOF

把 Cloudflare WARP 转换为 http 代理

那……Privoxy

  1. forward-socks5 / 127.0.0.1:60606 .

也不行!

甚至直接在 Firefox 里设置 socks5 代理,也不行🤨

把 Cloudflare WARP 转换为 http 代理

任何网站都打不开

把 Cloudflare WARP 转换为 http 代理

偶然取消 DNS 请求的勾选,就成功了…… 突然恍然大悟,WARP 可能不支持远程解析 DNS

 

那么要么用回 socks4

  1. pproxy -v -l http://127.0.0.1:8118 -r socks4://127.0.0.1:60606
  2. gost -L http://127.0.0.1:8118 -F socks4://127.0.0.1:60606

要么给加上 DNS 的支持

  1. gost -L "http://127.0.0.1:8118?dns=1.1.1.1" -F socks5://127.0.0.1:60606

人生中宝贵的几个小时就这么没了。


文章版权归原作者所有丨本站默认采用 CC-BY-NC-SA 4.0 协议进行授权 |
转载必须包含本声明,并以超链接形式注明原作者和本文原始地址:
https://dmesg.app/warp-http-proxy.html
喜欢 (25)
分享:-)
关于作者:
If you have any further questions, feel free to contact me in English or Chinese.
发表我的评论
取消评论

                     

去你妹的实名制!

  • 昵称 (必填)
  • 邮箱 (必填,不要邮件提醒可以随便写)
  • 网址 (选填)
(9) 个小伙伴在吐槽
  1. 用 wireproxy 吧,warp-cli 会莫名其妙内存泄露
    表达法 2025-02-24 19:01 回复
  2. sing-box 也可以, 他有灵活的 dns 策略。 { "inbounds": [ { "type": "mixed", "listen": "::", "listen_port": 7890 } ], "outbounds": [ { "type": "wireguard", "server": "engage.cloudflareclient.com", "server_port": 2408, "local_address": [ "172.16.0.2/32", "2606:.../128" ], "private_key": "...", "peer_public_key": "bmXOC+F1FxEMF9dyiK2H5/1SUtzH0JuVo51h2wPfgyo=", "mtu": 1280 } ] }
    crazy2024-11-24 14:13 回复
  3. 在中国用不了哎。
    桃桃 2024-11-22 20:32 回复
    • 是的:-(
      Benny 小土豆 2024-11-22 21:20 回复
  4. 我在 docker 里想把 warp 作为后台服务给跑起来,一直没成功。有跑起来的朋友吗?
    Jiawen Geng2024-11-20 10:44 回复
  5. wireproxy 直接就支持啊,不用通过 gost 处理了。
    a2024-11-10 14:21 回复
  6. 忘记说这个 gost 改进版直接主持 wireguard/warp 协议
    crackz2024-11-10 05:52 回复
  7. 如果已经使用 gost 来转换的话,不如用下面这个 gost 改进版的项目 https://github.com/happyharryh/gost 编译命令参考这个 issue https://github.com/ginuerzh/gost/issues/859 然后下面使用命令,由于 warp 不支持 UDP 的 DNS 查询,所以需要强迫 gost 走 tcp 方式的 dns 查询,由于有了这个改进版的 gost,inbound 的 listen 方式的选择性就非常多 gost -L=:8080?dns=8.8.8.8/tcp-chain -F=wg://?c=/gost/wgproxy.conf
    crackz2024-11-10 05:49 回复
  8. 其实类似于 proxychains 用法的,除了 pproxy 之外,graftcp(https://github.com/hmgle/graftcp) 也是挺好用的,可以支持 go 写的静态编译的程序,而且也支持 socks5 上游。 可以试试看。
    yitong2024-11-03 21:46 回复
您直接访问了本站! 莫非您记住了我的域名. 厉害~ 我倍感荣幸啊 嘿嘿