Chinese Chinese
Chinese Chinese
English English
当前位置: 首页 - 技术文档 - 如何让 Windows、Linux、macOS 优先使用 IPv4 访问 API 接口

如何让 Windows、Linux、macOS 优先使用 IPv4 访问 API 接口

2026-09-03 作者: 博易网 浏览: 17

在使用互联网 API 接口时,如果客户端网络同时支持 IPv4 和 IPv6,部分操作系统或网络环境可能会优先尝试通过 IPv6 连接服务器。 如果 IPv6 网络存在路由不稳定、连接超时、运营商线路质量较差等情况,就可能出现 API 请求速度慢、连接超时甚至请求失败的问题。

本文以 BYW API 为例,介绍 Windows、Linux、macOS 以及常用开发环境如何让 API 请求优先使用 IPv4。

重要说明: 优先使用 IPv4 与完全关闭 IPv6 是两个不同的概念。 如果只是为了提高 API 接口访问稳定性,通常建议优先使用 IPv4,而不是直接关闭整个系统的 IPv6 功能。

一、为什么需要优先使用 IPv4?

现代操作系统通常同时支持 IPv4 和 IPv6。当一个 API 域名同时存在 A 记录和 AAAA 记录时,客户端可能同时获得 IPv4 和 IPv6 地址。

例如:

DNS 类型 示例 协议
A 203.0.113.10 IPv4
AAAA 2001:db8::10 IPv6

如果客户端优先尝试 IPv6,而当前网络的 IPv6 链路质量较差,就可能导致 API 请求出现以下情况:

  • API 请求连接时间较长
  • HTTPS 连接超时
  • DNS 可以正常解析,但接口无法访问
  • IPv4 可以访问,IPv6 却无法访问
  • 部分地区访问 API 正常,部分地区访问异常
如果确认 IPv4 网络访问 API 更稳定,可以让客户端优先选择 IPv4。

二、首先确认 IPv4 是否可以正常访问

在修改操作系统配置之前,建议先使用 curl 测试 API 的 IPv4 和 IPv6 连接情况。

强制使用 IPv4

curl -4 "https://api.byw.bet/api?token=YOUR_TOKEN&t=130&p=json"

强制使用 IPv6

curl -6 "https://api.byw.bet/api?token=YOUR_TOKEN&t=130&p=json"

如果出现以下情况:

IPv4 IPv6 说明
正常 正常 IPv4 和 IPv6 均可用
正常 超时 建议优先使用 IPv4
正常 无法连接 建议优先使用 IPv4
异常 异常 需要检查本地网络或 API 地址

三、Windows 设置 IPv4 优先

Windows 默认支持 IPv4 和 IPv6 双栈网络。如果希望 Windows 在网络通信时优先选择 IPv4,可以调整 IPv6 地址选择策略。

方法一:使用命令设置 IPv4 优先

使用管理员身份打开 CMD,然后执行:

netsh interface ipv6 set prefixpolicy ::ffff:0:0/96 100 4

设置完成后,可以使用以下命令查看当前 IPv6 前缀策略:

netsh interface ipv6 show prefixpolicies

如果看到类似以下配置,说明 IPv4 映射地址的优先级已经提高:

Precedence  Label  Prefix
----------  -----  ----------------
100         4      ::ffff:0:0/96
修改前建议记录原来的 prefix policy 配置。如果后续需要恢复,可以根据原来的配置进行调整。

方法二:直接关闭 Windows IPv6

如果客户确认当前网络环境完全不需要 IPv6,也可以在网卡设置中取消 IPv6。

  1. 打开 Windows「控制面板」
  2. 进入「网络和 Internet」
  3. 打开「网络和共享中心」
  4. 点击当前使用的网络连接
  5. 进入「属性」
  6. 找到「Internet 协议版本 6 (TCP/IPv6)」
  7. 取消勾选 IPv6
  8. 保存设置
不推荐普通用户直接关闭 IPv6。 关闭 IPv6 会影响系统访问其他 IPv6 网站和服务,因此如果只是为了访问 API,优先使用 IPv4 通常更加合理。

四、Linux 设置 IPv4 优先

Linux 可以通过 /etc/gai.conf 调整地址选择策略。

修改 gai.conf

sudo nano /etc/gai.conf

找到类似下面的配置:

#precedence ::ffff:0:0/96  100

取消前面的 #,修改为:

precedence ::ffff:0:0/96  100

保存后,Linux 在 IPv4/IPv6 双栈环境下会提高 IPv4 地址的选择优先级。

Linux 测试 API IPv4

curl -4 "https://api.byw.bet/api?token=YOUR_TOKEN&t=130&p=json"

Linux 测试 API IPv6

