Доступ к сети по IP, но не по имени DNS
Я хотел бы опубликовать решение проблемы, с которой я столкнулся в моем университете. Вопрос тесно связан с этим постом. Я спросил пользователя, нашел ли он решение, но он так и не ответил. Кроме того, я не уверен, является ли это решение индивидуальным или общим.
Ситуация
В одном из зданий моего университета общедоступный Wi-Fi будет работать только с IP-адресами, но не с доменными именами. Например, я мог ping 8.8.8.8
или зайдите в Google в Firefox по 74.125.227.142
IP-адрес, но ping google.com
или доступ google.com
в Firefox не будет работать.
Решение
Я опубликую решение моей проблемы ниже. Не стесняйтесь добавлять другие ответы или другие решения для других пользователей, которые могут столкнуться с аналогичными проблемами.
1 ответ
После того, как я столкнулся с этой проблемой, я некоторое время изучал ее и понял, что это может быть проблема с DNS. Прочитав этот пост, я узнал, что существует ряд способов добавить или заменить DNS-серверы, предоставляемые вашей сетью, однако ни одно из решений, похоже, не сработало. Как отметил пользователь brad, dns по-прежнему контролируется dnsmasq.
Теперь, осматривая файлы конфигурации в /etc/
Я нашел /etc/NetworkManager/NetworkManager.conf
файл, который имел следующую информацию:
[main]
plugins=ifupdown,keyfile,ofono
dns=dnsmasq
[ifupdown]
managed=false
Я изменил dns
строка, и теперь файл читается так:
[main]
plugins=ifupdown,keyfile,ofono
#dns=dnsmasq
dns=208.67.222.222
[ifupdown]
managed=false
После перезапуска Network Manager с sudo service network-manager restart
все начало работать правильно, и решение все еще работает после перезагрузки. Примечание: 208.67.222.222 - публичный сервер OpenDNS.
Что могло случиться:
В то время как в сети, выход nm-tool
было следующее:
DNS: 4.2.2.2
DNS: 8.8.8.8
DNS: 164.47.7.10
DNS: 164.47.7.11
Я считаю, что у моего универа есть свой собственный DNS-сервер, который является 164.47.7.11 и.10, и dnsmasq запрашивает ближайший, так что мои запросы даже не доходили до 8.8.8.8.
Надеюсь, что это решение поможет другим пользователям, и, пожалуйста, дайте мне знать, если мое решение этой проблемы является действительным, достаточно безопасным или достаточно разумным.
Относительно ответа на мой собственный вопрос:
Я делаю это, чтобы сделать это решение публичным и задокументированным, по крайней мере, для моего конкретного случая. Также я хотел бы сослаться на этот пост на meta.Ask-ubuntu.ru.
Обновление:
Вернувшись сегодня домой из универа, я обнаружил, что не могу подключиться к своему домашнему Wi-Fi. Я немного перечитал man NetworkManager.conf
и получается, что dns=
в [main]
на самом деле линия для плагинов, поэтому линия dns=dnsmasq
фактически добавляет плагин dnsmasq к сетевому менеджеру. Таким образом, мое решение все еще работало, но не так, как ожидалось. Вот выдержка из справочной страницы:
dns = plugin1, plugin2,... Список имен плагинов DNS, разделенных ','. Подключаемые модули DNS используются для обеспечения функциональности локального сервера кэширования имен (что ускоряет запросы DNS) и передачи данных DNS приложениям, которые их используют.
Итак, установив dns=208.67.222.222
Я мог, в принципе, запретить сетевому менеджеру использовать этот плагин, который в противном случае использовал бы локальный сервер DNS (который, очевидно, не работает).
Обновление № 2:
На данный момент я закомментировал dnsmasq и отбросил DNS моего интернет-провайдера. Теперь рассказывается о том, как Network Manager описан в этом посте, и это метод с графическим интерфейсом: просто откройте индикатор Network Manager, выберите "Edit Connections", откройте имя вашей сети, нажав "Edit", и на вкладке "Настройки IPv4" выберите "Automatic (DHCP) только адреса ".
То же самое можно сделать в командной строке, отредактировав файл для вашего конкретного соединения, хранящийся в /etc/NetworkManager/system-connections
, Ниже приведена соответствующая часть моего файла подключения:
[ipv4]
method=auto
dns=208.67.222.222;
ignore-auto-dns=true
[ipv6]
method=auto
Теперь, со всеми этими конфигурациями (закомментированный плагин dsnmaq из NetworkManager.conf и соединение, настроенное только на автоматические (DHCP) адреса), я в основном достиг всего, что я пытался начать все время - подключить мою машину с помощью доменные имена, и каким-то образом обойти с помощью университетского DNS-сервера, потому что это привело меня никуда.
nm-tool
подтверждает, что я использую DNS, который я хотел, а также dig google.com
а также /etc/resolv.conf
,
Это последнее обновление этого вопроса / ответа, и я не планирую добавлять что-либо еще, но не стесняйтесь добавлять любую соответствующую информацию в виде отдельного ответа или в комментариях, а также предложениях.
Надеюсь, это поможет другим пользователям Ubuntu и пользователям Linux в целом!
``