想请教各位大佬科学冲浪与 wireguard 联用的问题,
在不改动 B 的网关 dns 的前提下,在外面通过 wireguard 连回家,可以连回内网之余,还能通过 A 科学,如果要实现这样的话,在 B 上的 wireguard 该如何设置?
1
superchijinpeng 2023-08-08 09:01:29 +08:00
Tailscale
|
2
keyfunc 2023-08-08 09:04:00 +08:00
A 是 fake ip+tun 模式吗?如果是的话,要确保 wg 拨进的设备分配的 IP 和 A 是一个网段,不然的话,再转层 nat 吧,clash 的 tun 模式好像不支持跨网段转发。
|
3
yzc27 OP @keyfunc 目前 A 是 fakeip + tproxy ,wg 拨进的设备所分配的 ip ( 192.168.2.1/24 )不是跟 A ( 192.168.1.2 )同一个网段。
|
4
yaott2020 2023-08-08 09:12:56 +08:00 via Android
好像可以设置 ip route 实现吧
|
5
lightionight 2023-08-08 09:17:22 +08:00
哈哈, 前些时刚好设置过, 在 b 上设置 wiregurad ip 段转发 如 192.168.2.0/24 转发到 A 的 shellclash 上,然后在 A 的 shellclash 上配置好分流规则, 这样家里内网设备可以访问, 科学上网也可以, 但是经过这几趟转发延迟会增加, 我现在是用 surge, 在手机端分流, 连家里内网走 surge 的 ponte, 其余走科学上网, 这样延迟基本解决了, 当然你也可以用 wireguard 一把梭哈, 建议在手机端分流, 这样科学上网快很多, 之前也是和你想的一样, 把代理前置, 减少手机端的运行,延迟太难受
|
6
yzc27 OP @lightionight 大佬,请教一下“在 b 上设置 wiregurad ip 段转发 如 192.168.2.0/24 转发到 A 的 shellclash 上”这个要怎样实现呢?
|
7
keyfunc 2023-08-08 09:26:05 +08:00
@yzc27 TProxy 没问题的,但你 wg 客户端要配置对,dns 用你 a 的 ip ,且要允许 fakeip 网段走 wg
[Interface] PrivateKey = XXX Address = XXX DNS = 192.168.86.1 (换成 A 的 IP) [Peer] PublicKey = XXX AllowedIPs = 1.0.0.0/8, 2.0.0.0/8, 3.0.0.0/8, 4.0.0.0/6, 8.0.0.0/7, 11.0.0.0/8, 12.0.0.0/6, 16.0.0.0/4, 32.0.0.0/3, 64.0.0.0/2, 128.0.0.0/3, 160.0.0.0/5, 168.0.0.0/6, 172.0.0.0/12, 172.32.0.0/11, 172.64.0.0/10, 172.128.0.0/9, 173.0.0.0/8, 174.0.0.0/7, 176.0.0.0/4, 192.0.0.0/9, 192.128.0.0/11, 192.160.0.0/13, 192.169.0.0/16, 192.170.0.0/15, 192.172.0.0/14, 192.176.0.0/12, 192.192.0.0/10, 193.0.0.0/8, 194.0.0.0/7, 196.0.0.0/6, 200.0.0.0/5, 208.0.0.0/4, 192.168.86.0/23, 192.168.1.1/32, 192.168.86.1/32 Endpoint = XXX |
8
lightionight 2023-08-08 09:27:31 +08:00
我是用的 RouteOS, 大致和 4 楼说的差不多, 新建一个 route table, 然后 ip route 将 wiregurad 网段的流量全部指向 A, 相当于把 A 当网关, linux 上 具体如何 ip route 你可以自己查一下,但基本原理就是网段转发
|
9
yzc27 OP @keyfunc "要允许 fakeip 网段走 wg"是指“AllowedIPs = ”这里填 fakeip 的 ip 段吗?
|
10
yzc27 OP @lightionight 不知道可不可用 iptables 来转发?
|
11
lightionight 2023-08-08 09:32:10 +08:00
应该是可以的,iptables 本来就是干这个的,但我 iptables 不太熟 ,iptables 具体如何设置你得自己查查, 思路就是 在 b 上设置 ip route
|