是否可以通过命令行或使用 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"