ipv6的使用
浏览器访问IPv6地址
目前现在的网络运营商基本都不支持基于IPv6地址访问解析,所以基本用IPv6地址公网是不好使的。
局域网想使用ipv6不同机器互相访问需要支持ipv6的路由器。
ipv6域名解析添加AAAA记录,可以和IPv4的A记录相同,需要有公网IPv6地址(本机的IPv6地址都是局域网的)。
- http://[IPv6]:port/index.html
- http://[3ffe:3201:1200:1::91]:8080/index.html
如何判断自己的网络环境是否支持ipv6
随着互联网的发展ipv6的优势不言而喻。很多人想用免费的ipv6,但不能确定自己的网络环境是否支持ipv6。下面介绍了几种比较简单的测试方法。
如果自己的电脑是win7/8系统,无需进行ipv6配置;xp用户需自己手动配置:
开始–>运行,输入cmd回车,然后输入ipv6 install回车。检查自己的电脑是否有网络连接,如连接正常进行下一步测试。
检电脑查是否有网络连接说明测试方法一:在浏览器地址栏输入网址
http://test-ipv6.com/,在页面会给出您的ipv6网络测试结果。
说明地址
检测地址测试方法二:在浏览器地址栏输入网址
http://ipv6.jmu.edu.cn/,如页面右下方的小老虎一直在跳舞,那么恭喜啦,您的ipv6没问题。
说明地址
检测地址测试方法三:在浏览器地址栏输入网址
http://ipv6test.google.com/,如出现下面的界面,那么恭喜您,您的网络支持ipv6.
说明地址
检测地址
实现通过 IPv6 地址访问你的服务器
第一步:检查服务器是否开启了 IPv6 监听
首先要确保你的 Web 服务器(比如 Nginx 或 Apache)不仅在听 IPv4 的话,也在听 IPv6 的话。
连接到你的服务器终端。
输入以下命令查看端口状态:
1 | netstat -lnpt | grep 80 |
看结果:
如果看到 0.0.0.0:80,说明只开了 IPv4。
如果看到 :::80 或者 [::]:80,说明 IPv6 已经开启了。
第二步:修改 Web 服务器配置 (以 Nginx 为例)
如果你发现没有监听 IPv6,需要修改配置文件。
打开 Nginx 配置文件(通常在 /etc/nginx/nginx.conf 或 /etc/nginx/sites-enabled/default):
1
sudo vi /etc/nginx/sites-enabled/default
找到 server 代码块,修改如下:
1 | server { |
- 保存并重启 Nginx:
1 | sudo nginx -t # 检查语法是否正确 |
第三步:放行防火墙
统信/Linux 系统通常有防火墙,需要确保 IPv6 的流量可以进来。
- 如果你使用的是 ufw:
1 | sudo ufw allow 80/tcp |
- 检查防火墙状态:
1 | sudo ufw status |
第四步:在浏览器中访问 (关键点)
IPv6 地址在浏览器中使用时,必须放在 方括号 [] 中,否则浏览器会把它当成搜索关键词。
正常情况(全球单播地址):
如果是普通的 IPv6 地址,访问格式为:http://[你的IPv6地址]你的特殊情况(链路本地地址 fe80):
由于 fe80 开头的地址是链路本地地址,浏览器必须知道你是通过哪块网卡去连服务器的。
在 Windows 电脑上访问:
你需要在地址后面加上 % 和你的
本地网卡索引号。- 在你的 Windows 电脑(客户端)打开
CMD,输入ipconfig。 - 找到你正在连接网络的网卡,看它的 IPv6 地址后面有一个数字(比如 %12)。
- 在浏览器输入:http://[fe80::8de5:dc91:a59d:a9f5%12] (把 12 换成你查到的数字)。
- 在你的 Windows 电脑(客户端)打开
第五步:进阶方案(小白推荐:配置一个“静态”IPv6)
fe80 地址太难记且访问麻烦。如果你是想在内网长期稳定使用,建议给服务器配置一个 ULA (唯一本地地址),比如 fd00::1。
给网卡添加一个更好记的 IPv6:
1
sudo ip -6 addr add fd00::1/64 dev eth0 # eth0 换成你的网卡名
浏览器直接访问:
http://[fd00::1] (这种地址不需要加 %索引号,非常方便)。
总结
- 配置 Nginx:确保有
listen [::]:80;。 - 方括号:浏览器输入地址必须带
[]。 - 【已废弃】链路本地地址限制:如果你一定要用
fe80地址,必须在地址末尾加上客户端网卡的%ID(例如 %12),否则 100% 无法访问。 但现在的浏览器都不支持,所以还是要配置好的ula地址
注意
Windows访问ipconfig 没有ipv6显示,说明 Windows 默认关闭了 IPv6,或者网卡设置里没勾选
1. 按快捷键 `Win + R`,输入 `ncpa.cpl` 并回车,打开“`网络连接`”。
2. 找到你正在使用的这个**“`以太网`”,右键点击它,选择“`属性`”**。
3. 在弹出的窗口中,找到 “Internet 协议版本 6 (TCP/IPv6)”。
4. 一定要勾选它,然后点击确定。
5. 等待 10 秒钟,再次在 CMD 窗口输入 `ipconfig`。
重新运行 ipconfig 后,你应当看到类似下面的内容:
1 | 以太网适配器 以太网: |
为什么必须加那个 % 后的数字?
因为 fe80 开头的地址叫“链路本地地址”。简单来说,你的电脑可能有多个网卡(有线、无线、虚拟网卡),由于 fe80 这种地址在每个网卡上都可能存在,电脑必须知道你想从 哪块具体的物理网卡 把数据发给服务器。如果不加 %ID,浏览器不知道该从哪条线发数据,访问就会失败。
常见问题排查(如果还是打不开):
- Ping 测试:
在 Windows CMD 输入:ping -6 fe80::8de5:dc91:a59d:a9f5%你的数字。如果 Ping 不通,说明网络物理层可能不支持 IPv6 流量,或者服务器防火墙没开。 - 服务器 Nginx 确认:
确保你服务器上的 Nginx 已经按照我上一个回答的步骤加入了 listen [::]:80;。 - 内网防火墙:
如果 Ping 通了但网页打不开,请在服务器(统信)上运行 sudo ufw disable 临时关闭防火墙试一下。
为什么 ping 可以但浏览器不行?
核心原因: 现代浏览器(Chrome、Edge、Firefox)出于安全原因,大多已经不再支持在地址栏手动输入带有 % 符号的 IPv6 链路本地地址。即使你输入了正确的 %10,浏览器也可能无法正确解析它。
为了解决这个问题并实现稳定访问,请按以下步骤操作(建议跳过 fe80,改用 ULA 地址):
步骤一:给服务器配置一个“好记”的 ULA 地址 (最推荐)
fe80 地址必须带 %才能用,而 fd00 开头的地址(唯一本地地址)不需要带 %。
我们将给服务器增加一个地址:fd00::1。
在服务器(统信)终端执行: [临时配置(即时生效,重启消失)]
1
2
3
4
5
6#查看ip地址
ip addr
# 假设你的网卡名叫 eth0(如果不知道,输入 ip addr 查看)
# 给网卡添加一个自定义的 IPv6 地址
sudo ip -6 addr add fd00::1/64 dev enp0s25永久配置(重启也还在)
统信通常使用NetworkManager。你可以直接用命令行设置:
1 | # 这里的 "enp0s25" 是网卡名,通常连接名也叫这个,如果不确定可以执行 nmcli con show 查看 |
第二步:客户端配置 (Windows 电脑)
非常重要: 因为这是自定义的局域网 IPv6 地址,你的 Windows 电脑也必须有一个同网段的地址(比如 fd00::2),它们才能通话。
- 在 Windows 电脑上,右键点击“开始” -> 终端管理员 (或 PowerShell 管理员)。
- 输入以下命令给你的 Windows 网卡也加一个地址(假设你的 Windows 网卡名称也叫“以太网”):
1
netsh interface ipv6 add address "以太网" fd00::2
(如果不成功,请通过“控制中心->网络连接->属性->IPv6->属性”手动设置:地址 fd00::2,子网前缀长度 64)
第三步:验证连通性
在 Windows 电脑上打开 CMD,输入:
1 | ping fd00::1 |
如果能看到“来自 fd00::1 的回复”,说明链路已经彻底打通,且不再需要那个烦人的 %10 符号。
第四步:浏览器访问
现在,你可以在浏览器地址栏直接输入这个“好记”的地址了:
http://[fd00::1]
进阶:如果不想背 IP,想用“域名”访问?
在 Windows 电脑上:
以管理员身份打开 C:\Windows\System32\drivers\etc\hosts 文件。
在最后添加一行:
1
fd00::1 my.uos.server
以后直接在浏览器输入:
http://my.uos.server即可。







