IPv6-only VPS如何建站和运行服务
IPv6-only VPS使用记录:没有IPv4地址的服务器如何建站和运行服务

最近购买一些VPS时,经常会看到IPv6-only这个选项。
和普通VPS不同,IPv6-only VPS没有IPv4地址,服务器只分配IPv6公网地址。
例如:
1 | IPv6: |
很多第一次使用IPv6-only VPS的人都会遇到一些问题:
- 没有IPv4怎么SSH连接?
- 域名应该怎么解析?
- 网站还能不能使用HTTPS?
- 没有IPv4的服务器能不能运行Docker?
实际上,只要正确配置,IPv6-only VPS完全可以运行网站、API、Docker和各种Linux服务。
本文记录IPv6-only VPS从连接到建站的完整过程。
购买IPv6-only VPS后,首先检查服务器IPv6地址。
登录服务器后:
1 | ip -6 addr |
正常情况下可以看到:
1 | inet6 2401:xxxx::xxxx scope global |
如果只有:
1 | fe80:: |
说明只是本地链路地址,不能从公网访问。
然后检查IPv6路由:
1 | ip -6 route |
正常应该存在:
1 | default via xxxx |
没有默认路由时,IPv6网络无法正常通信。
连接IPv6-only VPS需要注意SSH格式。
普通IPv4:
1 | ssh root@1.2.3.4 |
IPv6:
1 | ssh root@[2401:xxxx::1] |
如果SSH端口不是22:
1 | ssh -p 2222 root@[2401:xxxx::1] |
IPv6地址中的冒号会和SSH参数冲突,所以需要使用中括号。
如果本地网络没有IPv6,无法直接连接IPv6-only VPS。
可以测试:
1 | curl -6 ip.sb |
如果返回IPv6地址:
1 | 240x:xxxx::xxxx |
说明当前网络支持IPv6。
如果没有IPv6,可以使用:
- 支持IPv6的网络
- IPv4跳板机
- 支持IPv6的云服务器
例如:
1 | 本地电脑 |
IPv6-only VPS绑定域名时,需要使用AAAA记录。
IPv4使用:
1 | A记录 |
IPv6使用:
1 | AAAA记录 |
DNS添加:
1 | 类型: |
查看解析:
1 | dig AAAA example.com |
返回:
1 | example.com AAAA 2401:xxxx::1 |
说明域名已经指向IPv6服务器。
安装网站环境时,Nginx需要监听IPv6地址。
安装:
1 | apt update |
查看端口:
1 | ss -tlnp |
如果看到:
1 | [::]:80 |
说明支持IPv6。
如果只有:
1 | 0.0.0.0:80 |
说明只监听IPv4。
修改Nginx配置:
1 | vim /etc/nginx/sites-enabled/default |
添加:
1 | listen [::]:80; |
HTTPS:
1 | listen [::]:443 ssl; |
测试:
1 | nginx -t |
重启:
1 | systemctl restart nginx |
IPv6-only VPS申请HTTPS证书和普通服务器类似。
安装:
1 | apt install certbot python3-certbot-nginx |
申请:
1 | certbot --nginx -d example.com |
需要保证:
- AAAA解析正确
- 80端口开放
- Nginx支持IPv6
使用Docker时,也需要注意IPv6监听。
查看容器:
1 | docker ps |
查看端口:
1 | ss -tlnp |
如果服务只显示IPv4监听,需要修改Docker网络配置。
IPv6-only VPS常见问题:
IPv6可以ping,但是网站打不开。
通常检查:
1 | ss -tlnp |
确认80/443是否监听IPv6。
检查防火墙:
1 | ip6tables -L |
确认IPv6端口没有被阻止。
IPv4用户无法访问IPv6-only网站也是常见问题。
原因很简单:
IPv4网络无法直接访问IPv6地址。
解决方法:
- 使用Cloudflare CDN
- 增加IPv4反向代理
- 使用双栈服务器
IPv6-only VPS比较适合:
- 学习Linux网络
- 搭建IPv6网站
- 测试服务
- Docker实验环境
- IPv6相关项目
如果网站主要面对IPv4用户,需要考虑增加IPv4入口。