请教:如何使用 wireguard 作为链式代理的出口节点

2023-04-02 20:10:01 +08:00
 Nile20

前一段时间看到 Project X 的 通过 Cloudflare Warp 增强代理安全性 一文,今天没有别的事,感觉可以浪费一点生命,但是最终还是失败了。遇到了一些疑惑,想请教一下各位大佬。

我想要配置链式代理的最大原因是担心机场的安全性。Project X 的原文也提到了这一点:

保护用户私密性的一个方法,就是在客户端使用链式代理。Warp 使用的 WireGuard 轻量级 VPN 协议会在代理层内增加一层加密。对于机场而言,用户所有流量的目标都是 Warp ,从而最大程度保护自己的隐私。

问题 1: 原文的说明中提到“在服务端分流回国流量至 warp”。请问这一步是必须的吗?

问题 2: 要如何配置,才能完成使用 wireguard 作为链式代理的出口节点这一要求呢?

我已经(略为艰难地)获得了一个能够在 Clash Verge (内核选用 Clash meta) 中成功连接的 wireguard 类型的代理,同时还拥有机场提供的可用节点,并创建了如下结构的 clash 配置文件

proxies:
  - {name: 机场节点 1, server: server.xyz, port: 21584, type: vmess, uuid: xxx, alterId: 1, cipher: auto, tls: true, skip-cert-verify: false}
  # (此处省略若干机场节点)
  - {name: warp-github, type: wireguard, server: 162.159.193.10, port: 2408, ip: 172.16.0.2, ipv6: ipv6-addr, public-key: bmXOC+F1FxEMF9dyiK2H5/1SUtzH0JuVo51h2wPfgyo=, private-key: xxx-private-key, mtu: 1280, udp: true, reserved: [219,212,139] }
proxy-groups:
  - name: 🔰 选择节点
    type: select
    proxies:
      - 机场节点 1
      - warp-github
      - relay
      - DIRECT
  - name: relay
    type: relay
    proxies:
      - 机场节点 1
      - warp-github
rules:
 - MATCH,🔰 选择节点

在使用这个配置时,如果我单独选择“机场节点 1”或者“warp-github”,代理都能正常工作。但是当为选择“relay”时,代理就不工作了。relay规则的配置我是参考的文档,配置并不复杂,不理解为什么它不能工作。以下是我在写这个主题的时候暂时想到的一些方向和疑问:

问题 3: 有没有已经验证可行性的 wireguard 链式代理实践工具链或者博文推荐?

恳请各位大佬不吝赐教

17568 次点击
所在节点    程序员
37 条回复
wwqgtxx
2023-04-10 09:23:27 +08:00
clash.meta 最新的 alpha 版本已为 wireguard 增加 dialer-proxy 设置,可直接设置设置链式代理(不需要使用 relay ,relay 目前仍然不支持 wireguard ),写法即在 wireguard 的配置中增加`dialer-proxy: "其他节点名"`
https://github.com/MetaCubeX/Clash.Meta/commit/87b9e3d977c4ae3dc8368e3a81908fd995ca5ba4
@popzuk
GrayXu
2023-04-28 20:22:49 +08:00
试着参照 op 的配置可以用 wireguard 来连接。但不知道为什么 clash 没办法直接连接本地代理模式下的 warp🤔。但其他应用是可以正常连这个 socks 入口的
```
- {name: "socks", type: socks5, server: "127.0.0.1", port: 40000}
```
shwomen1234fs
2023-04-30 09:04:28 +08:00
@wwqgtxx 昨天最新的 meta 内核 1.4.4 ,已经支持了,nice
proxy-provider can set dialer-proxy too it will apply dialer-proxy to all proxy in this provider by @wwqgtxx
shwomen1234fs
2023-04-30 09:04:43 +08:00
20210610204811
2023-05-30 20:24:50 +08:00
你好,我最近也在折腾这件事情,主要就是为了干掉频繁的 Google 验证码跟 ChatGPT 限制,我期望的流量路径跟你的一样。

我现在要解决的是 PC 平台上的问题,使用了 WARP 的 WireGuard ,用的工具是 Clash For Windows ,由于不支持 WireGuard Relay ,所以采用的方案是 tunnel , 现在单纯使用 WirdGuard 是可以的,但是转发不行,看到你上面提到 [使用 tunnel 也实现了我期望的将机场的出站流量导向 warp 的需求] ,我想请求下你是如何配置的,可以把密钥啥的去掉发出来供我参考一下吗?多谢。
Nile20
2023-05-30 20:57:12 +08:00
@20210610204811 你可以先参考一下这两个文档,里面有例子,我当时是参考它配置的。看能不能解决
https://lancellc.gitbook.io/clash/clash-config-file/proxies/config-wireguard
https://lancellc.gitbook.io/clash/clash-config-file/tunnels
我现在在外面出差,带的办公电脑,没有 clash 配置。要是没解决的话我回去以后找一下配置

