IPv6를 영구적으로 비활성화하는 방법은 무엇입니까?


54

터미널 명령을 통해 IPv6 시스템 전체를 비활성화하려면 어떻게해야합니까?

/etc/modprobe.d/aliases 편집을 읽고 교체했습니다.

alias net-pf-10 ipv6

와:

alias net-pf-10 off
alias ipv6 off

적용해도 안전한가요? 재부팅 할 때마다 ipv6을 영구적으로 비활성화합니까?


5
IPv6를 영구적으로 비활성화하려는 이유는 무엇입니까?
— 앤더슨 그린

2
IPv6를 해제 할 이유가 없습니다 (MS Windows에서 실제로 찾을 수 있습니다). 왜 그렇게 하시겠습니까?
— Anders

17
실제로 ipv6을 켜야 할 이유는 없습니다. 모든 것은 여전히 ​​ipv4이며 소규모 네트워크를 관리하고 시간이 제한된 사람에게는 이점이 없습니다. 공격 및 잠재적 잘못된 구성을위한 또 하나의 벡터이며이를 비활성화하는 것이 현명합니다. 아마도 IETF 엔지니어가 듣고 싶어하는 것은 아니지만 내 문제는 아닙니다. 적절한 이유가있을 때까지 활성화해야합니다. 그때까지는 관리해야 할 다른 공격 경로 만 있습니다.
— Jonathan S. Fisher

8
IPv6을 비활성화한다고해서 IPv6 공격에 면역이되지는 않습니다. 활성화하고 처리하고 배우는 것이 훨씬 낫습니다. 이것이 환경을 조금 더 안전하게 만드는 유일한 방법입니다. 모든 사람이 대신 "IPv4를 영구적으로 비활성화하는 방법"을 배우는 것이 좋습니다. IPv6은 IPv4보다 훨씬 쉽고, 더 이상 NAT가 없기 때문에 관리해야 할 것이 적습니다. 인터넷은 정말 빠르게 성장하고 있습니다. 몇 년 안에 IPv6 네트워크는 IPv4보다 큽니다. IPv4를 사용하면 실제 인터넷에서 벗어날 수 있습니다. 어서! 당신의 IP를 업그레이드 !! 변화는 좋은 것입니다.
— ThiagoCMC

7
@ JonathanS.Fisher 및 기타-이 의견은 도움이되지 않습니다. IPv6을 비활성화해야하는 이유를 모르는 경우에도 IPv6이없는 것은 아닙니다. IPv6를 지원하지 않는 VPN 서비스의 경우가 가장 중요합니다. 비활성화하지 않으면 IPv6 주소가 유출됩니다.
— Scone

답변:


74

다음 줄을 넣으면 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

또한이 명령을 실행하여 변경 사항을로드하십시오.

sudo sysctl -p

VMware의 Uubuntu는 ping을 할 수 없으며 Ubuntu에서 ipv6을 닫습니다. 이제 괜찮습니다.
— Honghe. 우

12
sysctl.conf에 행을 추가 한 후 실행 sudo sysctl -p또는 재부팅하여 변경 사항을 적용하십시오.
— Rajat Gupta

4
버그 해결 방법으로 무선에서만이 작업을 수행해야 다시 연결할 수 있습니다. 다음은 하나의 어댑터에 대해서만 수행하는 방법입니다.net.ipv6.conf.wlan0.disable_ipv6 = 1
— cmc

1
우분투 17.10에서는 작동하지 않습니다. GRUB 수정에 대해서는 아래 NullNoname 주석을 참조하십시오.
— Luke

1
우분투 16.04에서도 작동하지 않습니다. Grub 방법이 작동합니다.
— Penghe Geng

53

부팅시 PC가 /etc/sysctl.conf를로드하지 않으면 (이 경우에는) grub에서 IPv6을 비활성화해야합니다. Linux 커널에는 부팅시 IPv6를 비활성화하는 "ipv6.disable = 1"이라는 부팅 옵션이 있습니다.

부팅 옵션을 편집하려면 루트 사용자로 텍스트 편집기를 사용하여 "/ etc / default / grub"을 편집하십시오.

sudo nano /etc/default/grub

"GRUB_CMDLINE_LINUX_DEFAULT"가 포함 된 줄을 찾으십시오.

GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"

부팅 옵션에 "ipv6.disable = 1"을 추가 한 다음 grub 파일을 저장하십시오.

GRUB_CMDLINE_LINUX_DEFAULT="ipv6.disable=1 quiet splash"

마지막으로, grub을 업데이트하십시오 :

sudo update-grub

6
+1이 작동하고 완전히 IPv6을 사용하지 않도록, 그래서의 흔적이없는 /proc/sys/net/ipv6/등의 문제가 발생할 수 있습니다 남아 X11 forwarding request failed있기 때문에 sshd시도가 구성되지 않은 IPv6 인터페이스에 결합하는가. 마찬가지로 순수한 IPv6 VM에서 IPv4를 제거 할 수 있습니다. 감사.
— 티노

