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.