Направьте полный TLD (например, * .dev) на 127.0.0.1.

В целях разработки я хочу, чтобы все DNS-запросы к домену .dev пересылались на мой собственный ПК.

Файл hosts не хватает. Я использую несколько доменов, а также несколько поддоменов. Я должен был бы добавить строку для каждой комбинации.

Я прочитал, что для этой работы можно использовать DNS-сервер пересылки, такой как DNSmasq (например, , как описано здесь ). Также это программное обеспечение уже установлено в Ubuntu 12.10.

Проблема в том, что я не вижу, как и где мне следует настроить DNSmasq, то есть, где я должен поместить эту строку:

address=/dev/127.0.0.1
29
задан 31 March 2014 в 18:01

4 ответа

Полный автономный dnsmasq (сервер DHCP и DNS) не установлен по умолчанию в Ubuntu 12.04 и 12.10, но пакет с именем dnsmasq-base установлен по умолчанию в Ubuntu Desktop 12.04 и 12.10. Пакет dnsmasq-base содержит двоичный файл dnsmasq и используется NetworkManager.

Чтобы сделать то, что вы хотите, вам нужно использовать dnsmasq в качестве кэширующего DNS-сервера. Вам необходимо:

  • Установить dnsmasq sudo apt-get install dnsmasq
  • Измените настройки сети, чтобы ваш компьютер использовал себя в качестве сервера DNS.
  • Внесите изменения в конфигурационные файлы:

Создайте /etc/dnsmasq.d/dev-tld со следующим содержимым:

local=/dev/

address=/dev/127.0.0.5

Первая команда говорит, что *.dev запросы не могут быть перенаправлены на ваш настоящий DNS-сервер. Второе говорит, что *.dev разрешается в 127.0.0.5, который является localhost.

  • Перезапустите службу dnsmasq (не сетевой менеджер)
0
ответ дан 31 March 2014 в 18:01

В Ubuntu 16.04 у меня сработало следующее:

  1. Установить dnsmasq

    sudo apt-get -y install dnsmasq
    
  2. Редактировать файл dnsmasq.conf:

    sudo nano /etc/dnsmasq.conf
    
  3. Добавьте свою команду:

    address=/dev/127.0.0.1
    

    Для подстановочного знака (*) вы можете использовать точку (.), Затем dnsmasq, чтобы разрешить WHATEWER_YOU_PUT_HERE.yourmachine.yourdomain для тот же IP. Например, address=/.localhost.dev/127.0.0.1

  4. Перезапустите службу dnsmasq:

    sudo /etc/init.d/dnsmasq restart
    
0
ответ дан 31 March 2014 в 18:01

В Ubuntu 12.10 или более поздней версии вы можете сделать это с помощью dnsmasq, запущенного NetworkManager.

  1. Создайте каталог mkdir /etc/NetworkManager/dnsmasq.d, если он еще не существует.

    sudo mkdir /etc/NetworkManager/dnsmasq.d
    
  2. Бросить следующую строку в /etc/NetworkManager/dnsmasq.d/dev-tld.

    address=/dev/127.0.0.1
    
  3. (Ubuntu 12.10) Перезапустите NetworkManager.

    sudo service network-manager restart
    
  4. (Ubuntu> 13.04) Перезапустите Dnsmasq.

    sudo service dnsmasq restart
    
  5. Наслаждайтесь удивительностью.

enter image description here

0
ответ дан 31 March 2014 в 18:01

Просто установленный новые 19.04 и единственный способ, которым я получил его, работа отключала systemd-resolved и имейте NetworkManager использовать dnsmasq вместо этого для DNS. NetworkManager создал в поддержке dnsmasq и dnsmasq-base пакет установлен по умолчанию.

Я указываю на несколько доменов на другой VMs как *.customerX.test кому: 192.168.33.10 и *.productY.test кому: 192.168.33.20 и так далее. Я не использовал бы *.dev больше, но вместо этого один из зарезервированных высокоуровневых доменов.

Решение

  1. Отключить systemd-resolved

    sudo systemctl disable systemd-resolved.service
    sudo systemctl stop systemd-resolved.service
    sudo rm /etc/resolv.conf
    
  2. Править /etc/NetworkManager/NetworkManager.conf использовать dnsmasq для DNS.

    [main]
    dns=dnsmasq
    
  3. Поместить dnsmasq конфигурация в /etc/NetworkManager/dnsmasq.d/test-tld.conf

    address=/test/127.0.0.1
    address=/customerX.test/192.168.33.10
    
  4. и наконец перезапуск NetworkManager который генерирует новое /etc/resolv.conf

    sudo systemctl restart network-manager.service
    
0
ответ дан 16 October 2019 в 11:50

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

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