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-адрес сервера не был назначен. Поэтому решение проблемы было
- Запустите интерфейс eth0, назначьте IP-адрес
sudo ifup eth0
и проверьте его с помощьюsudo ip a
- Перезапустите сервер 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.