Відключення IPv6 на одному інтерфейсі


9

Я трохи здивований тим, що Ubuntu не обробить ipv4 DHCP, якщо ви прямо не скажете це, але з радістю візьме ipv6 RA, якщо ви не скажете. Чи можна змінити поведінку за замовчуванням на "робити нічого, якщо я прямо не вмикаю її"?

(Примітка до відповідачів: я не хочу глобально відключити ipv6 або повністю вимкнути autoconf. Я шукаю відключити autoconf за замовчуванням (як у, я не хочу ipv6, якщо не скажу так у / etc / network / інтерфейси так само, як я не отримую просто v4-адресу, якщо явно не ввімкнув dhcp). Що відбувається, що для будь-якого інтерфейсу, який працює, наприклад, має конфігурацію ipv4 - адреса v6 має тенденцію просто повернутися і на інтерфейсі, незважаючи на те, що я не ввімкнув це явно. На сьогодні рішення добре, наскільки вони йдуть, але якщо я відключую v6 або autoconf у всьому світі, я не можу повторно включити v6 на на основі інтерфейсу з простою командою в / etc / network / interfaces. Я впевнений, що я прошу місяця на паличці, пам'ятайте.)


1
Ось посилання про те, як відключити ipv6. Я сам цього не пробував. Повідомте мене, чи працює: Як відключити IPV6 в Ubuntu
BiggJJ

3
Це, мабуть, так, але я не хочу відключати ipv6, просто запобігаю автоконфігурації на інтерфейсах, якщо я спеціально не хотів би їх автоконфігурувати.
ijw

Відповіді:


9

Autoconf - частина основної функціональності IPv6. Оголошення RA не є DHCP, і сервер RA не призначає адреси. RA набагато ближче до автоматичної конфігурації IPv4, зробленої в діапазоні IP 169.254.0.0/16. Якщо ввімкнено конфіденційність, ваша IPv6-адреса з часом зміниться. Ваша стара адреса буде вилучена та з часом видалена.

Ви можете легко відключити ipv6 autoconf за допомогою команди:

sudo sysctl -w net.ipv6.conf.all.autoconf=0

Замініть allім'я інтерфейсу, щоб відключити один інтерфейс. Замініть autoconfна, disable_ipv6щоб відключити IPv6. Створіть файл /etc/sysctl.dіз змінними призначеннями, для яких потрібно застосувати налаштування під час запуску.

Щоб знайти всі пов'язані з ipv6 налаштування, виконайте команду:

sudo sysctl -a | grep ipv6 | less

4

Щоб перевірити, увімкнено чи вимкнено IPv6

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

0 означає, що це ввімкнено, а 1 - вимкнено.

Щоб вимкнути IPv6

$ su -
# nano /etc/sysctl.conf

і додайте ці рядки до файлу sysctl.conf

#disable ipv6
net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.default.disable_ipv6 = 1
net.ipv6.conf.lo.disable_ipv6 = 1

Збережіть файл sysctl.conf за допомогою нового конфігурації та перезавантажте систему

# reboot

Перевірте свою систему ще раз

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

Тепер ви повинні побачити "1" означає, що IPv6 відключений у вашій системі.

Від http://namhuy.net/1419/disable-ipv6-ubuntu-linux-mint.html


Працювали для мене. Принаймні, у Centos ви можете запустити "sudo sysctl -p" для перезавантаження без перезавантаження
Code Wiget

2

Подібно, але відрізняється від однієї з інших відповідей, я спробував це з великою радістю:

Додайте sysctl файл у /etc/sysctl.d, щоб відключити ipv6 - однак не універсально, як стан інтерфейсу за замовчуванням:

net.ipv6.conf.default.disable_ipv6=1

Потім у файл інтерфейсів і лише для тих інтерфейсів, на яких потрібно включити ipv6, додайте:

iface eth0 inet dhcp # .. or whatever
up sysctl -w net.ipv6.conf.$IFACE.disable_ipv6=0

... таким чином, інтерфейси не отримують IPv6 адреси, коли вони з'являються (як це є зараз), але їх можна переконати мати у певних випадках. Ви можете, без сумніву, відключити RA, перш ніж увімкнути ipv6, якщо саме цього ви хотіли.

NB: Я підозрюю, що у вас виникнуть проблеми з інтерфейсами з назвою VLAN (наприклад, eth0.100), і вам доведеться писати це в команді 'up' як 'eth0 / 100', а не $ IFACE, що має неправильний формат - Я не перевіряв, але, здається, так виглядає sysctl на світ.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.