Як каже Жиль , використовуйте gai.conf
. Примітки:
- Це працює на набагато нижчому рівні (мережа DNS та IP), ніж APT, тому це змінить, як усі ваші програми - як мінімум, усі, які використовують
getaddrinfo
.
- Перш ніж редагувати свій файл
gai.conf
, слід створити його резервну копію, а також прочитати (не хвилюйтесь, це коротко). Наведені нижче зміни, ймовірно, вже згадуються у вашому поточному файлі; якщо поточний файл вказує щось інше, ніж зазначено нижче, ви, мабуть, віддасте перевагу тому, що є у вашому поточному файлі.
Але якщо це те, що ви хочете (що це, мабуть, є), давайте продовжимо. Скажімо , у нас є два вузла www.he.net
і www.ripe.net
:
$ host www.he.net
www.he.net is an alias for he.net.
he.net has address 216.218.186.2
he.net has IPv6 address 2001:470:0:76::2
$ host www.ripe.net
www.ripe.net has address 193.0.6.139
www.ripe.net has IPv6 address 2001:67c:2e8:22::c100:68b
Випадок 1: віддайте перевагу IPV4 для всіх хостів
Додайте до /etc/gai.conf
наступного рядка:
precedence ::ffff:0:0/96 100
Після збереження відредагованого файлу (не потрібно перезавантажувати) вам слід побачити мережеві програми (наприклад, telnet
) за допомогою IPV4: наприклад,
$ telnet www.ripe.net 81
Trying 193.0.6.139...
^C
$ telnet www.he.net 81
Trying 216.218.186.2...
Випадок 2: віддайте перевагу IPV6 для конкретних хостів
Якщо ми хочемо віддати перевагу лише IPV6 для www.he.net
або її мережі, ми можемо додати маску / префікс для всієї або лише якоїсь частини її адреси IPV6 /etc/gai.conf
. Наприклад, наступний рядок:
precedence 2001:470::/32 100
(після збереження відредагованого файлу) створює
$ telnet www.ripe.net 81
Trying 193.0.6.139...
^C
$ telnet www.he.net 81
Trying 2001:470:0:76::2...
^C
Випадок 3: віддайте перевагу IPV4 для конкретних хостів
Якщо ми перевернемо маску, чи буде зворотна правда? За словами @GrueMaster, додаючи
precedence 2001:470::/96 100
працював над ним після відключення IPV6 для security.ubuntu.com
(інакше він зупиняється назавжди).
Дивитися також: