warp获取IPv6实现解锁奈飞,防谷歌验证等

1.前言

1.1关于奈飞

Netflix —— 大家也并不是很陌生,美国奈飞公司,我们经常简称它为网飞或是奈飞。它是一家会员订阅制的流媒体播放平台,成立于1997年,总部位于美国的加利福尼亚州。经常看奈飞的人,应该知道下面的五个概念:

不提供服务 – 所在的地区奈飞没开通,连自制剧也看不了

宽松版权 – 有些奈飞拍摄的影片不是特别注重版权,所以限制放的很开

解锁自制剧 – 代表可以看由奈飞自己拍摄的影片

解锁非自制剧 – 代表可以看奈飞买下的第三方版权影片

地域解锁 – 奈飞在不同的地区可以看的片源都是不同的,有些影片只能在特定区观看

1.2关于virmach等廉价vps机器验证

virmach等廉价vps的IP已经被google等大公司加进了黑名单,如每次使用google搜索,都会弹出机器人验证。

2.准备工作

1、VPS 一台,重置主流的操作系统

2、域名一个,做好相应的解析(用于搭建 Xray 节点 或 v2ray节点)

3、奈飞会员账号一个

3.Netflix 解锁检测脚本

运行以下代码,即可查询自己的 VPS 是否支持奈飞全解锁或是半解锁!

wget -O nf https://github.com/sjlleo/netflix-verify/releases/download/2.01/nf_2.01_linux_amd64 && chmod +x nf && clear && ./nf

4.安装 WireGuard

4.1添加 back­ports 源

apt install curl lsb-release -y
echo "deb http://deb.debian.org/debian $(lsb_release -sc)-backports main" | tee /etc/apt/sources.list.d/backports.list
apt update

4.2安装网络工具包

apt install net-tools iproute2 openresolv dnsutils -y

4.3安装 wireguard-tools

apt install wireguard-tools --no-install-recommends

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

apt -t $(lsb_release -sc)-backports install linux-image-$(dpkg --print-architecture) linux-headers-$(dpkg --print-architecture) --install-recommends -y
reboot     # 重启

4.4生成 WireGuard 配置文件

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

curl -fsSL git.io/wgcf.sh | bash    #  安装 wgcf
wgcf register                       #  注册 WARP 账户 (生成 /root/wgcf-account.toml 文件保存账户信息)
wgcf generate                       #  生成 /root/wgcf-profile.conf 配置文件

4.5编辑 WireGuard 配置文件

编辑 /root/wgcf-profile.conf 文件,其中可以在服务器端解析 engage.cloudflareclient.com 的 ip

nslookup engage.cloudflareclient.com

解析的结果为 162.159.192.1

将配置文件中的 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

若你的 VPS 只有 IPv6,请看这里:

下面详细说了 IPv4 以及 IPv6 分别应该如何去做。

只有 IPv4 的服务器添加 WARP 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 = 8.8.8.8,8.8.4.4,2001:4860:4860::8888,2001:4860:4860::8844

只有 IPv6 的服务器添加 WARP 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 这行。以下配置供参考:

DNS = 2001:4860:4860::8888,2001:4860:4860::8844,8.8.8.8,8.8.4.4

4.6测试 WireGuard 网络接口

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

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

开启网络接口
(命令中的 wgcf 对应的是配置文件 wgcf.conf 的文件名前缀)。

wg-quick up wgcf

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

curl -6 ip.p3terx.com

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

wg-quick down wgcf

4.7启用 Wire­Guard 网络接口

systemctl start wg-quick@wgcf   # 启用守护进程
systemctl enable wg-quick@wgcf  # 设置开机启动
reboot                          #重启vps

5.搭配V2ray+vmess或x-ray

5.1搭配V2ray+vmess

如果是手动安装了v2ray+vmess+ws的话,按照接下来的步骤进行。

给v2ray的出站流量设置 IPv4 和 IPv6 分流,以下是完整v2ray伪装环境的config.json模版,照着改 “outbounds” 和”routing”下面的相关设置。

