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.22 安装docker
wget -qO- get.docker.com | bash
设置docker开机自启动
systemctl enable docker
以下配置会增加一段自定义内网 IPv6 地址,开启容器的 IPv6 功能,以及限制日志文件大小,防止 Docker 日志塞满硬盘(泪的教训):
直接复制粘贴在finalshell回车键运行,再无需任何设置
cat > /etc/docker/daemon.json <<EOF
{
"registry-mirrors": [
"https://docker.xuanyuan.me",
"https://dockerpull.pw",
"https://hub.mirrorify.net",
"https://docker.1ms.run",
"https://docker.gally.cloudns.ph",
"https://docker.m.daocloud.io",
"https://docker.imgdb.de",
"https://docker-0.unsee.tech",
"https://docker.hlmirror.com",
"https://docker.13140521.xyz",
"https://lispy.org",
"https://docker.xiaogenban1993.com"
],
"log-driver": "json-file",
"log-opts": {
"max-size": "20m",
"max-file": "3"
},
"ipv6": true,
"fixed-cidr-v6": "fd00:dead:beef:c0::/80",
"experimental":true,
"ip6tables":true
}
EOF
重启 Docker 服务:
systemctl restart docker
portainer-ce 2.11中文版
简要说明, 两种使用方式任选其一皆可
- docker-compose
---
version: "2.1"
services:
portainer:
image: outlovecn/portainer-cn:latest
container_name: portainer
restart: always
ports:
- "9000:9000"
- "8000:8000"
volumes:
- ./dockerconfig/portainer:/data
- /var/run/docker.sock:/var/run/docker.sock
- docker cli
docker run -d -p 8000:8000 -p 9000:9000 --name=portainer --restart=always -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data outlovecn/portainer-cn:latest
1.3 安装 1panel 面板
ubuntu、debian 系统,运行:
curl -sSL https://resource.fit2cloud.com/1panel/package/quick_start.sh -o quick_start.sh && sudo 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,我们可以看到已经成功访问。
评论区