특정 인터페이스가 손상되어 IPv6를 영구적으로 비활성화하고 싶습니다.슈퍼유저에 대한 내 질문을 해결하려면이미 죽었으니 어떡하지? net.ipv6.conf.eth0.disable_ipv6=1
추가 했지만 /etc/sysctl.conf
어떤 이유로 작동하지 않습니다. 현재는 컴퓨터를 켤 때마다 sysctl 명령을 사용하여 비활성화합니다.
답변1
먼저 /etc/default/grub을 편집하고 다음 줄을 찾으세요.
GRUB_CMDLINE_LINUX=""
줄을 다음과 같이 변경합니다(이렇게 하면 ipv6가 완전히 비활성화됩니다).
GRUB_CMDLINE_LINUX="ipv6.disable=1"
또는 ipv6 스택을 계속 실행하면서 ipv6 주소 할당을 비활성화하려면 다음 옵션을 사용할 수 있습니다.
GRUB_CMDLINE_LINUX="ipv6.disable_ipv6=1"
마지막으로 다음을 실행합니다.
sudo update-grub
변경 사항을 적용하려면 다시 시작하세요.
이렇게 하면 커널 수준에서 ipv6이 비활성화되어 처음에는 활성화되지 않습니다.
또한 다음과 같이 변경한 후/etc/sysctl.conf
net.ipv6.conf.eth0.disable_ipv6 = 1
다음 명령을 실행하여 변경 사항을 적용합니다.
sudo sysctl -p
마지막으로, sysctl.conf의 옵션을 사용하여 ipv6을 비활성화하는 경우 /etc/hosts에서 ipv6이 주석 처리되어 있는지도 확인해야 합니다. 이봐https://wiki.archlinux.org/index.php/IPv6#Disable_functionity
답변2
grub이나 sysctl 솔루션이 나에게 적합하지 않습니다. 내 생각 엔 systemd가 시작 중에 ipv6을 다시 활성화하는 것 같습니다.
그래서 내 장치에 대해 en*
ipv4만 구성 하도록 systemd를 변경했습니다.
sudo vim /etc/systemd/network/en-all.network
[Match]
Name=en*
[Network]
DHCP=ipv4
LinkLocalAddressing=ipv4