{
   "inbound": {
    "streamSettings": {
      "network": "ws",
      "wsSettings": {
        "path": "/ws/",
        "headers": {
          "Host": "v2fly.org"
        }
       }
    },
    "protocol": "vmess",
    "port": 10086, 
    "settings": {
      "clients": [
         {
          "id": "ea5309ab-0645-4bd9-859e-e3c19d1b5200",
          "level": 0
         }
       ],
       "decryption": "none"
    }
  },
    "outbounds": [  #这里注意一下 是outbounds,不是outbound。
      {
        "tag":"IP4_out",
        "protocol": "freedom",
        "settings": {}
      },
      {
        "tag":"IP6_out",
        "protocol": "freedom",
        "settings": {
          "domainStrategy": "UseIPv6"
          }
      }
    ],
  "log" : {
    "access": "/var/log/v2ray/access.log",
    "error": "/var/log/v2ray/error.log",
    "loglevel": "warning"
  },
  "routing": {
    "settings": {
      "rules": [
        {
          "ip": ["geoip:private"], 
          "type": "field", 
          "outboundTag": "blocked"
        },
        {
          "type": "field", 
          "outboundTag": "IP6_out",
          "domain": ["geosite:netflix"] #在这里添加要使用ipv6的网址
          "domain": ["geosite:google"]
        },
        {
          "type": "field", 
          "outboundTag": "IP4_out",
          "network": "udp,tcp"
        }
      ]
    }, 
    "strategy": "rules"
  }
}

5.2安装 Xray 面板

下面是安装 V2-UI 面板的官方命令

bash <(curl -Ls https://blog.sprov.xyz/v2-ui.sh)

修改 V2-UI 配置
以下的配置是视频中说用的配置文件,大家可以照搬,或是自行修改。

{
  "api": {
    "services": [
      "HandlerService",
      "LoggerService",
      "StatsService"
    ],
    "tag": "api"
  },
  "inbounds": [
    {
      "listen": "127.0.0.1",
      "port": 62789,
      "protocol": "dokodemo-door",
      "settings": {
        "address": "127.0.0.1"
      },
      "tag": "api"
    }
  ],
  "outbounds": [
      {
      "protocol": "freedom",
      "settings": {
         "domainStrategy": "UseIPv6"         
       },
      "tag": "IP-V6"
    },
    {
      "protocol": "blackhole",
      "settings": {},
      "tag": "blocked"
    }
  ],
  "policy": {
    "system": {
      "statsInboundDownlink": true,
      "statsInboundUplink": true
    }
  },
  "routing": {
    "rules": [
      {
        "type":"field",
        "domain": [
          "geosite:netflix", #在这里添加要使用ipv6的网址
          "geosite:google"
        ],
        "inboundTag":  [
          "all-in"
         ],
        "outboundTag": "IP-V6"
      },
      {
        "inboundTag": [
          "api"
        ],
        "outboundTag": "api",
        "type": "field"
      },
      {
        "ip": [
          "geoip:private"
        ],
        "outboundTag": "blocked",
        "type": "field"
      },
      {
        "outboundTag": "blocked",
        "protocol": [
          "bittorrent"
        ],
        "type": "field"
      }
    ]
  },
  "stats": {}
}

若你是自建的 Xray 节点,不是用面板搭建的,可以通过修改 Xray 的配置文件,来进行 IPv6 的出口指定和路由设置。

在 VPS 目录 /usr/local/etc/xray 找到 config.json 文件,替换整个 outbounds ,请注意 "outbounds" 后面的标点符号 。

比如:找到如下图所示的地方,选中后,全部粘贴就好了。

"outbounds": [
    {
      "tag":"IP4_out",
      "protocol": "freedom",
      "settings": {}
    },
    {
      "tag":"IP6_out",
      "protocol": "freedom",
      "settings": {
        "domainStrategy": "UseIPv6"
      }
    }
  ],
  "routing": {
    "rules": [
      {
        "type": "field",
        "outboundTag": "IP6_out",
        "domain": ["geosite:netflix"], // netflix 走 IPv6,可以多写几个,比如 "domain": ["geosite:google"] 
      },
      {
        "type": "field",
        "outboundTag": "IP4_out",
        "network": "udp,tcp"
      }
    ]
  }
}

6.后记

通过 Qv2ray 软件的日志功能,我们可以明显的发现,我们现在访问奈飞的时候,用的是 IPV6 的方式,如下图:

复查其他线路有没有走 IPv6:https://www.v2rayssr.com/go?url=https://test-ipv6.com/index.html.zh_CN

7.本期参考资料:

  1. https://www.v2rayssr.com/warp-netflix.html
  2. https://eveaz.com/1138.html