Debian / Ubuntu 系可直接運行以下指令,安裝 xanmod-edge 內核後重啟。此內核安裝完後會自動啟用 BBR,無需手動配置。
echo 'deb http://deb.xanmod.org releases main' | tee /etc/apt/sources.list.d/xanmod-kernel.list
wget -qO - https://dl.xanmod.org/gpg.key | apt-key --keyring /etc/apt/trusted.gpg.d/xanmod-kernel.gpg add -
apt update && apt upgrade -y && apt install linux-xanmod-edge -y
apt install wireguard-tools resolvconf -y
curl -fsSL https://github.com/ViRb3/wgcf/releases/download/v2.2.2/wgcf_2.2.2_linux_amd64 -o /usr/local/bin/wgcf && chmod +x /usr/local/bin/wgcf
wgcf register
wgcf generate
cp wgcf-profile.conf wgcf-profile.conf.bak # 備份配置文件
默認配置文件應該長這樣,共有四處要修改的地方,分別是 DNS、 AllowIPs、Endpoint 和 PostUp/PostDown
[Interface]
PrivateKey = XXXXXXXX
Address = 172.16.0.2/32
Address = XXXX:XXXX:XXXX:XXXX/128
PostUp = ip rule add from xx.xx.xx.xx(vps主网卡的ipv4)lookup main # v4 機器要雙棧接管的話要加上這行
PostDown = ip rule del from xx.xx.xx.xx(vps主网卡的ipv4)lookup main # v4 機器要雙棧接管的話要加上這行
PostUp = ip rule add from xx.xx.xx.xx(vps主网卡的ipv6)lookup main # v6 機器要雙棧接管的話要加上這行
PostDown = ip rule del from xx.xx.xx.xx(vps主网卡的ipv6)lookup main # v6 機器要雙棧接管的話要加上這行
DNS = 1.1.1.1
MTU = 1280
[Peer]
PublicKey = XXXXXXXX
AllowedIPs = 0.0.0.0/0
AllowedIPs = ::/0
EndPoint = engage.cloudflareclient.com:2408
自己選擇最適合你的 VPS 的 DNS,我的習慣是改成以下這組
DNS = 8.8.8.8,8.8.4.4,1.1.1.1
有些機器到 8.8.8.8 比較慢可以使用
DNS = 1.1.1.1,1.0.0.1,8.8.8.8
將 engage.cloudflareclient.com 解析成域名,通常是以下的查詢結果
162.159.192.1
2606:4700:d0::a29f:c001
接管出口 | VPS IP | AllowedIPs | Endpoint | PostUp/PostDown |
---|---|---|---|---|
v4 | v4 | 刪掉 ::/0 | 改成 v4 地址 | 加 v4 規則 |
v6 | v4 | 刪掉 0.0.0.0/0 | 改成 v4 地址 | 不用加 |
v4+v6 | v4 | 不用刪 | 改成 v4 地址 | 加 v4 規則 |
接管出口 | VPS IP | AllowIPs | Endpoint | PostUp/PostDown |
---|---|---|---|---|
v4 | v6 | 刪掉 ::/0 | 改成 v6 地址 | 不用加 |
v6 | v6 | 刪掉 0.0.0.0/0 | 改成 v6 地址 | 加 v6 規則 |
v4+v6 | v6 | 不用刪 | 改成 v6 地址 | 加 v6 規則 |
接管出口 | VPS IP | AllowedIPs | Endpoint | PostUp/PostDown |
---|---|---|---|---|
v4 | v4+v6 | 刪掉 ::/0 | 不用改 | 加 v4 規則 |
v6 | v4+v6 | 刪掉 0.0.0.0/0 | 不用改 | 加 v6 規則 |
v4+v6 | v4+v6 | 不用刪 | 不用改 | 加 v4/v6 規則 |
PostUp: 保留入口用的,不加的話,你的 VPS 入站流量會被 WG 的虛擬網口擋在外面造成失聯
EndPoint: 如果機器原本只有 v4 就改成 162.159.192.1,原本只有 v6 就改成 2606:4700:d0::a29f:c001,原本 v4/v6 都有就不用改
AllowIP: 控制出口用的,刪掉不想讓 WGCF 接管的出口
- 機器只有 IPv6,想讓它獲得 IPv4 的訪問能力,訪問 IPv6 時使用機器原本的 IP 出去:刪掉 ::/0、Endpoint改成v6地址
- 機器只有 IPv4,想讓它獲得 IPv6 的訪問能力,訪問 IPv4 時使用機器原本的 IP 出去:刪掉 0.0.0.0/0、Endpoint改成v4地址
- 機器只有 IPv4,想讓它獲得 IPv6 的訪問能力,訪問 IPv4 時使用 CF 的 IP 出去:Endpoint改成v4地址、增加 v4 的 PostUp 規則
- 機器擁有 IPv4 和 v6,想在訪問 IPv4 和 IPv6 時都使用 CF 的 IP 出去:Endpoint不用改、增加 v4 的 PostUp 規則、增加 v6 的 PostUp 規則(如果你有透過 v6 連接 VPS 的需求的話)
cp wgcf-profile.conf /etc/wireguard/wgcf.conf
systemctl enable wg-quick@wgcf
systemctl start wg-quick@wgcf
透過以下的 API 可以看到目前的出口 IP 是否己經變成 CF 的出口
# IPv4 Only VPS
curl -6 ip.p3terx.com
# IPv6 Only VPS
curl -4 ip.p3terx.com
- 解鎖當地原生 IP 才能看的內容(Netflix, TVB 等)
- 避開谷歌驗證碼
- 對一些網站隱藏 VPS IP
- 加速 VPS 到 Cloudflare CDN 節點的訪問速度
- 使 IPv4 / IPv6 Only 的機器獲得訪問 IPv6 / IPv4 地址的能力
p3terx的脚本里处理双栈机器的endpoint是直接给了ipv4的地址。和你本文中介绍的规则不一样(你文中介绍应该填写域名)
这是它的方法
这个endpoint规则到底该怎么理解,怎么填写呢?我这种双栈机器写入v4地址有问题么?