dnsmasq не запускается при загрузке Ubuntu 13.10

dnsmasq не запускается при загрузке Ubuntu 13.10

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.

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

решение1

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

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

решение2

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

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

решение3

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

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

Если это поможет, моя конфигурация была следующей /etc/сеть/интерфейсы

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.

Связанный контент