1 前置条件
1.1 查看本机网络信息
运行 ip addr 查看本机网络信息
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq state UP group default qlen 1000
link/ether aa:aa:ee:12:ee:34 brd ff:ff:ff:ff:ff:ff
altname enp0s18
altname ens18
inet6 2a01:484:222:1d0e::1111:60/64 scope global
valid_lft forever preferred_lft forever
inet6 aaaa::bbbb:cccc:dddd:eeee/64 scope link
valid_lft forever preferred_lft forever
这里我们将 2a01:484:222:1d0e::1111:60 绑定到 CF 域名,例如:
编辑
1.2 使用 WARP 添加 IPv4 出口
纯 ipv 6 网络可能无法运行 1panel 安装脚本,需要为纯 ipv6 网络添加 ipv4 出口。
运行脚本后选择:
-
为 IPv6 only 添加 WARP IPv4 网络接口 (bash menu.sh 4)
wget -N https://gitlab.com/fscarmen/warp/-/raw/main/menu.sh && bash menu.sh
1.3 安装 1panel 面板
这里我是 debian 系统,运行:
curl -sSL https://resource.fit2cloud.com/1panel/package/quick_start.sh -o quick_start.sh && bash quick_start.sh
!!! 注意:设置 1 Panel 端口(默认为 29966):2052
此处为 CF CDN 支持端口,如果安装时未选择此端口或其他 CF 支持的端口,需要卸载重新安装 1panel。
需要卸载 1Panel,重新安装时指定服务器规定的端口
1pctl uninstall
查询面板路径 获取 1Panel 用户信息
1pctl user-info
1.4 将面板端口绑定至 tcp6
使用 1pctl listen-ip ipv6 命令将端口绑定至 tcp6
1.5 访问面板
此刻我们尝试直接通过 ipv6 地址访问面板,
[aaa:bbb:ccc:ddd::eee:fff]:2052/[面板地址]
如果不能访问,等待一段时间再试试。 成功访问,我们可以进入下一步。
2 面板 ipv6 网络设置
接下来需要在 1panel 面板中进行 ipv6 设置。
2.1 删除容器网络
首先点击路径:容器 - 网络 - 1panel-network,
我们可以看到 "EnableIPv6": false ,ipv6 未启用。 这边我们将它直接删除。
编辑
2.2 设置子网
还记得我们开头查询过本机的 ipv6 地址为 2a01:484:222:1d0e::1111:60/64,我们可知它的子网是 2a01:484:222:1d0e::/64(具体怎么转化请自行学习)。
点击路径:容器 - 配置,
子网填入 2a01:484:222:1d0e::/64,把高级设置里的 ip6tables 和 experimental 勾上。
然后会自动进行一次重启。
编辑
2.3 添加容器网络
我们回到路径:容器 - 网络 - 1panel-network,
将网络 1panel-network 添加回来,
模式:bridge
IPv4 子网:172.18.0.0/16
IPv4 网关:172.18.0.1
勾选 IPv6(子网地址可随意)
IPv6 子网:fc00:0:0:1::/64
IPv6 网关:fc00:0:0:1::1
编辑
2.4 测试通过域名访问面板
接下来我们可以尝试直接通过域名访问面板,这样我们以后就可以通过 ipv4 单栈来访问纯 ipv6 主机的面板。
编辑
3 安装 halo
按照官方教程依次安装:OpenResty, MySQL, Halo
3.1 修改 Halo 容器端口
依次安装好以上 3 个应用后,我们发现直接通过 [ipv6]: 8080 是无法访问的,我们需要进行一下修改。 路径:容器 - 容器,
选择 halo 这个容器,点击右侧更多 - 编辑,
看到默认的暴露端口是 127.0.0.1:8080,修改为 :::8080 (3个冒号)
编辑
3.2 ipv6 访问测试
然后我们尝试通过 [ipv 6]: 8080 访问,可以正常访问。
编辑
4 安装 Nginx Proxy Manager
接着我们通过应用商店安装 Nginx Proxy Manager,发现通过 [ipv6]:端口号 也是无法访问的。
- 为了使用 CF CDN,先在路径:应用商店 - 已安装 - nginx-proxy-manager - 参数 - 编辑,
将【控制台端口】改为 2082。 - 路径:容器 - 容器,以此类推将 Nginx Proxy Manager 容器端口的 127.0.0.1 用两个冒号 :: 替代。
- 编辑
- 尝试访问 [ipv6]:2082,成功访问。
4.1 ipv6 地址反代
注意输入 [ipv6] 地址是,左右两边要加上中括号 []。
4.2 证书设置
5 CloudFlare CDN 支持端口
CF CDN 并不是支持所有的端口,只支持以下端口:
HTTP
- 80
- 8080
- 8880
- 2052
- 2082
- 2086
- 2095
HTTPS
- 443
- 2053
- 2083
- 2087
- 2096
- 8443
6 ipv6 CDN 访问测试
现在访问 ipv6blog.ulrictech.com,我们可以看到已经成功访问。
评论区