1、获取 IPv6 地址:确保你的服务器和本地网络支持 IPv6。
2、配置服务器网络:在服务器上正确设置 IPv6 地址。
3、配置防火墙:开放所需的端口(如 80, 443, 22)。
4、安装服务器软件:安装你需要的服务,如 Nginx 或 Apache。
5、测试访问:从 IPv6 网络环境测试你的服务器是否可访问。
第一步:确认你的服务器拥有 IPv6 地址
1. 检查服务器提供商的支持
VPS/云服务器绝大多数主流云服务商(如 AWS、Google Cloud、Azure、DigitalOcean、Vultr、Linode)都提供 IPv6 支持,通常需要在创建实例时勾选“启用 IPv6”选项,或者后续在控制面板中免费添加 IPv6 地址块。
家庭宽带如果你用自己的电脑做服务器,需要联系你的 ISP(网络服务提供商)确认是否提供原生 IPv6 支持,国内很多宽带(如中国移动)已经默认分配了 IPv6 地址。
2. 在服务器上检查 IPv6 地址
通过 SSH 登录你的服务器(目前还是通过 IPv4),执行以下命令:
ip addr show | grep inet6
或者更精确的命令:
ip -6 addr show
如果看到scope global
的 IPv6 地址(通常以2xxx:
或2xxx:
开头),说明你的服务器已经分配了公网 IPv6 地址,记下这个地址(例如2604:a880:800:10::1234:1
)。
如果没有看到你需要联系你的服务器提供商,在他们的控制面板中为你的实例启用并分配 IPv6 地址。
第二步:配置服务器软件(以 Nginx 为例)
1. 安装软件
更新软件包列表并安装 Nginx:
sudo apt update && sudo apt install nginx -y # Ubuntu/Debian sudo yum install epel-release && sudo yum install nginx -y # CentOS
2. 调整防火墙
确保防火墙允许 HTTP(80)、HTTPS(443)和 SSH(22)端口的 IPv6 流量。
如果使用ufw
(Ubuntu):
sudo ufw allow 'Nginx Full' # 允许 80 和 443 sudo ufw allow 22/tcp # 允许 SSH # 确认 ufw 已启用并检查状态 sudo ufw enable sudo ufw status
如果使用firewalld
(CentOS):
sudo firewall-cmd --permanent --add-service=http sudo firewall-cmd --permanent --add-service=https sudo firewall-cmd --permanent --add-service=ssh sudo firewall-cmd --reload
直接使用ip6tables
(高级用户,不推荐新手)
如果需要,可以配置ip6tables
规则,但现代发行版的ufw
和firewalld
通常已经同时管理了 IPv4 和 IPv6。
3. 测试 Nginx
启动 Nginx 服务并设置开机自启:
sudo systemctl start nginx sudo systemctl enable nginx
你应该能在服务器上通过 IPv6 访问默认页面了:
curl -g -6 "http://[你的服务器IPv6地址]" # curl -g -6 "http://[2604:a880:800:10::1234:1]"
注意:在命令行中使用 IPv6 地址时,必须用方括号[]
括起来。
第三步:从外部网络访问你的 IPv6 服务器
这是最关键的一步,你需要在一个具有 IPv6 连接的环境下测试。
1. 确认你的本地电脑有 IPv6 连接
Windows打开命令提示符,输入ipconfig
,查看是否有“IPv6 地址”一项,并且不是以fe80:
(链路本地地址)开头。
macOS/Linux打开终端,输入ifconfig
或ip addr show
,同样查找scope global
的 IPv6 地址。
在线测试访问 [test-ipv6.com](https://test-ipv6.com/) 或 [ipv6-test.com](http://ipv6-test.com/),确认你的网络支持 IPv6。
重要:如果你的本地网络没有 IPv6(例如某些公司网络或老式路由器),你将无法直接访问纯 IPv6 的服务器,这是搭建 IPv6 服务器最大的“坑”。
2. 通过浏览器访问
在浏览器地址栏直接输入:
http://[你的服务器IPv6地址]
http://[2604:a880:800:10::1234:1]
如果看到 Nginx 的欢迎页面,说明成功了!
3. 配置域名(强烈推荐)
直接使用 IPv6 地址访问很不方便,绑定域名是必须的。
获取域名在 Godaddy、Namecheap、阿里云、腾讯云等平台购买一个域名。
添加 AAAA 记录
1. 登录你的域名 DNS 管理后台。
2. 添加一条新的记录:
类型选择AAAA
(这是用于 IPv6 的记录类型,IPv4 是A
记录)。
主机/Name填写你想要的子域名,例如www
或者@
(代表根域名)。
值/Value粘贴你的服务器公网 IPv6 地址(不需要方括号[]
)。
TTL保持默认即可。
3. 保存设置,DNS 记录全球生效需要一些时间(几分钟到几小时)。
在 Nginx 中配置域名
编辑 Nginx 的默认配置文件或为你的网站创建一个新的配置文件(例如/etc/nginx/sites-available/your_domain.com
)。
server { # 监听 IPv6 的 80 端口 listen [::]:80; # 如果你的服务器同时有 IPv4,也监听 IPv4 # listen 80; server_name your-domain.com www.your-domain.com; root /var/www/your-domain.com/html; index index.html index.htm; location / { try_files $uri $uri/ =404; } }
保存后,检查配置语法并重新加载 Nginx:
sudo nginx -t sudo systemctl reload nginx
测试现在你可以在浏览器中通过你的域名http://your-domain.com
访问网站了,你可以使用在线工具如 [ping6](https://ping6.com/) 来测试你的域名是否正确解析到了 IPv6 地址。
1、我的本地网络没有 IPv6,如何访问?
启用运营商克隆一些现代家用光猫/路由器需要进入管理后台,开启“IPv6 防火墙”或“IPv6 前缀授权”功能。
使用手机热点中国移动/联通/电信的 4G/5G 网络通常都有很好的 IPv6 支持,用手机开热点给电脑是简单的测试方法。
使用隧道代理(不推荐生产环境)如 Hurricane Electric 的 [TunnelBroker](https://tunnelbroker.net/),可以为你的家庭网络提供一个 IPv6 隧道,过程较为复杂。
2、如何让 IPv4 用户也能访问?
如果你的服务器只有 IPv6,IPv4 用户将无法访问,解决方案是:
使用 CDN这是最佳方案,将你的域名接入 Cloudflare、百度云加速等支持 IPv6 的 CDN,CDN 节点通常都是“双栈”(同时拥有 IPv4 和 IPv6),它可以替你接收来自 IPv4 用户的请求,然后通过 CDN 内部的 IPv6 网络与你的源服务器通信,这样,你就间接地为 IPv4 用户提供了服务。
申请一个 IPv4 地址向服务器提供商购买一个 IPv4 地址,让你的服务器成为双栈服务器。
3、SSH 连接 over IPv6
在 SSH 客户端命令中指定 IPv6 地址:
ssh username@[2604:a880:800:10::1234:1]
或者在~/.ssh/config
文件中配置:
Host myv6server HostName 2604:a880:800:10::1234:1 User username
然后使用ssh myv6server
即可连接。
搭建 IPv6 服务器的流程可以概括为:
1、获取地址:确保服务商分配了公网 IPv6 地址。
2、配置服务:安装并配置 Web 服务器(如 Nginx/Apache)。
3、开放防火墙:允许 IPv6 流量通过所需端口。
4、绑定域名:添加AAAA
记录将域名指向 IPv6 地址。
5、测试访问:在 IPv6 网络环境下通过域名或地址访问。
6、解决兼容性:(可选)通过 CDN 使 IPv4 用户也能访问。
希望这份详细的指南能帮助你成功搭建 IPv6 服务器!
文章摘自:https://idc.huochengrm.cn/fwq/14493.html
评论