curl -6 "https://api.byw.bet/api?token=YOUR_TOKEN&t=130&p=json"

五、macOS 如何优先使用 IPv4

macOS 同样支持 IPv4 和 IPv6 双栈网络。对于普通 API 用户,通常不建议为了一个 API 接口修改整个系统的 IPv6 配置。

如果只是测试 BYW API 是否可以通过 IPv4 正常访问,可以直接使用 curl:

curl -4 "https://api.byw.bet/api?token=YOUR_TOKEN&t=130&p=json"

如果 IPv4 请求正常,而不指定协议的请求存在超时,可以进一步检查 macOS 当前网络环境以及具体 API 客户端使用的 HTTP 库。

六、开发者如何让程序使用 IPv4

如果 API 是由程序调用,与其修改客户操作系统,更推荐在客户端程序中控制网络协议。 这样不会影响客户电脑上的其他网站和应用。

C# / .NET

如果使用 C# / .NET 开发 API 客户端,可以根据实际使用的 HTTP Handler 对连接方式进行控制。 对于需要严格指定 IPv4 的场景,可以使用 IPv4 地址连接,或者在网络层对 DNS 解析结果进行 IPv4 筛选。

如果只是排查 API 网络问题,首先可以使用 curl 进行对比测试:

curl -4 "https://api.byw.bet/api?token=YOUR_TOKEN&t=130&p=json"

如果 curl 的 IPv4 请求正常,而程序请求异常,则问题通常需要进一步检查程序使用的 HTTP Handler、DNS 解析以及连接策略。

其他开发语言

Java、Go、Python、PHP、Node.js 等开发环境同样可以通过 HTTP 客户端或 Socket 层控制地址族。 如果客户端需要强制 IPv4,应优先在程序层面处理,而不是要求客户关闭整个操作系统的 IPv6。

七、如何判断当前 API 使用的是 IPv4 还是 IPv6?

可以使用 DNS 查询工具查看 API 域名是否同时存在 A 和 AAAA 记录。

Linux / macOS

dig A api.byw.bet
dig AAAA api.byw.bet

Windows

nslookup -type=A api.byw.bet
nslookup -type=AAAA api.byw.bet

如果存在 A 记录,表示域名提供 IPv4 地址;如果存在 AAAA 记录,则表示域名提供 IPv6 地址。

八、推荐的处理方式

场景 推荐方式
普通 API 用户 优先使用 IPv4,不需要关闭 IPv6
Windows 用户 调整 IPv4/IPv6 地址选择优先级
Linux 用户 调整 /etc/gai.conf
macOS 用户 优先在 API 客户端中指定 IPv4
开发者 在 HTTP 客户端或网络层控制 IPv4
网络故障排查 使用 curl -4 和 curl -6 分别测试
IPv6 完全不可用 再考虑关闭 IPv6

九、常见问题

1. 使用 IPv4 会影响 API 数据吗?

不会。IPv4 和 IPv6 只是客户端与服务器之间的网络通信协议。只要最终连接到相同的 API 服务,返回的数据内容不会因为使用 IPv4 而发生变化。

2. IPv4 一定比 IPv6 快吗?

不一定。IPv6 在部分网络环境下可能具有更好的连接质量。因此这里所说的「优先 IPv4」主要针对 IPv6 链路质量较差、连接不稳定或者 IPv6 无法正常访问 API 的情况。

3. 是不是关闭 IPv6 就可以解决所有 API 超时问题?

不是。API 超时还可能与 DNS、网络路由、防火墙、代理服务器、服务器负载、HTTPS/TLS 连接以及客户端自身的超时设置有关。

4. curl -4 可以访问,但是程序还是访问失败怎么办?

这种情况下通常说明服务器 IPv4 网络本身没有明显问题,应重点检查程序使用的 HTTP 客户端、DNS 解析、代理设置、连接超时以及 IPv6/IPv4 地址选择策略。

十、总结

如果客户端在访问 BYW API 时出现 IPv6 连接超时,而 IPv4 可以正常访问,最推荐的处理方式是:

推荐处理流程
  1. 首先使用 curl -4 测试 API。
  2. 确认 IPv4 可以正常访问。
  3. 如果 IPv6 存在问题,让客户端优先使用 IPv4。
  4. 开发者可以在程序网络层控制 IPv4。
  5. 除非确有必要,否则不建议直接关闭整个系统的 IPv6。
BYW API 网络访问建议: 如果您的程序可以正常通过 IPv4 访问 API,但通过 IPv6 出现连接超时或无法连接,建议优先将 API 客户端设置为使用 IPv4。 如果仍然无法访问,请进一步检查本地 DNS、网络、防火墙及代理配置。

阅读排行

文章推荐