Как я могу настроить локальный подстановочный знак (127.0.0.1) доменное разрешение на 18,04?

На Ubuntu 14.04 я использую dnsmasq для разрешения подстановочных доменов example.com к локальной машине (настольный компьютер дома).

После большого чтения вокруг я не могу ни за что в жизни разобраться в том же на чистой установке 18,04.

Все, чего я хочу достигнуть в данный момент:

  • для ping example.com проверять с помощью ping-запросов 127.0.0.1 а не 93.184.216.34;
  • для ping anysubdomain.example.com также проверять с помощью ping-запросов 127.0.0.1;
  • и для ping google.com проверять с помощью ping-запросов реальный google.com через маршрутизатор/IP DNS.

Конечно, это должно быть просто, даже тривиально?

Но я озадачен. Я могу получить разрешение example.com, но только за счет повреждения всего остального.

Как я могу сделать это?

18
задан 3 May 2018 в 00:26

4 ответа

Вот шаги для человечности 18.04. Это немного давно systemd-resolved не играет очень хорошо с NetworkManager при конфигурировании с dnsmasq.

Все же я все еще рекомендую запуститься dnsmasq от NetworkManager, потому что изменения сетевой связности (WI-FI, соединенный проводом...), будут обработаны прозрачно.

Включите dnsmasq в NetworkManager

Отредактируйте файл /etc/NetworkManager/NetworkManager.conf, и добавьте строку dns=dnsmasq к [main] раздел, это будет похоже на это:

[main]
plugins=ifupdown,keyfile
dns=dnsmasq

[ifupdown]
managed=false

[device]
wifi.scan-rand-mac-address=no

Позвольте NetworkManager справиться /etc/resolv.conf

sudo rm /etc/resolv.conf ; sudo ln -s /var/run/NetworkManager/resolv.conf /etc/resolv.conf

Настроить example.com

echo 'address=/.example.com/127.0.0.1' | sudo tee /etc/NetworkManager/dnsmasq.d/example.com-wildcard.conf

Перезагрузка NetworkManager и тестирование

NetworkManager должен быть перезагружен для изменений для вступления в силу.

sudo systemctl reload NetworkManager

Затем мы можем проверить, что можем добраться до некоторого обычного сайта:

dig askubuntu.com +short
151.101.129.69
151.101.65.69
151.101.1.69
151.101.193.69

И наконец проверьте что example.com и субдомены разрешены как 127.0.0.1:

dig example.com askubuntu.example.com a.b.c.d.example.com +short
127.0.0.1
127.0.0.1
127.0.0.1
26
ответ дан 23 November 2019 в 02:09

Сначала удостоверьтесь в /etc/NetworkManager/NetworkManager.conf следующая строка не присутствует или прокомментирована:

dns=dnsmasq

Перезапуск NetworkManager:

sudo systemctl restart NetworkManager

Удостоверьтесь, что NetworkManager-управляемый dnsmasq не работает больше, или путем уничтожения процесса или перезагрузки системы.

Затем установка dnsmasq:

sudo apt install dnsmasq

Добавьте следующее к /etc/dnsmasq.d/example.com:

address=/example.com/127.0.0.1

Перезапуск dnsmasq:

sudo systemctl restart dnsmasq

Теперь у Вас должен быть подстановочный знак переопределение DNS для example.com.

2
ответ дан 23 November 2019 в 02:09

Это не будет столь же просто как редактирование файла hosts. У Вас есть несколько опций:

Этот прокси DNS Python, который обработает подстановочные знаки в/etc/hosts

Использование DNSmasq

0
ответ дан 23 November 2019 в 02:09

Основываясь на ответе pim, я создал суть, содержащую простой сценарий Bash, который использует DNSMasq в сочетании с NetworkManager для настройки домена .test, указывающего на 127.0.0.1

См. суть на https://gist.github.com/archan937/d35deef3b1f2b5522dd4b8f397038d27.

Вы можете запустить скрипт с помощью следующей команды:

curl -sL https://gist.githubusercontent.com/archan937/d35deef3b1f2b5522dd4b8f397038d27/raw/setup-dnsmasq.sh | sudo bash

Ура!

0
ответ дан 20 January 2021 в 01:21

Другие вопросы по тегам:

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