WireGuard 配置 Global IPv6 (公网下放)

众所周知,IPv6 和 IPv4 不同,IPv6 的地址池更加丰富,也摒弃了 IPv4 中目前常见的 NAT 做法(虽然有 NAT6 的存在,但这终究是一种不受推荐的选择)。对于如果 WireGuard 中的一个 Peer 存在 IPv6 前缀(即 IP 地址不是),该设备就可以作为 Server,将前缀下的一部分地址分配给 VPN 中的其他设备的。/128

本文以 WireGuard 为例进行展示,IP地址均为静态指定,不涉及 DHCPv6。

首先给出网络拓扑图:

WireGuard 配置 Global IPv6 (公网下放)

1. 更改 Linux 配置,开启 IPv6 转发

修改 或创建 文件(文件名随意),更改后添加下面参数,启用对应的功能。/etc/sysctl.conf/etc/sysctl.d/wireguard.conf

net.ipv4.ip_forward=1        # IPv4 的网络转发设置
net.ipv6.conf.all.forwarding=1        # IPv6 的网络转发设置
# net.ipv6.conf.default.forwarding=1     # IPv6 的网络转发设置(后续新建接口)
net.ipv6.conf.eth0.proxy_ndp=1    # 启用 NDP(Neighbor Discovery Protocol)协议,让主机作为代理响应 NDP 请求。

之后通过 或重启使设置生效。sysctl -p

2. 添加 neighbor 对象

执行下面的命令,给客户机的 IPv6 地址设置 NDP 代理:

ip -6 neigh add proxy 2408:****:6666::2 dev eth0

删除时将 参数修改为 即可。adddel

💡
注:该命令重启后失效。推荐使用 设置为VPN 启动/停止时自动配置,也可设置独立的开机自启项。PostUp/PostDown

3. 重新启动网络

执行命令 重启网络,使 NDP Proxy 生效。systemctl restart systemd-networkd

4. 配置防火墙

这里我的以太网出口是 ,WireGuard 的配置文件为 。eth0wg0

请根据个人情况对命令进行修改。

允许网内流量转发:ufw route allow in on wg0

允许来自公网的流量进入:ufw route allow in on eth0 out on wg0

💡
iptables默认 规则为 ,未修改情况下可不作设置。FORWARDACCEPT

允许网内流量转发:ip6tables -A FORWARD -i wg0 -j ACCEPT;

允许来自公网的流量进入:ip6tables -A FORWARD -i eth0 -o wg0 -j ACCEPT;

如果不生效,可以调整下规则顺序,把 改为 。-A FORWARD-I FORWARD 1

5. 更改Server(Pi)上的配置文件

[Interface]
PrivateKey = :) # 记得改成自己的
ListenPort = 8501
Address = 192.168.7.1/32, 2408:****:6666::1/128

[peer]
publickey = :) # 记得改成自己的
allowedips = 192.168.7.2/32, 2408:****:6666::2/128

我们这里给 Server 配置一个本网段的地址(.1),同时给客户端地址(.2),这边给出了最简单的配置文件,可根据个人需要进行修改。

6. 配置 Client 上的配置文件

[Interface]
PrivateKey = :)  # 记得改成自己的
Address = 192.168.7.2/32, 2408:****:6666::2/128
DNS = 240c::6666, 223.5.5.5  # 根据需要设置

[Peer]
PublicKey = :)  # 记得改成自己的
AllowedIPs = 192.168.7.0/24, ::/0
Endpoint = :) # Server 地址, IPv4/IPv6 均可,改成自己的。

这边给出了最简单的配置文件,可根据个人需要进行修改。

💡
注: 可能存在一个问题,就是它也包括了所有的 IPv4 流量。如果不需要 IPv4 的流量进入 VPN 网络,可拆分成两个网段()的写法,避免生成高优先级的默认路由。::/0::/1, 8000::/1

7. 效果展示

WireGuard 配置 Global IPv6 (公网下放)

WireGuard 配置 Global IPv6 (公网下放)

暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