✅本教程适用于以下场景:
- 让仅支持 IPv4 的用户/网络环境
- 通过云主机的反向代理,透明访问纯 IPv6 的服务
- 全程保持 IPv4 正常使用,不干扰原有网络
✅技术实现原理
- IPv4 用户 → 访问云主机域名(A记录解析到IPv4)
- 云主机 NPM → 通过 IPv6 连接目标服务(如
[2409:8a28::1]:3000
) - 数据返回 → 云主机将 IPv6 响应转换为 IPv4 返回给用户
✅适用条件
- 云主机需具备 双栈网络(IPv4 + IPv6)
- 目标服务已配置 IPv6 可达性(且允许云主机访问)
- 测试环境:腾讯云Ubuntu 24.04
一、Docker 安装优化
1. 一键安装Docker
# 使用阿里云镜像加速(腾讯云暂未在官方脚本支持)
curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun
sudo systemctl enable --now docker
2. 配置腾讯云镜像加速
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": [
"https://mirror.ccs.tencentyun.com"
]
}
EOF
3. 验证 Docker 是否运行
docker --version
sudo docker run hello-world
二、Nginx Proxy Manager 部署(Host 网络模式)
端口说明:
- 管理界面:
81
(无需映射,直接使用宿主机端口) - HTTP/HTTPS:
80
/443
(自动绑定)
docker run -d \
--name=npm \
--network=host \ # 关键!直接使用宿主机网络
-v npm_data:/data \ # 配置持久化
-v npm_letsencrypt:/etc/letsencrypt \ # 证书持久化
--restart unless-stopped \
chishin/nginx-proxy-manager-zh:latest
三、防火墙与安全组配置
-
腾讯云安全组规则(控制台操作):
- 放行入方向:
TCP:80,443,81
- 放行入方向:
- 添加本地防火墙
iptables -I INPUT -p tcp --dport 80 -j ACCEPT
iptables -I INPUT -p tcp --dport 81 -j ACCEPT
iptables -I INPUT -p tcp --dport 443 -j ACCEPT
四、访问与初始化
-
登录管理界面:
- 地址:
http://<云服务器IP>:81
- 默认账号:
admin@example.com
/changeme (首次登录需修改)
- 地址:

2. 验证 IPv6 连通性:
# 在宿主机测试
ping6 2409:8a28:d14:28f0:6325:xxxx:xxxx:xxxx
curl -v http://[2409:8a28:d14:28f0:6325:xxxx:xxxx:xxxx]:3000
五、配置 IPv4 到 IPv6 反向代理
-
添加代理规则:
- 域名:
speed.xxx.com
(需提前解析到云主机IPv4) - 协议:
http
- 目标地址:
[2409:8a28:d14:28f0:6325:xxxx:xxxx:xxxx]
(必须带方括号) - 端口:
3000
- 高级选项:勾选「支持 WebSockets」
- 域名:
-
SSL 证书(可选):
- 在「SSL」选项卡中选择「Let’s Encrypt」自动申请证书


六、故障排查指南
问题现象 | 解决方案 |
---|---|
管理界面无法访问 | 检查 docker ps 是否运行,安全组/防火墙是否放行 81 端口 |
502 Bad Gateway | 1. 确认目标 IPv6 地址格式正确(带方括号) 2. 测试宿主机到目标的连通性 |
SSL 证书申请失败 | 确保域名已解析且 80 端口未被占用 |