Ubuntu 不会处理 ipv4 DHCP,除非你明确告诉它,否则我会有点奇怪,但除非你告诉它不要,否则它会很乐意接受 ipv6 RA。有什么方法可以将默认行为更改为“除非我明确打开它,否则什么都不做”?
(回答者请注意:我不希望全局禁用 ipv6,或完全关闭 autoconf。我希望默认禁用 autoconf (例如,我不想要 ipv6,除非我在 /etc/network/接口,以同样的方式,除非我明确打开 dhcp,否则我不会只获得 v4 地址。发生的事情是,对于任何启动的接口 - 例如有一个 ipv4 配置 - v6 地址往往只是在界面上也是如此,尽管我没有明确启用它。到目前为止,迄今为止的解决方案都很好,但是如果我全局禁用 v6 或 autoconf,我就无法重新启用 v6在 /etc/network/interfaces 中有一个简单的命令的每个接口的基础。我很确定我要求的是月球上的棍子,请注意。)
Autoconf 是 IPv6 的部分基本功能。RA 公告不是 DHCP,并且 RA 服务器不分配地址。RA 更接近于在 169.254.0.0/16 IP 范围内完成的 IPv4 自动配置。如果启用了隐私,您的 IPv6 地址会随着时间而改变。您的旧地址将被停用并最终被删除。
您可以使用以下命令轻松禁用 ipv6 autoconf:
sudo sysctl -w net.ipv6.conf.all.autoconf=0
Run Code Online (Sandbox Code Playgroud)
all用接口名称替换以禁用一个接口。替换autoconf与disable_ipv6以禁用IPv6。/etc/sysctl.d使用您希望在启动期间应用设置的变量分配创建一个文件。
要查找所有与 ipv6 相关的设置,请运行以下命令:
sudo sysctl -a | grep ipv6 | less
Run Code Online (Sandbox Code Playgroud)
小智 6
检查 IPv6 是否已启用或禁用
\n\n$ cat /proc/sys/net/ipv6/conf/all/disable_ipv6\nRun Code Online (Sandbox Code Playgroud)\n\n0 表示启用\xe2\x80\x99s,1 表示禁用。
\n\n禁用 IPv6
\n\n$ su -\n# nano /etc/sysctl.conf\nRun Code Online (Sandbox Code Playgroud)\n\n并将这些行添加到 sysctl.conf 文件中
\n\n#disable ipv6\nnet.ipv6.conf.all.disable_ipv6 = 1\nnet.ipv6.conf.default.disable_ipv6 = 1\nnet.ipv6.conf.lo.disable_ipv6 = 1\nRun Code Online (Sandbox Code Playgroud)\n\n使用新配置保存 sysctl.conf 文件,然后重新启动系统
\n\n# reboot\nRun Code Online (Sandbox Code Playgroud)\n\n再次检查您的系统
\n\n$ cat /proc/sys/net/ipv6/conf/all/disable_ipv6\nRun Code Online (Sandbox Code Playgroud)\n\n现在您应该看到 \xe2\x80\x9c1\xe2\x80\xb3 表示 IPv6 已在您的系统上禁用。
\n\n来自http://namhuy.net/1419/disable-ipv6-ubuntu-linux-mint.html
\n与其他答案之一类似但不同,我非常高兴地尝试了这个:
在 /etc/sysctl.d 中添加 sysctl 文件以禁用 ipv6 - 但并非普遍适用,只是作为接口默认状态:
net.ipv6.conf.default.disable_ipv6=1
Run Code Online (Sandbox Code Playgroud)
然后,在接口文件中,仅针对您希望启用 ipv6 的接口,添加:
iface eth0 inet dhcp # .. or whatever
up sysctl -w net.ipv6.conf.$IFACE.disable_ipv6=0
Run Code Online (Sandbox Code Playgroud)
...因此,接口在出现时不会获取 IPv6 地址(如当前),但可以在特定情况下说服它们获取它们。毫无疑问,如果您也想要的话,您可以在启用 ipv6 之前禁用 RA。
注意:我怀疑您会遇到 VLAN 命名接口(例如 eth0.100)的问题,并且必须在“up”命令中将其拼写为“eth0/100”而不是 $IFACE,这将具有错误的格式- 我没有测试过,但这似乎是 sysctl 看待世界的方式。
| 归档时间: |
|
| 查看次数: |
43371 次 |
| 最近记录: |