1

dnsmasq не запускается при загрузке Ubuntu 13.10, показывая ошибку в системном журнале:

dnsmasq failed to create listening socket for 192.168.0.10: Cannot assign requested address

Когда я запускаю его вручную, он прекрасно работает. Вот dnsmasq.conf:

bogus-priv
server=212.27.40.240
server=212.27.40.241
local=/mydomain.0./
# interface=eth0
listen-address=127.0.0.1
listen-address=192.168.0.10
expand-hosts
domain=mydomain.0.
dhcp-range=192.168.0.20,192.168.0.100,24h
dhcp-option=3,192.168.0.1
dhcp-option=vendor:MSFT,2,1i
cname="www.mydomain.0",myhost

Насколько я понимаю, NetworkManager использует экземпляр урезанной версии dnsmasq, которая может конфликтовать с полной версией. Я предполагаю, что это является причиной проблемы. Я хотел бы иметь хост с сервером на нем, плюс все остальные хосты в сети, использовать dnsmasq.

Есть идеи о том, что происходит?

3 ответа3

0

Произошла та же ошибка, я не запустил интерфейс eth0, и IP-адрес сервера не был назначен. Таким образом, решение проблемы было

  1. Запустите интерфейс eth0 и назначьте IP с помощью sudo ifup eth0 и проверьте его с помощью sudo ip a
  2. Перезапустите сервер suns sudo service dnsmasq restart

Если это поможет, мой конфиг был следующий /etc/network/interfaces

allow-hotplug eth0
iface eth0 inet dhcp
    address 192.168.2.1
    netmask 255.255.255.0
    network 192.168.2.0
    broadcast 192.168.2.255
    dns-nameservers 8.8.8.8
    dns-search lan
    post-up /sbin/iptables -t nat -A POSTROUTING -o wlan0 -j MASQUERADE

/etc/dnsmasq.conf

interface=eth0      # Use interface eth0  
listen-address=192.168.2.1 # Explicitly specify the address to listen on  
bind-interfaces      # Bind to the interface to make sure we aren't sending things elsewhere  
server=8.8.8.8       # Forward DNS requests to Google DNS  
domain-needed        # Don't forward short names  
bogus-priv           # Never forward addresses in the non-routed address spaces.  
dhcp-range=192.168.2.50,192.168.2.150,12h # Assign IP addresses between 172.24.1.50 and 172.24.1.150 with a 12 hour lease time  

Моя цель состояла в том, чтобы сервер dhcp мог перенаправлять кабельный трафик на wlan моего lptp.

0

У меня была такая же проблема в 14.04. Оказалось, что это комбинация NetworkManager и dnsmasq. В /var/log/syslog вы можете увидеть, что eth0 не готов, когда dnsmasq также пытается запустить.

Моим решением было отключить eth0 для NM, настроив eth0 в /etc/network/interfaces . Добавить iface eth0 inet dhcp ... или аналогичный конфиг . Таким образом, eth0 доступен при запуске dnsmasq.

0

Похоже, адрес или порт уже используется. Попробуйте отключить networkmanager чтобы увидеть, помогает ли это. Это, скорее всего, не причина, так как вы можете добраться до адреса, когда вы запускаете службу вручную.

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .