纯ipv6服务器安装宝塔后必须手动启用ipv6监听,否则面板仅绑定0.0.0.0无法响应ipv6请求;需立即执行echo '::' > /www/server/panel/data/ipv6.pl并重启面板,且访问时必须用https://[ipv6地址]:8888格式。

纯IPv6服务器上装宝塔,不手动干预 ipv6.pl 和监听配置,面板根本打不开——安装脚本完全不识别网络类型,/www/server/panel/data/ipv6.pl 默认不存在,bind_addr = '0.0.0.0' 会一直生效,IPv6 请求直接被丢弃。
确认系统已启用并连通 IPv6
这是所有操作的前提,跳过这步,后面全白忙。宝塔不会替你配网络,只依赖系统已有能力。
- 执行
ip -6 addr show,确认输出中存在global类型地址(非fe80::/10或fd00::/8) - 执行
ping6 -c 4 2400:3200:baba::1测试 DNS 连通性;失败则检查/etc/resolv.conf是否含 IPv6 nameserver(如nameserver 2400:3200:baba::1) - 若无有效地址,需编辑网卡配置(如
/etc/sysconfig/network-scripts/ifcfg-eth0),追加:IPV6INIT=yes、IPV6ADDR=你的IPv6地址/64、IPV6_DEFAULTGW=你的网关
安装后立即写入 ipv6.pl 并重启面板
宝塔安装过程不生成 ipv6.pl,也不读取系统网络状态,必须人工注入且立即生效。
- 安装命令(以 6.0 版本为例):
wget -O install.sh http://download.bt.cn/install/install_6.0.sh && bash install.sh - 安装完成后**立刻**执行:
echo '::' > /www/server/panel/data/ipv6.pl(注意:不是True,新版不认) - 必须执行
/etc/init.d/bt restart,否则变更无效;可用netstat -tlnp | grep ':8888'验证是否出现:::8888
手动修改 config.py 强制绑定 ::
某些定制系统或低版本宝塔中,ipv6.pl 文件存在但未被读取,此时需改代码逻辑。
- 编辑
/www/server/panel/class/config.py - 查找
bind_addr = '0.0.0.0',替换为bind_addr = '::'(英文引号、等号前后无空格) - 保存后再次执行
/etc/init.d/bt restart;若报错,优先检查引号类型和空格 - 该修改比
ipv6.pl更底层,但面板升级时会被覆盖,需重新操作
用正确格式访问面板:必须带方括号
浏览器对 IPv6 URL 解析有严格语法要求,漏掉括号会导致连接失败或跳转错误端口。
- 获取服务器全局单播 IPv6 地址(如
2001:db8:abcd:ef00:1234:5678:9abc:def0) - 在浏览器输入:
https://[2001:db8:abcd:ef00:1234:5678:9abc:def0]:8888(方括号不可省) - 首次访问提示证书错误是正常现象,因自签名证书未绑定 IPv6 域名,点击“高级”→“继续前往”即可
最容易被忽略的是:DNS 必须返回 AAAA 记录,否则客户端压根不知道你的域名对应哪个 IPv6 地址;而宝塔面板本身不处理 DNS,这事得你自己去阿里云、Cloudflare 或 DNSPod 后台填,填错格式(比如带 /64)或没过实名审核,都会让整个 IPv6 链路失效。











