Отключить IPv4 сопоставленный IPv6

Я запускаю службу на IPv4, но иногда, по-видимому, случайно, случается, что служба использует сокеты TCPv6 (я наблюдаю с ss -s). Я хочу избежать этого, отключив любое соединение 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

а затем перезапустить sysctl sudo sysctl -p, Тем не менее, все еще бывает, что служба использует IPv6, хотя она отключена:

cat /proc/sys/net/ipv6/conf/all/disable_ipv6
1

Единственный способ, который я нашел, - это опустить и поднять интерфейс.

sudo ifconfig eth1 down
sudo ifconfig eth1 up

Примечание. IPv6-адрес не назначается ни одному интерфейсу. Более того, я не могу перезагрузить машину.

Любое решение?

2 ответа

Я думаю, что из коробки здесь из-за ограничения перезагрузки. Возможно, если вы используете какой-либо контейнер, докер или lxc, например, для вашей службы разрешите отключить ipv6 для контейнера.

Например, демон Docker имеет флаг "--ipv6=true|false"

Вы можете полностью отключить IPv6 из ядра, отредактировав /etc/default/grub. Найдите строку:

GRUB_CMDLINE_LINUX_DEFAULT=""

Заменить его на:

GRUB_CMDLINE_LINUX_DEFAULT="ipv6.disable=1"

Затем запустите:

update-grub

И перезагрузка.

Другие вопросы по тегам