7

달리는 것에 대한 의견을 포함한 Carvalho의 답변 sudo sysctl -P이 가장 도움이되었습니다.

그러나 내 경우에는 적어도 :

net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.<mydevice>.disable_ipv6 = 1

두 번째 줄이 필요한 것 같습니다.

어쩌면 이것은 TP-Link Archer T2U를 사용하고 있다는 사실과 관련이있을 수 있습니다 .TP2 링크 아처 T2U는 소스에서 드라이버를 사용자 정의해야했습니다.
결과적 <mydevice>으로 " all" 중 하나로 간주되지 않는다고 가정 합니다.
요약하자면, (사용자 정의) 네트워킹 드라이버를 사용자 정의하여 추가 한 경우 net.ipv6.conf.all.disable_ipv6 = 1IPv6 네트워킹을 비활성화하기에 충분하지 않을 수 있습니다.

그래도 나는 선을 시도하지 않았다는 것을 인정해야한다
net.ipv6.conf.default.disable_ipv6 = 1


1
다른 장치를 비활성화해야하는 경우가 종종 있습니다.
— 스콘

default라인 의 부족 은 아마도 여기서 문제 일 것입니다. 드라이버는 sysctl을 실행 한 부팅 프로세스의 시점에서 아직로드되지 않은 경우, 다음은 포함되지 않았다 all-하지만이 경우 기본값을 설정하면, 나중에 설정을 얻었을 것입니다 의미하는 것이다 되었다 로드.
— Charles Duffy

1
나는 한 default항목을 나는 성공적으로 해제 할 수있는 특정 장치를 구성했다.
— Alfonso Nishikawa

7

컴퓨터에서 ipv6가 활성화되어 있는지 확인하는 방법은 다음과 같습니다.

test -f /proc/net/if_inet6 && echo "Running kernel is IPv6 ready"

당신이 볼 경우

Running kernel is IPv6 ready

활성화되어 있습니다.

출력이 없으면 출력되지 않습니다.

이 페이지의 다른 답변이 효과가없는 경우 ipv6을 비활성화하려면 ipv6을 모두 블랙리스트에 추가하십시오. 이렇게하려면 다음 명령을 사용하십시오.

echo 'blacklist ipv6' | sudo tee -a '/etc/modprobe.d/blacklist.local' >/dev/null 

또한 이것도 도움이 될 수 있습니다.

echo 'install ipv6 /bin/true' | sudo tee -a '/etc/modprobe.d/blacklist.local' >/dev/null

변경 사항을 적용하려면 재부팅하십시오. 시작 후 활성화되었는지 확인하려면이 명령을 다시 실행하십시오.

test -f /proc/net/if_inet6 && echo "Running kernel is IPv6 ready"

출력이 없어야합니다.

부팅시 IPV6를 비활성화하는 방법에 대한 정보를 보려면 여기를 클릭하십시오.


이 답변은 커널 ipv6기능이 커널 모듈 이라고 가정합니다 ( blacklist.local로드를 방지하기 위해 사용 ). 그와 커널 부팅 할 필요가있는 경우 커널 (안 모듈)로 컴파일 IPv6의 경우가 ipv6.disable=1부팅 paremeter가 (이렇게하려면 한 것이다 : (1) sudo gedit /etc/default/grub(2) 라인을 검색 GRUB_CMDLINE_LINUX_DEFAULT=<args>(3) ipv6.disable=1부팅 매개 변수에 추가 )
— humanityANDpeace

@humanityANDpeace 다음과 같은보다 포괄적 인 답변에 관심이 있으실
— mchid

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

운영 service procps start


2
이것이 가장 깨끗한 방법입니다. 왜 다운 보트를했는지 이해가되지 않습니다. 그것은 페도라 / 센 토스 / 레드햇에서도 작동합니다. 시스템 기본 파일을 변경하지 않는다는 장점이 있습니다 (가장 많이 사용되는 답변에서 제안한대로 직접 sysctl.conf)
— Costin Gușă

@Costin 나는 공감하지 않았지만 이것이 항상 작동하지는 않습니다. 때로는 특정 장치 이름을 입력해야합니다 (예 : 사용자 정의 드라이버 설치의 경우). 내 대답에 대한 Alfonso Nishikawas 의견을 참조하십시오.
— polynomial_donut

원격 서버에서 연결이 끊어 졌기 때문에 ( IPv6 이 필요 했기 때문에)이 접근 방식을 고맙게 생각 하며 사이트에서 도우미를 지시하여 하나의 파일을 제거하고 재부팅하는 것이 매우 쉽습니다.
— Roger Dueck

나는 service procps restart대신 우분투 18.04 에서 실행 했다
— iPherian
당사 사이트를 사용함과 동시에 당사의 쿠키 정책과 개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.