Tin*_*ats 64 security ipv6 networking
我们如何通过终端命令在系统范围内禁用 IPv6?
我读过编辑/etc/modprobe.d/aliases 并替换:
alias net-pf-10 ipv6
Run Code Online (Sandbox Code Playgroud)
和:
alias net-pf-10 off
alias ipv6 off
Run Code Online (Sandbox Code Playgroud)
这是否可以安全应用并且它是否会在重新启动后永久禁用 ipv6?
Eri*_*lho 85
将以下几行放入后,我成功禁用了 IPv6 /etc/sysctl.conf:
net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.default.disable_ipv6 = 1
net.ipv6.conf.lo.disable_ipv6 = 1
Run Code Online (Sandbox Code Playgroud)
还运行此命令以加载更改
sudo sysctl -p
Run Code Online (Sandbox Code Playgroud)
Nul*_*ame 63
如果您的 PC 在启动时没有加载 /etc/sysctl.conf(我就是这种情况),则需要从 grub 中禁用 IPv6。Linux 内核有一个名为“ipv6.disable=1”的启动选项,它禁止启动 IPv6。
要编辑引导选项,请以 root 用户身份使用任何文本编辑器编辑“/etc/default/grub”:
sudo nano /etc/default/grub
Run Code Online (Sandbox Code Playgroud)
找到包含“GRUB_CMDLINE_LINUX_DEFAULT”的行:
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
Run Code Online (Sandbox Code Playgroud)
将“ipv6.disable=1”添加到引导选项,然后保存您的 grub 文件:
GRUB_CMDLINE_LINUX_DEFAULT="ipv6.disable=1 quiet splash"
Run Code Online (Sandbox Code Playgroud)
最后,更新 grub:
sudo update-grub
Run Code Online (Sandbox Code Playgroud)
卡瓦略的回答包括关于必须跑步的评论对sudo sysctl -p我帮助最大。
但是,至少在我的情况下:
net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.<mydevice>.disable_ipv6 = 1
Run Code Online (Sandbox Code Playgroud)
似乎第二行是必要的。
也许这与我使用 TP-Link Archer T2U 的事实有关,为此我必须从源代码自定义构建驱动程序。
我的假设是,因此,<mydevice>不算作“ all”之一。
因此,简而言之,如果您自定义添加了(自定义)网络驱动程序,则net.ipv6.conf.all.disable_ipv6 = 1可能不足以禁用 IPv6 网络。
不过不得不承认,我没有试过这条线net.ipv6.conf.default.disable_ipv6 = 1。
以下是如何检查您的计算机上是否启用了 ipv6
test -f /proc/net/if_inet6 && echo "Running kernel is IPv6 ready"
Run Code Online (Sandbox Code Playgroud)
如果你看到
Running kernel is IPv6 ready
Run Code Online (Sandbox Code Playgroud)
它已启用。
如果没有看到输出,则不是。
如果此页面上的其他答案对您不起作用,要禁用 ipv6,请将 ipv6 全部列入黑名单。为此,请使用以下命令:
echo 'blacklist ipv6' | sudo tee -a '/etc/modprobe.d/blacklist.local' >/dev/null
Run Code Online (Sandbox Code Playgroud)
此外,这也可能有所帮助:
echo 'install ipv6 /bin/true' | sudo tee -a '/etc/modprobe.d/blacklist.local' >/dev/null
Run Code Online (Sandbox Code Playgroud)
重新启动以使更改生效。要在启动后检查它是否已启用,请再次运行此命令:
test -f /proc/net/if_inet6 && echo "Running kernel is IPv6 ready"
Run Code Online (Sandbox Code Playgroud)
应该没有输出。
小智 6
如果您使用的是 Ubuntu 的现代版本(我使用的是 16.04 LTS),那么您可以使用这个整洁的解决方案:
创建/etc/sysctl.d/60-ipv6-disable.conf包含以下文本:
net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.default.disable_ipv6 = 1
net.ipv6.conf.lo.disable_ipv6 = 1
Run Code Online (Sandbox Code Playgroud)
跑 service procps start
| 归档时间: |
|
| 查看次数: |
196027 次 |
| 最近记录: |