logo NodeSeekbeta

【教程】VPS 通过 incus 创建容器挂澳门 WARP IP,实现IP送澳,Google油管长视频无广告

【教程】VPS 通过 incus 创建容器挂澳门 WARP IP,实现IP送澳,Google油管长视频无广告

一、把 tunnelbroker.net 的账号改到澳门

首先到美国 "Hurricane Electric" 公司(以下简称 HE)提供免费 IPv6 地址的网站:

https://tunnelbroker.net/

网站创建账号。国家和地址信息用澳门地址生成器,填澳门地址(俄罗斯也行)。原先已经有账号的,地址修改成澳门。

创建隧道。隧道接入服务器选一个离 VPS 位置近、ping 延迟低的,最好延迟 10 毫秒以内。在列表中找几个离自己 VPS 地理位置较近的接入服务器 IP,从 VPS 用大包长时间逐个 IP 用 ping 命令测试,选一个延迟最低、抖动最小的服务器。不会选就把 ping 的结果丢给 AI。

默认会给分配一个 /64 长度的 IPv6 地址段,新账户 24 小时后可以再申请分配一个 /48 长度的(包含 65536 个 /64)地址段。老账户创建完隧道立马就可以申请分配 /48 的。

隧道建好后等待 2-4 周,让 HE 把 IPv6 地址段给广播送到澳门(期间 VPS 是否连接隧道没有影响)。等待期间可以用 ippure.com 查询 IP 地址段是否已经完成 "送澳"。实测 /48 长度的会比 /64 长度的快不少,大约两周就能完成送澳。/64 的大约需要一个月。

最先认可 HE 广播的网段位置信息的是 MaxMind,需要 2 周左右。接下来是 ipinfo.io,然后是 IP2Location 每月 1 号更新数据库。这三家都认可 IP 段 "送澳" 后,再过个三五天,Cloudflare 就会采纳,给用这个 IPv6 地址段连接 WARP 的 VPS 分配澳门的 WARP IP。

谷歌虽然不信 HE 的 IP 广播定位,但是信 Cloudflare。所以会认为 VPS 在澳门,不显示广告。

二、VPS 主机连接隧道,配置策略路由

此处以 VPS 系统是 "Ubuntu Server"(网络管理器是 netplan)为例进行演示,其它系统可参考进行。

为保护隐私已将真实 IP 地址进行替换。此教程假设 VPS 和 HE 分配的 IP 如下:

项目 地址
VPS IP 198.51.100.34
HE 隧道服务器 IP 64.62.134.130
HE 的 "Client IPv6 Address" 2001:470:1f:3b2::2/64
HE 的 "Server IPv6 Address"(隧道默认网关) 2001:470:1f:3b2::1/64
HE 分配的 "Routed /48" 网段 2001:470:1a87::/48

"Routed /48" 实测送澳速度更快,所以此教程以 /48 地址为例进行演示。如果愿意等时间长一点用 /64 也是一样的。

一个 /48 地址段可拆分成 65536 个标准的 /64 地址段,此教程选择 /48 中的第一个 /64 地址段(即 2001:470:1a87::/64)。

以 root 用户身份登录 VPS。

创建 netplan 的隧道配置文件:

cat << EOF > /etc/netplan/60-he-ipv6.yaml
network:
  version: 2
  tunnels:
    he-ipv6:
      mode: sit
      remote: 64.62.134.130
      local: 198.51.100.34
      addresses:
        - "2001:470:1f:3b2::2/64"
      # 重点:为了不影响 VPS 主机,创建一个新的 100 号路由表
      routes:
        - to: "::/0"
          via: "2001:470:1f:3b2::1"
          table: 100
      # 重点:配置策略路由规则,让容器使用的 /64 网段匹配 100 号路由表
      routing-policy:
        - from: "2001:470:1a87::/64"
          table: 100
EOF
chmod 600 /etc/netplan/60-he-ipv6.yaml

注意:请将上述命令中的 IP 地址替换为你自己的 VPS IP、HE 隧道服务器 IP、Client IPv6 Address 以及你自己的 Routed /48 中的第一个 /64 网段。

测试 netplan 配置:

netplan try

让 netplan 配置生效:

netplan apply

ping 测试,此时应该可以 ping 通对端:

ping 2001:470:1f:3b2::1

三、用 oneclickvirt 一键脚本安装 incus

以 root 用户身份登录系统。

1. 检测硬件配置是否满足要求

