如图,现在有一个云服务器,具备公网 IP ;然后两边 Router0 和 Router2 分别代表两个 NAT 网络,都不具备公网 IP 。
那么请教一下:
1
gaju 2023-11-21 11:01:14 +08:00 via Android
ipv6 公网有吧? ipv6 ddns 公网连接,wg 默认不会更新域名 IP ,写个脚本检测断线就重启。然后两边的网关设置个静态路由就通了。
|
2
gaju 2023-11-21 11:03:13 +08:00 via Android
云服务器国内的太贵,国外的又容易被办。异地组网搞中转没前途的,直连才是爽歪歪
|
3
flynaj 2023-11-21 11:04:24 +08:00 via Android
Wireguard 安装到路由器上, 互联两个局域网
加路由表就行,要公网访问在你外网机上用 socat 加个端口转发 。 |
4
Jimmyisme 2023-11-21 11:14:50 +08:00
Router 都用 wireguard 连上 server0 ,要实现异地组网就要改 allowip 把两个 Router 的 allowip 要把除了自己的网段都写上( Router0 要写 server0 的 ip 和 Router2 的网段
|
7
cksspk 2023-11-21 11:24:03 +08:00
nat 的子网转发吧,好难搞,之前也打算着这样,但是没弄明白,马
|
9
LxnChan OP @cksspk 差不多,现在不是很明白作为 Peer 如果要转发 Peer 自己所在 NAT ,需不需要在自己的配置文件上加上别的 Peer 以把自己也作为一个中转服务器
|
10
Huelse 2023-11-21 11:41:27 +08:00
如果要访问 Server1 所在的内网资源就需要在 Server0 和 Client 的 Peers 设置 AllowedIPs(10.254.254.0/24),其实就是指定路由,需要注意的是防火墙设置正确。
windows 没操作过,估计关了防火墙会省事点? |
13
masterclock 2023-11-21 13:36:58 +08:00
netmaker 一把梭?
|
14
retanoj 2023-11-21 13:47:49 +08:00
需要 Server 1 有包转发能力
不如把 Switch1 上接个 OpenWrt ,让它变成右侧网络 Wireguard 专属网关,可行不 |
15
mightybruce 2023-11-21 14:04:31 +08:00
组网用 tailscale 和 headscale 吧, tailscale 拥有 wireguard 所具备的, 控制节点用开源的 headscale
|
16
HOMO114514 2023-11-21 14:28:50 +08:00
http://arthurchiao.art/blog/how-nat-traversal-works-zh/
|
17
lifekevin 2023-11-21 14:51:07 +08:00
https://www.henrychang.ca/how-to-setup-wireguard-vpn-server-on-windows/
参考一下这里的后半部分,Windows 的 nat 转发很难配置,如果是 linux 用 iptables 转发就可以了 如果 Windows 配不好,可以装一台 linux 的虚拟机用来做 nat 转发 |
18
mantouboji 2023-11-21 16:24:36 +08:00
这不是超级简单吗?
VPS 代表那个公网服务器,R1 和 R2 是你两个网段的边界路由器。 假设我们设置一个单独的网段 192.168.200.0/24 作为 wireguard 这个子网的地址。 看你图上,R1 后面的网段是 192.168.233.0/24, R2 后面是 10.254.254.0/24 VPS 的 wg0, 自己地址 192.168.20.1/24 然后建立两个 peer 。假设分别给地址 192.168.200.100 和 192.168.200.200 第一个 peer, AllowedIPs=192.168.200.100/32,192.168.233.0/24 第二个 peer, AllowedIPs=192.168.200.200/32,10.254.254.0/24 注意上面两个/32 然后在 R1 上的 wg0.conf 里, [interface] Address=192.168.20.100/24 #注意这里是 24 [peer] endpoint=VPS:port Allowed-address=0.0.0.0/0 R2 的也是一样,只是 Address=192.168.20.200/24 VPS 、R1 、R2 三个机器都要容许 ipv4_forward, 这种情况下 NAT 倒是不需要。 R1 、R2 两个网段里需要指定 default gw 是 R1 和 R2 |
19
mightybruce 2023-11-21 17:03:22 +08:00
@mantouboji 你是不看描述就回复。
|
20
Xunit 2023-11-21 18:29:14 +08:00
两 nat 搞俩网段,服务器做好转发就行(记得开 ipv4/6 的转发)。如果 ssh 也要走 wireguard ,就得把 mtu 改小。可以参考 arch wiki 这个部分
https://wiki.archlinux.org/title/WireGuard#Server |
21
orancho 2023-11-21 19:18:48 +08:00
Why not OSPF?
|
22
f14g 2023-11-21 19:34:48 +08:00 via Android
果断 OSPF 。如果是为了给 Windows/手机用,加一个默认路由即可
|
23
f14g 2023-11-21 19:39:21 +08:00 via Android
哦,没注意看路由器不支持 wireguard 。那就 server1 开一个 snat MASQUERADE 呗,另外别忘了把 IP 转发打开
|
24
gaju 2023-11-23 11:23:57 +08:00 via Android
@Jimmyisme 考虑过,但太麻烦所以没弄了。一般 ipv6 前缀变化都在晚上,搞了一年 ddns 也无感。
|
25
helsinglee 296 天前
@flynaj #3 请教以下路由表怎么加呢?为两边分别加对方局域网网段指向本地 wireguard 网关,但是局域网的设备没办法互访。谢谢
|
26
flynaj 296 天前
|