Почему интерфейс имеет IPv6-адрес с отключенным IPv6?

Лучше использовать макрос препроцессора, который вы можете определить в строке компиляции. Поэтому измените код на:

#ifndef N_MAC
#define N_MAC 10
#endif
const int N = N_MAC;

, а затем скомпилируйте его с помощью:

g++ test.cpp -DN_MAC=$x -o test.o

Блок $ifndefобеспечивает значение по умолчанию, если вы не используете -DN_MACдля его переопределения.

4
25.02.2020, 08:16
2 ответа

Соответствующий параметр в профиле подключения NetworkManager называется ipv6.method.

До недавнего времени disabledне было реализовано (, что делается сейчас ). Если у вас есть последний NetworkManager и вы установили метод «отключено», он работает так, как ожидалось.

Существует также настройка ignore. В этом случае NetworkManager оставляет это ядру. Вам нужно будет установить соответствующие значения sysctl самостоятельно.

Если графический интерфейс называет его «отключенным» при настройке «игнорировать», это ошибка. Я думаю, что об этом уже сообщалось (не уверен ). Кроме того, это зависит от того, какой графический интерфейс вы используете (выглядит как gnome -control -center ). Если графический интерфейс не поддерживает это, используйте nmcli для установки свойства.

Причина, по которой существует "игнорирование", заключается в том, что NetworkManager уже давно предоставил IPv6 ядру. Этот режим делает это, но, возможно, это не очень полезно.

Потребовалось много времени, чтобы реализовать «отключено», потому что это не беспокоило кого-то достаточно, чтобы исправить это. В настоящее время это исправлено.

3
28.04.2021, 23:22

Адрес IPv6 — это локальный адрес ссылки -, который настраивается автоматически. Программы настройки сети его не трогают. Если вас беспокоит адрес (, он действителен только в локальной сети ), чтобы избавиться от него, вам нужно отключить IPv6 в ядре.

4
28.04.2021, 23:22

Теги

Похожие вопросы