Skip to main content

Command Palette

Search for a command to run...

WireGuard 配置 Global IPv6 (公网下放)

Updated
View as Markdown
WireGuard 配置 Global IPv6 (公网下放)

冥冥之中,自有天意。

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

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

首先给出网络拓扑图:

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

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

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

3. 重新启动网络

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

4. 配置防火墙

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

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

4.1 ufw

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

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

4.2 iptables

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

允许网内流量转发: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 均可,改成自己的。

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

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

7. 效果展示

More from this blog

Grafana 配置 Prometheus Proxmox VE Exporter

本文不做基础知识的扫盲。 我一直想将 PVE 上全量的虚拟机纳入 Grafana 中展示,然而又不想一台台的配置 node_exporter。偶然的机会听说了 Prometheus Proxmox VE Exporter 插件,索性配置一下这个插件,将 PVE 的数据接入 Grafana。 整体架构如下图: 1. 配置 PVE 用户 网上的很多教程都是直接拿 root@pam 账户来进行操作,但特权账号用作监控其实是安全风险蛮高的一件事情。这里我们单独建立一个审计(PVEAuditor)账户来...

May 23, 2025
Grafana 配置 Prometheus Proxmox VE Exporter

刘梦熊:问题在经济,根子在政治

导语:在美国和西方发达国家,经济繁荣、衰退、复苏、繁荣周而复始,有其周期性和相应的经济对策。但中国是政治挂帅,政治凌驾经济,而且习惯只算政治账,不算经济账。当前中国经济盛极而衰,正是由于中共只搞局部经济体制改革,迟迟不启动政治体制改革带来的恶果。 当前中国经济面临私企倒闭潮、外企撤离潮、投资大幅萎缩潮、出生人口下降潮、消费严重不足潮、债务连环爆煲潮,员工大规模失业潮,政府财税失血潮……投资、出口、消费三大经济引擎全部动力不足乃至死火。中国国家统计局日前公布的7月份经济数据,不是疲弱下挫就是远...

Aug 29, 2023
刘梦熊:问题在经济,根子在政治

Kali 2021.2 安装搜狗输入法

我平时比较懒,不愿意手工安装系统,而是使用官方的 VMware 镜像,但官方镜像的语言支持只提供了 English。对于偶尔需要输入个中文的我来说,还是有些困扰的。 1、 换源 从官网下载 deb 包:https://pinyin.sogou.com/linux/?r=pinyin 推荐使用 apt install ./sogouxxxxx.deb,自动解决依赖问题,省心。 2、左上角图标,所有程序中输入input,找到 Input Method。 在一堆弹窗之后,将输入法切换到 Fcitx。...

Mar 10, 2023
Kali 2021.2 安装搜狗输入法

Xiaoxk's Blog

28 posts

你看那通天的巨塔,每时每刻都有人往下跳。我小时候不懂,以为那是雪花。