在 OSX 中的特定接口上禁用 ipv6 自动配置

在 OSX 中的特定接口上禁用 ipv6 自动配置

是否可以通过命令行或使用 sysctl/fcntl/等 API 的 C 代码来禁用 OSX 上特定接口的 IPv6 路由器请求、路由器广告接受等?似乎可以通过命令行中的 sysctl 来实现,但仅限于系统范围。

Linux sysctl 等效项是:

sysctl net.ipv6.conf.<ifname>.autoconf=0
sysctl net.ipv6.conf.<ifname>.accept_ra=0
sysctl net.ipv6.conf.<ifname>.accept_redirects=0
sysctl net.ipv6.conf.<ifname>.router_solicitations=0

(最后一句是多余的,可能没有必要。)

在 Linux 上,这针对一个接口执行此操作,但不是针对所有接口。

我不想禁用链路本地寻址或阻止使用 ifconfig 进行手动配置,只是想让 OSX 禁用并忽略 IPv6 路由器自动配置。

答案1

您可以使用以下方式获取接口列表:

网络设置-列出所有网络服务

然后根据每个接口将其关闭:

networksetup -setv6off "以太网 1"

相关内容