当前位置:首页 > 互联网 > 正文内容

使用 Cloudflare WARP 给 VPS 服务器免费添加 IPv4 或 IPv6 网络支持

cmc4年前 (2021-03-20)互联网2578


前言

WARP 是 Cloud­flare 提供的一项基于 Wire­Guard 的网络流量安全及加速服务,能够让你通过连接到 Cloud­flare 的边缘节点实现隐私保护及链路优化。其连接入口为双栈 (IPv4/IPv6),因此单栈服务器可以连接到 WARP 来获取额外的网络连通性支持。

比如可以让仅具有 IPv6 的服务器直接访问 IPv4 网络,不再局限于 DNS64 的束缚,能自定义任意 DNS 解析服务器,也能让仅具有 IPv4 的服务器获得 IPv6 网络的访问能力,可以作为 IPv6 Only VPS 的 SSH 跳板。

与之前介绍的 Hurricane Electric IPv6 Tunnel Broker 不同,WARP 并不提供公网 IP 地址,而是以 NAT 的方式去访问外部网络。此外 Cloud­Flare WARP 的网络质量目前要比 HE 好非常多的。

安装 WireGuard

既然 WARP 是基于 Wire­Guard 的,那么我们首先就需要安装 Wire­Guard 。由于博主使用的是 De­bian ,所以只写了 De­bian 的 Wire­Guard 详细安装方法,其它系统可以参考官方文档来进行安装。

  • 首先安装一些必要的工具,防止接下来的操作出问题。

    apt update apt install curl sudo lsb-release -y
  • 按照《Debian Linux VPS WireGuard 安装教程》中简单的几个步骤完成安装工作。

使用 wgcf 生成 WireGuard 配置文件

wgcf 是 Cloud­flare WARP 的非官方 CLI 工具,它可以模拟 WARP 客户端注册账号,并生成通用的 Wire­Guard 配置文件。

  • 安装 wgcf

    curl -fsSL git.io/wgcf.sh | sudo bash
  • 注册 WARP 账户 (将生成 wgcf-account.toml 文件保存账户信息)

    wgcf register
  • 生成 Wire­Guard 配置文件 (wgcf-profile.conf)

    wgcf generate

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

编辑 WireGuard 配置文件





将配置文件中的节点域名 engage.cloudflareclient.com 解析成 IP。不过一般都是以下两个结果:

162.159.192.1
2606:4700:d0::a29f:c001





这样做是因为后面的操作要根据 VPS 所配备的网络协议的不同去选择要连接 WARP 的节点是 IPv4 或 IPv6 协议。

为 IPv4 Only 服务器添加 IPv6 网络支持

将配置文件中的 engage.cloudflareclient.com 替换为 162.159.192.1,并删除 AllowedIPs = 0.0.0.0/0。即配置文件中 [Peer] 部分为:

[Peer]
PublicKey = bmXOC+F1FxEMF9dyiK2H5/1SUtzH0JuVo51h2wPfgyo=
AllowedIPs = ::/0
Endpoint = 162.159.192.1:2408
原理:AllowedIPs = ::/0参数使得 IPv6 的流量均被 Wire­Guard 接管,让 IPv6 的流量通过 WARP IPv4 节点以 NAT 的方式访问外部 IPv6 网络。

此外配置文件中默认的 DNS 是 1.1.1.1,博主实测其延迟虽然很低,但解析结果并不理想。由于它将替换掉系统中的 DNS 设置 (/etc/resolv.conf),同时为了防止单 DNS 服务器故障导致无法解析,建议使用不同组织提供的公共 DNS 服务器组合。以下配置供参考,小伙伴们请根据实际情况来填写。

DNS = 9.9.9.10,8.8.8.8,1.1.1.1

为 IPv6 Only 服务器添加 IPv4 网络支持

将配置文件中的 engage.cloudflareclient.com 替换为 [2606:4700:d0::a29f:c001],并删除 AllowedIPs = ::/0。即配置文件中 [Peer] 部分为:

[Peer]
PublicKey = bmXOC+F1FxEMF9dyiK2H5/1SUtzH0JuVo51h2wPfgyo=
AllowedIPs = 0.0.0.0/0
Endpoint = [2606:4700:d0::a29f:c001]:2408
原理:AllowedIPs = 0.0.0.0/0参数使得 IPv4 的流量均被 Wire­Guard 接管,让 IPv4 的流量通过 WARP IPv6 节点以 NAT 的方式访问外部 IPv4 网络。

此外配置文件中默认的 DNS 是 1.1.1.1,由于是 IPv4 地址,故查询请求会经由 WARP 节点发出。由于它将替换掉系统中的 DNS 设置 (/etc/resolv.conf),为了防止当节点发生故障时 DNS 请求无法发出,建议修改为 IPv6 地址的 DNS 。以下配置供参考,小伙伴们请根据实际情况来填写。

DNS = 2620:fe::10,2001:4860:4860::8888,2606:4700:4700::1111

双栈服务器置换网络

有时服务器本身就是双栈的,但是由于种种原因我们可能并不想使用其中的某一种网络,这时也可以通过 WARP 接管其中的一部分网络连接隐藏自己的 IP 地址。至于这样做的目的,最大的意义是减少一些滥用严重机房出现验证码的概率;同时部分内容提供商将 WARP 的落地 IP 视为真实用户的原生 IP 对待,能够解除一些基于 IP 识别的封锁。

⚠️ 需要注意的是双栈流量在默认配置的情况下均被 WARP 接管后就无法连接到服务器了。因此在 IPv4 与 IPv6 之间必须做一个取舍,以防这样的情况发生。。

配置方法参考以上两种情况,需要使用 WARP 接管哪一个网络就使用哪种方案。