cd /root
bash <(curl -sSLk https://raw.githubusercontent.com/oneclickvirt/incus/main/scripts/pre_check.sh)

2. 安装 incus,等待自动重启

curl -L https://raw.githubusercontent.com/oneclickvirt/incus/main/scripts/incus_install.sh -o incus_install.sh && chmod +x incus_install.sh && bash incus_install.sh

如果后续提示 btrfs 或者 zfs 之类的模块无法加载,可以重启后再次运行这个安装脚本。再不行就再重启运行,直到提示安装成功。

四、创建并配置 incus 容器

cd /root

创建容器脚本使用方法:

# ./buildct.sh 容器名称 CPU核数 内存大小 硬盘大小 SSH端口 外网起端口 外网止端口 下载速度 上传速度 是否启用IPV6(Y or N) 系统(留空则为debian11)

创建一个名为 "warp" 的容器,内存 256M,硬盘 1G,SSH 端口 10022,映射外网 20000-20999 端口,上传下载限速 500Mbps,开启 IPv6,系统选择 Alpine Linux 3.24:

./buildct.sh warp 1 256 1 10022 20000 20999 500 500 Y alpine3.24

授权容器使用 WireGuard:

incus config device add warp tun unix-char path=/dev/net/tun
incus config set warp linux.kernel_modules tun,wireguard
incus restart warp

因为安装 incus 前已经连接了 he-ipv6,一键脚本会自动给 incus 网桥配置 he-ipv6 隧道接口同网段的 IP。但这样实际是不通的,需要修改 incus 配置,把 HE 路由过来的网段配置给容器使用。

1. 给 incus 网桥分配 IP

任选 "Routed /48" 网段中第一个 /64 地址段中的一个 IP:

incus network set incusbr0 ipv6.address=2001:470:1a87::1/64

2. 降低 incus 网桥的 MTU 值以匹配 HE 隧道

incus network set incusbr0 bridge.mtu 1480

3. 关闭 IPv6 的 NAT

因为我们用的是原生公网 IPv6 地址,不需要 NAT:

incus network set incusbr0 ipv6.nat=false

4. 开启 incus 层面的 IPv6 路由支持

incus 会自动处理邻居发现 NDP 和本地路由:

incus network set incusbr0 ipv6.routing=true

5. 检查并清理多余网卡

查看容器配置,如果有两个网卡,需要删除一键脚本配置错误的 eth1 网卡:

incus list
incus config device remove warp eth1
incus restart warp

6. 修改 oneclickvirt 一键脚本设置的全局 IPv6 NAT

只保留针对 IPv4 的 NAT:

nano /etc/nftables.conf

把 oifname != "incusbr0" masquerade 改成:

ip version 4 oifname != "incusbr0" masquerade

保存退出,然后重载防火墙配置:

nft -f /etc/nftables.conf

五、容器内装一键脚本连接 WARP

进入容器:

incus exec warp bash

禁止 udhcpc 修改 /etc/resolv.conf:

cat << EOF > /etc/udhcpc/udhcpc.conf
RESOLV_CONF="no"
EOF
cat << EOF > /etc/dhcpcd.conf
nohook resolv.conf
EOF

创建符合一键脚本要求(第一行必须是 # Generated by resolvconf)的 resolv.conf 文件:

cat << EOF > /etc/resolv.conf
# Generated by resolvconf
nameserver 1.1.1.1
nameserver 8.8.8.8
EOF

安装 WARP 脚本:

wget -N https://gitlab.com/fscarmen/warp/-/raw/main/menu.sh && bash menu.sh

连接 WARP。在出现的菜单中依次选择:

  1. 3. 为 原生双栈 添加 WARP 双栈网络接口 (bash menu.sh d)
  2. 1. wireguard 内核 (默认)
  3. 1. 全局 (默认)
  4. 2. IPv6

六、安装协议

容器内按照常规方法用一键脚本或者各种面板安装需要的协议,注意端口号要在映射的端口范围内。
客户端连接,即可实现 Google 长视频无广告。

123
  • ⚠️ 重要提醒:送澳请尽量选香港 VPS

    实测情况:用洛杉矶 VPS 成功拿到 Cloudflare 的澳门 WARP IP 后,使用了大约一个月,IP 又被 Cloudflare "送回"洛杉矶了(标志是 ipinfo.io 对该 IP 的区域识别从澳门变回洛杉矶)。同期另一台香港 VPS 用同样的方法操作,目前 IP 稳定留在澳门,没有回退。

    具体原因暂未完全查明,但 VPS 所在地区距离澳门的远近与 IP 稳定性似乎有一定关联。因此建议大家送澳时尽量选择香港 VPS,成功率和持久性都会好很多。

  • 好贴

  • 技术活

  • xhj001 为什么不在代理软件服务器端里面直接分流到你的隧道呢

  • @huai #4
    也许有人需要。你用不到的话可以关闭这个标签。

  • 好帖收藏 xhj003

  • @niubility #5 不明白 为什么要多加个 incus xhj001 有什么作用吗

  • 有意思,不过我选择浏览器拦截。。支持一下

  • 感谢对我很有用

  • 直接分流不行吗?

123

你好啊,陌生人!

我的朋友,看起来你是新来的,如果想参与到讨论中,点击下面的按钮!

📈用户数目📈

目前论坛共有73037位seeker

🎉欢迎新用户🎉