dnsmasq kann beim Booten von Ubuntu 13.10 nicht gestartet werden und zeigt den Fehler im Syslog an:
dnsmasq failed to create listening socket for 192.168.0.10: Cannot assign requested address
Wenn ich es manuell starte, funktioniert es einwandfrei. Hier ist die 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
So wie ich es verstehe, verwendet NetworkManager eine Instanz einer abgespeckten Version von dnsmasq, die mit der Vollversion in Konflikt geraten kann. Ich vermute, dass dies die Ursache des Problems ist. Ich möchte, dass der Host mit dem Server und alle anderen Hosts im Netzwerk dnsmasq verwenden.
Irgendwelche Ideen, was los ist?
Antwort1
Es klingt, als ob die Adresse oder der Port bereits verwendet wird. Versuchen Sie, dies zu deaktivieren, networkmanager
um zu sehen, ob dies hilft. Dies ist höchstwahrscheinlich nicht die Ursache, da Sie die Adresse erreichen können, wenn Sie den Dienst manuell starten.
Dies kann auch beim Booten passieren, wenn Ihre Adresse dem Server vor dem Start des Dienstes nicht zugewiesen wurde dnsmasq
. Stellen Sie in diesem Fall sicher, dass Ihrem Server eine statische IP-Adresse zugewiesen ist.
Antwort2
Ich hatte das gleiche Problem in 14.04. Es stellte sich heraus, dass es eine Kombination aus NetworkManager und dnsmasq war. /var/log/syslog
Sie sehen vielleicht, dass eth0 nicht bereit ist, wenn dnsmasq ebenfalls zu starten versucht.
Meine Lösung bestand darin, eth0 für NM zu deaktivieren, indem ich eth0 innerhalb konfigurierte /etc/network/interfaces
. Fügen Sie
iface eth0 inet dhcp
der Konfiguration ... oder Ähnliches hinzu. Somit ist eth0 verfügbar, wenn dnsmasq startet.
Antwort3
Hatte den gleichen Fehler, ich habe meine Schnittstelle eth0 nicht gestartet und die IP-Adresse des Servers wurde nicht zugewiesen. Die Lösung des Problems war also
- Starten Sie die eth0-Schnittstelle und weisen Sie die IP mit zu
sudo ifup eth0
und überprüfen Sie sie mitsudo ip a
- Starten Sie den DNSMask-Server neu.
sudo service dnsmasq restart
Wenn es hilft, meine Konfiguration war folgende /etc/Netzwerk/Schnittstellen
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
Mein Ziel war es, einen DHCP-Server zu bekommen, um den kabelgebundenen Verkehr auf das WLAN meines LPTP umleiten zu können