因为预算有限,我才费劲地弄了一个 IPv6 小鸡。在这个领域,我的玩具算是有点贵的,一般都是 1 刀、2 刀这种。

SSH 连接小鸡

首先,你得有 IPv6。国内部署 IPv6 已经有几年了,大部分折腾党应该都已经给光猫改成桥接模式了,然后在路由器上开启 SLAAC 无状态配置,这样就可以给你的内网设备分配专属 IPv6 地址。如果没有这个条件,也可以通过全局代理上网的方式获取 IPv6 地址。毕竟,国内网站(特别是 B 站)单栈的情况下,视频加载会更顺畅。

已经获得 IPV6

当然,你也可以不获取 IPv6,而是通过拥有双栈功能的 VPS 搭建代理,然后在 SSH 登录时进行代理设置。

我使用的 SSH 客户端是 XShell,很多人都在用。在连接属性里面可以配置代理。

设置SSH连接代理

小鸡获取 IPv4 访问能力

很多网站不支持 IPv6,包括 GitHub,所以基本上要先将 IPv4 打通。目前有两种方式:DNS64 和 Cloudflare WARP。

通过 DNS64

修改 /etc/resolv.conf 文件的 nameserver,可以使用一些欧洲的公益组织提供的服务,例如:

echo -e "nameserver 2001:67c:2b0::4\nnameserver2001:67c:2b0::6" > /etc/resolv.conf

有一些小鸡的 resolv.conf 文件是不能直接修改的(比如 layer7.net 的就不行),你可以尝试删除并重新创建,然后加上只读属性,防止被覆盖:

rm -f /etc/resolv.conf
echo -e "nameserver 2001:67c:2b0::4•\nnameserver2001:67c:2b0::6" > /etc/resolv.conf
charttr -i /etc/resolv.conf

可能会遇到一些带宽的问题,并且 ping 不通 IPv4。

通过 WARP

利用 Cloudflare 的服务,类似于添加一个虚拟网卡或者 SOCKS5 代理。手动配置比较复杂,这里给一个一键脚本:

bash <(curl -fsSL git.io/warp.sh) menu #这个需要 DNS64 运行,GitHub 不支持 IPv6

我对这个脚本做了一些改动,增加了设定镜像的参数:

MIRROR=https://ghmirror.pp.ua bash <(curl -fsSL https://ghmirror.pp.ua/https://github.com/benzBrake/warp.sh/raw/main/warp.sh) 4

https://ghmirror.pp.ua 是我在 layer7 上运行的一个 GitHub 镜像服务。如果挂了,你可以自己部署:

然后,你可以去 Telegram 搜索 WARP+,获取一个 24PB 的 KEY 使用。

WARP 有时候会掉线,建议设置一个脚本进行保活:

#!/bin/bash

while true; do
    # 获取当前脚本的路径
    script_path=$(dirname "$0")

    # 构建 warp.sh 的完整路径并获取文本并提取 IPv4 Network
    ipv4_network=$(bash "$script_path/warp.sh" status | awk -F 'IPv4[[:space:]]*Network[[:space:]]*:[[:space:]]*' '/IPv4[[:space:]]*Network/ {print $2}')

    # 检查是否包含 "warp"(不区分大小写)
    if echo "$ipv4_network" | grep -qi "warp"; then
        echo "IPv4 Network contains 'warp'. No action needed."
    else
        echo "IPv4 Network does not contain 'warp'. Restarting WireGuard..."
        systemctl restart wg-quick@wgcf
    fi

    # 等待 30 秒
    sleep 30
done

其中 warp.sh 的下载链接是:

https://github.com/benzBrake/warp.sh/raw/main/warp.sh

将保活脚本与 warp.sh 放到同一个目录下,执行以下命令添加计划任务(将 /root/keep-alive/wgcf.sh 修改为你自己的路径):

echo '@reboot screen -UdmS keepwgcfalive /bin/bash /root/keep-alive/wgcf.sh' | crontab -

商家提供的 Debian 模板可能是最精简的,没有安装 crontab:

sudo apt update
sudo apt install cron

安装好 WARP 以后修改 DNS

rm -f /etc/resolv.conf
echo -e "nameserver 2606:4700:4700::1111\nnameserver2606:4700:4700::1001" > /etc/resolv.conf
chattr -i /etc/resolv.conf

解决纯 ipv6 小鸡建站的问题

这个问题很常见,使用 Cloudflare CDN 可以解决。Cloudflare 提供免费的 CDN 服务,支持 IPv6 回源。这个过程比较简单,不再赘述,可以在网上找到很多教程。

1panel 面板的使用问题

1panel管理面板默认情况下监听 IPv4,无法访问管理面板,使用命令改为监听 IPv6。

1pctl listen-ip ipv6

这时候还不够啊,使用桥接的 Docker 容器还是无法上网,得增加 IPv6 才行。详见:

https://1panel.cn/docs/user_manual/containers/setting/#2-ipv6

没有可分配的 IPv6 就开工单。