
모든 인터페이스(4개가 있음)에 대해 IPv6 자동 구성을 끄려고 합니다. 나는 사용하고 싶다
net.ipv6.conf.all.autoconf = 0
내 sysctl 구성(아래 /etc/sysct.d
)에서 설정은 어떤 인터페이스에도 적용되지 않았지만 net.ipv6.conf.all.autoconf
매개변수에 대해서는 작동하므로 다음 명령을 실행하십시오.
sysctl -a | grep "net\.ipv6\.conf" | grep "autoconf"
net.ipv6.conf.all.autoconf = 0
net.ipv6.conf.eth0.autoconf = 1
net.ipv6.conf.eth1.autoconf = 1
net.ipv6.conf.eth2.autoconf = 1
net.ipv6.conf.eth3.autoconf = 1
그런 다음 즉시 설정을 시도했습니다.
sysctl -w net.ipv6.conf.all.autoconf=0
그러나 둘 다 작동하지 않습니다. 이에 대한 해결 방법을 알고 있나요? 내가 하나씩( net.ipv6.conf.eth3.autoconf = 0
수동으로) 수행하고 싶지 않은 이유는 때로는 더 많은 인터페이스도 있기 때문입니다(항상 연결되어 있지는 않습니다).
답변1
TL;DR
for sInterface in /proc/sys/net/ipv6/conf/*; do sysctl --write $(echo $sInterface.autoconf=0 | sed "s#/#.#g" | sed "s/.proc.sys.//g"); done
그것을 해야 한다.
긴 버전:
sysctl
실제로 파일 내용을 변경합니다./proc/sys
net.ipv6.conf.all.autoconf
따라서 물리적으로 다음 위치에 있습니다./proc/sys/net/ipv6/conf/all/autoconf
- 그래서 우리는 반복합니다
/proc/sys/net/ipv6/conf/
- 구분 기호를 사용하여 모두 사용
/
으로 변경합니다..
sed
#
- 표준 구분 기호를 사용
.proc.sys.
하여 문자열에서 다시 제거합니다 .sed
/
- 우리는
.autoconf=0
인터페이스에 추가합니다 - 그리고 신청하세요
sysctl --write $()
메모:달리고 있지 않다면 대신 root
해야 할 일 sudo sysctl --write $()
...