Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我想使用 C 以编程方式在 Linux 中启用/禁用 IPv4/IPv6。这可能吗?如果是,请让我知道如何执行此操作,并且对示例程序的任何参考也将非常有帮助。
见这里:https ://unix.stackexchange.com/questions/66574/how-can-i-disable-ipv6-in-custom-built-embedded-setup
不幸的是,_sysctl(2)系统调用 API 已被弃用,因此您只能直接写入文件/proc/(这在 C 中很容易,只是有点奇怪的味道):
_sysctl(2)
/proc/
重要的部分似乎是将1(text, not int) 的文本值至少写入这两个文件中的第一个,并且可能同时写入:
1
/proc/sys/net/ipv6/conf/all/disable_ipv6 /proc/sys/net/ipv6/conf/default/disable_ipv6
至于 IPv4,我不太清楚。在保持 IPv6 运行的同时,您真的需要禁用 IPv4 吗?