我当时虽然用 tunnel 走通了,但是延迟感人,使用还是很不便,最后还是没有用 tunnel ,改用的廉价 VPS 自建一个代理。你的两个痛点,Google 验证码的问题可以考虑换个机场; ChatGPT 的问题,如果不介意可能的风险的话,可以看看这个项目
https://github.com/pengzhile/pandora
(这个项目虽然是开源的,但是它的核心是所有请求要走作者的后端站点,这部分是没有开源的)
20210610204811
2023-05-30 22:03:00 +08:00
@Nile20 #26 感谢回复,你给的这两个文档我都看过了,基本上能 Google 到的内容都找过了,GitHub 仓库也都搜过了,我参照上面提到的文档上的示例进行了配置,但是最终的 IP 还是过不了 OpenAI 的验证,明确提示不支持的国家,但我实际上配置的跳板是日本,并且 SpeedTest 的信息也不对,所以跳板这块是肯定存在问题,你如果有空了的话,还是麻烦帮我找一下具体配置我参考下吧。
Nile20
2023-06-02 20:26:36 +08:00
@20210610204811 我回来看了一下配置,看起来我之前以为 tunnel 生效了是错觉:配置了 tunnel 之后,落地 IP 显示 cloudflare ,是因为我仍然是直接连接到 warp 服务,并没有通过机场节点(通过 wireshark 看到我仍然是直接连接的 warp 的 IP )。并且可能最近连接被劣化,连 warp 就要 1100ms 。
20210610204811
2023-06-04 12:47:44 +08:00
@Nile20 #28 是的,后面我也在想,如果你也是按照教程实现的,那应该跟我是同样的结果,没说错的话,你现在去看日志应该会提示 invalid context 啥的,这个转发实际上并没有生效,教程上转发的不是本地地址,那既然没有转发就更不用说会走代理了。

看来通过 Replay 来洗 IP 是没啥希望了,我在 Surge 上使用虽然可以跳板,但是网速太慢了,这个方案估计是不太行了。
YGHMXFAL
2023-06-18 23:23:41 +08:00
更新:

brook 新版本已经更新了前置代理功能,客户端和服务端都可以经由 socks5 连接下一跳,楼主去试试,一条命令就行了,不用这么复杂还写配置文件
molezznet
2023-06-23 02:00:49 +08:00
最近有个帖子关于 tunnel 的 也还是没有测试成功
wwxwlw
2023-07-01 17:43:43 +08:00
请问一下, 我在 clash 配置中添加了一个 wireguard 节点, 只能获取到 CN 的 IP, 我该怎样给它配置一个前置节点让 warp 可以拿到前置代理地区的 IP 呢? 按照贴中的教程试了 tunnel 和 dial-proxy 还是 cn, relay 是 timeout
Nile20
2023-07-01 20:15:18 +08:00
@wwxwlw 你可以试一下这个帖子里 https://www.v2ex.com/t/948499?p=1 的 20210610204811 发布的回答,他给了参考配置。我也有试过这个配置,能工作,但是不知道为什么我这边只有少量机场节点能够使用这个配置。由于我后面有自建的节点,就没有深入探究
exiaduck
2023-07-02 11:31:35 +08:00
问题 1. 服务端分流回国流量到 warp ,是为了避免有时客户端这边出站的时候分流规则没生效,导致访问国内网站流量经过了 vps ,然后 vps 直接返回应答的话,就会暴露 vps ;客户端出站分流不生效有几个原因,比如手滑开了全局、客户端 geoip 更新不及时没过滤掉一些漏网之鱼,或者没有分流规则的新设备直连了节点。

问题 2. wg 要作为链式代理出口,那么通道节点要支持 udp ,常见的 vmess 、trojan 好像都是不支持的,ss 可以,但是也要看服务端设置了如何处理 udp ,设置了不转发 udp 或者 uot 的好像都不行,所以免费机场节点要支持 wg 就要看运气要试。

问题 3. 自己搞廉价 vps 开 ss 是最稳定可靠的方案了,但也脱离了放心用不可信机场通道,或完全白嫖的初衷。但,反过来自己先套 warp 再用机场做出口,大部分情况是可以的,主要用来保护自己的同时利用机场节点切换落地的地区,但并不能远端套 warp 解锁一些网站。
wwxwlw
2023-07-03 09:38:25 +08:00
@Nile20 #33 非常感谢
ksdd521lr
2023-07-04 13:05:30 +08:00
@Nile20 我参考你讲的另一贴是配置出来和你一样的效果,即 warp 出口,但是不明白为什么连上几分钟就会断开,不碰它过一会又连上了,然后又断开这样循环,应该不是前置节点的问题,换了几个都是这样,同样的 wg 配置放到 wireguard 客户端就能正常使用不断开。
playboy0
348 天前
有作业可以抄吗😋

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

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

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

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

© 2021 V2EX