启用 WireGuard 网络接口

  • 将 Wire­Guard 配置文件复制到 /etc/wireguard/ 并命名为 wgcf.conf

    sudo cp wgcf-profile.conf /etc/wireguard/wgcf.conf
  • 开启网络接口(命令中的 wgcf 对应的是配置文件 wgcf.conf 的文件名前缀)。

    sudo wg-quick up wgcf



  • 执行执行ip a命令,此时能看到名为wgcf的网络接口,类似于下面这张图:



  • 执行以下命令检查是否连通。同时也能看到正在使用的是 Cloud­flare 的网络。

    # IPv4 Only VPScurl -6 ip.p3terx.com# IPv6 Only VPScurl -4 ip.p3terx.com



  • 测试完成后关闭相关接口,因为这样配置只是临时性的。

    sudo wg-quick down wgcf
  • 正式启用 Wire­Guard 网络接口

    # 启用守护进程sudo systemctl start wg-quick@wgcf
  • # 开机启动sudo systemctl enable wg-quick@wgcf

IPv4 与 IPv6 网络优先级设置

TIPS: 这不是一定要设置的,小伙伴们请根据实际需求来选择。

当访问的网站是双栈且服务器也是双栈,默认情况下 IPv6 优先级高于 IPv4,应用程序优先使用 IPv6 地址。

理论上应该是如下情况:

  • IPv4 Only 服务器优先通过新增的 WARP IPv6 网络去访问外部网络。

  • IPv6 Only 服务器优先通过原来的 IPv6 网络去访问外部网络。

然而 WARP 的情况有点特殊,现实的情况有可能是:

  • IPv4 Only 服务器优先通过原来的 IPv4 网络去访问外部网络。

  • IPv6 Only 服务器优先通过原来的 IPv6 网络去访问外部网络。

所以根据实际的需求就要手动去设置优先级。

这仅限于 VPS 本身发起的网络访问。

IPv4 优先

编辑 /etc/gai.conf 文件,在末尾添加下面这行配置:

precedence  ::ffff:0:0/96   100

一键添加命令如下:

echo 'precedence  ::ffff:0:0/96   100' | sudo tee -a /etc/gai.conf

IPv6 优先

编辑 /etc/gai.conf 文件,在末尾添加下面这行配置:

label 2002::/16   2

一键添加命令如下:

echo 'precedence  label 2002::/16   2' | sudo tee -a /etc/gai.conf

验证优先级

执行 curl ip.p3terx.com 命令,显示 IPv4 地址则代表 IPv4 优先,否则为 IPv6 优先。

Cloudflare WARP 网速测试

博主目前暂时还未找到很好的方法来测试指定网络接口的速度,而目前已知 speedtest.net 提供的测速是 IPv4 Only 的,那么就可以使用其提供的 CLI 工具在 IPv6 Only 的 VPS 上来测试通过 WARP 访问外部网络的极限网速。

  • 安装 Ookla Speedtest CLI

    curl -fsSL git.io/speedtest-cli.sh | sudo bash
  • 执行speedtest命令测速。

博主测速使用的是 EU­serv 德国 IPv6 Only 小鸡,即使使用的是 wireguard-go 其网速依然很猛,几轮测试下来速度都在 500M 上下。可以预见的是这个速度应该远未达到 WARP 的极限。





尾巴

Cloud­flare 一直以来为广大人民群众免费提供优秀的网络服务,希望大家善待它,不要肆意滥用。


扫描二维码推送至手机访问。

版权声明:本文由陈茂春的博客发布,如需转载请注明出处。

本文链接:https://www.0817cmc.com/post/766.html

分享给朋友:

相关文章

32-bit Windows XP无法支持4GB内存?

INQ近日利用4条1GB OCZ PC3700 EB Platinum内存(Dual Channel CL2-3-3-8)组合进行试验,发现32-bit Windows XP操作系统无法支持。  4GB内存?确实有点前卫,不过Nvidia和...

2万元的笔记本卖6千 一个奸商的忏悔录

我的低价陷井  这世界,什么样的人不爱占小便宜?   即然有“低价”需求,自然要有“低价”的供应,所谓供求平衡嘛!   眼见各网站电子商务开展的如火如茶,若不趋势捞得一笔,怎对得起生我养育我的父老乡亲!   那就开个网站吧?简单!稍稍懂点简...

脱吧,都脱光了,还能脱什么

脱吧,都脱光了,还能脱什么

    只要环顾四周,舆论与报道,一夜情与从妓如流现象,从眼睛到耳朵,我们都可以深刻的感到这个时代已经不知不觉的进入了生殖器的时代。我毫不保守的预测,一场崭新的生殖器崇拜复兴时期正在来临,我们伟大的祖先那辉煌的...

选购国外虚拟主机的一些心得体会

我购买国外主机有两个月时间了,对如何购买的经验可以说有一些了,下面是我在这两个月时间内寻找和购买国外主机的一些经验之谈,希望能对国内一些也需要购买国外主机的人有一些帮助。  国外主机的特点  大多数是PHP+MYSQL+APACHE+CPA...

当前流行的虚拟主机限制方式优缺点分析

虚拟主机的资源(CPU、内存、带宽等)总是有限的,为了保证虚拟主机上的数百用户都能正常访问,必须对每个虚拟主机站点进行一定的限制,以防止个别访问量较大的站点占据大部分的服务资源而导致服务器速度慢或者不稳定的情况。 当前的虚拟主机主要分...

如何避开域名注册服务中的陷阱?

消费者在考虑注册域名时,要先考虑是否能从中获得的服务,其次才是同等条件下的价格落差。   虽然美国是互联网的发源地,中国同世界其他国家一样在域名方向受制于美国,但中国的域名和虚拟主机价格却是全球最低的。   以一个国际域名为例,国内的零售价...

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。