Как Вы видите здесь (и в man resolv.conf
), существует названная опция use-vc
для resolv.conf
вынудить Ubuntu использовать TCP для запросов DNS вместо UDP.
используйте-vc (начиная с glibc 2.14)
Наборы RES_USEVC в _res.options. Эта опция вызывает использование TCP для разрешений DNS.
Эта опция не работает на меня.
Моя Ubuntu:
ebrahim@ebrahim:~$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 16.10
Release: 16.10
Codename: yakkety
ebrahim@ebrahim:~$ uname -a
Linux ebrahim 4.8.0-58-generic #63-Ubuntu SMP Mon Jun 26 17:08:21 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux
ebrahim@ebrahim:~$ ldd --version
ldd (Ubuntu GLIBC 2.24-3ubuntu2.2) 2.24
Поскольку Вы видите выше, мой glibc
более новая версия, чем требуемая версия в resolv.conf странице руководства.
Это - мой конфигурационный файл:
ebrahim@ebrahim:~$ cat /etc/resolv.conf
# Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)
# DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN
options use-vc
nameserver 8.8.8.8
Но все еще запросы DNS находятся на UDP:
Почему?
(Обратите внимание, что я попробовал эту опцию на 6 других Ubuntu ОС, 3 из них были хорошо, и 3 не делает работавший!)