如何为ipv4-only的服务器添加ipv6地址

本文主要介绍如何为ipv4-only的服务器添加ipv6地址。

更新:由于大范围滥用,近期warp已经基本处于处于不可用状态。RIP.

关键词:cloudflare

准备工作

  • 一台Deian 系的服务器
1
2
sudo apt update
sudo apt install curl sudo lsb-release -y

debian安装

  1. 安装版本高于 5.6 的内核
  2. 安装 wireguard 内核模块
  3. 安装 wireguard-go
添加backports源
1
2
echo "deb http://deb.debian.org/debian $(lsb_release -sc)-backports main" | sudo tee /etc/apt/sources.list.d/backports.list
sudo apt update

先执行 uname -r 命令查看内核版本。如果是 5.6 以上内核则已经集成了 Wire­Guard ,就不需要安装了。

安装网络工具包
1
sudo apt install net-tools iproute2 openresolv dnsutils -y

安装 wireguard-tools (Wire­Guard 配置工具:wgwg-quick)

1
sudo apt install wireguard-tools --no-install-recommends
安装内核

为了稳定性推荐安装 back­ports 仓库中的内核 (截止发文版本为 5.10)。以下是一把梭命令:

1
sudo apt -t $(lsb_release -sc)-backports install linux-image-$(dpkg --print-architecture) linux-headers-$(dpkg --print-architecture) --install-recommends -y

安装完重启,并执行 uname -r 命令查看内核版本来确认新内核是否被启用。

debian安装动态内核模块

1
sudo apt install wireguard-dkms -y

安装后执行 modprobe wireguard 命令加载 Wire­Guard 内核模块。

debian安装wireguard-go

OpenVZ/LXC VPS 或者不想折腾内核的小伙伴可以安装 wireguard-go,只不过网络性能较低。

1
curl -fsSL git.io/wireguard-go.sh | sudo bash

PS:对于 OpenVZ/LXC 的 VPS 需要执行lsmod | grep tun命令来检查 TUN 模块是否正常加载,若没有请自行咕鸽搜索开启方法,否则是不能正常使用的。

ubuntu安装

WireGuard可从默认的Ubuntu存储库中获得。 要安装它,请运行以下命令:

1
2
sudo apt update
sudo apt install wireguard

这将安装WireGuard模块和工具。WireGuard作为内核模块运行。

配置WARP

安装wgcf

1
curl -fsSL git.io/wgcf.sh | sudo bash

注册 WARP 账户 (将生成 wgcf-account.toml 文件保存账户信息)

1
wgcf register

生成WireGuard配置文件(wgcf-profile.conf)

1
wgcf generate

生成的两个文件记得备份好,尤其是 wgcf-profile.conf,万一未来工具失效、重装系统后可能还用得着。

编辑WireGuard配置文件

1
vim wgcf-profile.conf
1
2
3
4
5
6
7
8
9
10
[Interface]
PrivateKey = *
Address = *
Address = *
DNS = 2001:4860:4860::8888
MTU = 1280
[Peer]
PublicKey = *
AllowedIPs = ::/0
Endpoint = [2606:4700:d0::a29f:c001]:2408

默认的Endpointengage.cloudflareclient.com,解析成ip一般是以下两个结果:

1
2
162.159.192.1
2606:4700:d0::a29f:c001

如果想优先使用warp的ipv4地址访问外部网络,则Endpoint 需要设置为ipv4的地址;ipv6依次类推。

DNS也是一样,如果想用ipv4地址,则需要设置一个ipv4的DNS地址,如8.8.8.8;ipv6则是2001:4860:4860::8888.

将修改好的配置文件移动到指定目录

1
sudo cp wgcf-profile.conf /etc/wireguard/wgcf.conf

开启网络接口

1
sudo wg-quick up wgcf
有可能遇到的问题
1
/usr/bin/wg-quick: line 31: resolvconf: command not found [WireGuard | Debian]

解决方案:

执行

1
sudo ln -s /usr/bin/resolvectl /usr/local/bin/resolvconf

关闭网络接口

1
sudo wg-quick down wgcf

正式启用网络接口

1
2
3
4
# 启用守护进程
sudo systemctl start wg-quick@wgcf
# 设置开机启动
sudo systemctl enable wg-quick@wgcf

使用WARP+

如何获得更多的Warp+流量

自动化脚本:https://github.com/navaneethkm004/warp-plus/raw/main/main.py

需要Python3,执行之前请运行:chmod +x main.py

ID获取方式:

1
cat wgcf-account.toml

输入ID以后,程序开始运行

查看增加的流量:

1
wgcf update && wgcf status

多个设备共享

将多台设备的license_key设置为同一个,然后执行

1
wgcf update && wgcf status

检测warp+是否启用

服务器端执行

1
curl -6 https://cloudflare.com/cdn-cgi/trace

warp=plus则说明启用成功。

warp=on则需要指向以下操作:

  1. 执行wgcf register重新生成一个账户;

  2. 修改生成的wgcf-account.toml,绑定license_key

  3. 执行wgcf generate生成WireGuard VPN配置文件;

  4. 执行sudo cp wgcf-profile.conf /etc/wireguard/wgcf.conf

  5. 启动网络接口,sudo wg-quick up wgcf

  6. 执行curl -6 https://cloudflare.com/cdn-cgi/trace.

如果warp的值没有发生变化,需要重新执行1-6步骤。

END

感谢:

https://p3terx.com/archives/use-cloudflare-warp-to-add-extra-ipv4-or-ipv6-network-support-to-vps-servers-for-free.html

https://hiram.wang/cloudflare-wrap-vps/#2021-03%E6%9B%B4%E6%96%B0-%E5%AE%9E%E7%8E%B0%E6%97%A0%E6%8D%9F%E5%8F%8C%E6%A0%88