这些是我输入时得到的输出:
systemctl status dnsmasq
● dnsmasq.service - dnsmasq - A lightweight DHCP and caching DNS server
Loaded: loaded (/lib/systemd/system/dnsmasq.service; enabled; vendor preset: enabled)
Active: failed (Result: exit-code) since Thu 2017-12-14 08:49:31 UTC; 54min ago
Process: 590 ExecStart=/etc/init.d/dnsmasq systemd-exec (code=exited, status=2)
Process: 569 ExecStartPre=/usr/sbin/dnsmasq --test (code=exited, status=0/SUCCESS)
Dec 14 08:49:30 raspberrypi systemd[1]: Starting dnsmasq - A lightweight DHCP and caching DNS server...
Dec 14 08:49:30 raspberrypi dnsmasq[569]: dnsmasq: syntax check OK.
Dec 14 08:49:31 raspberrypi dnsmasq[590]: dnsmasq: failed to create listening socket for 10.0.20.1: Cannot assign requested address
Dec 14 08:49:31 raspberrypi systemd[1]: dnsmasq.service: Control process exited, code=exited status=2
Dec 14 08:49:31 raspberrypi systemd[1]: Failed to start dnsmasq - A lightweight DHCP and caching DNS server.
Dec 14 08:49:31 raspberrypi systemd[1]: dnsmasq.service: Unit entered failed state.
Dec 14 08:49:31 raspberrypi systemd[1]: dnsmasq.service: Failed with result 'exit-code'.
当我手动启动服务时它工作正常。
我设置了一个静态IP,如下所示:
sudo nano /etc/dhcpcd.conf
interface wlan0
static ip_address=10.0.20.1/24
static routers=10.0.20.0
答案1
Dec 14 08:49:31 raspberrypi dnsmasq[590]: dnsmasq: failed to create listening socket for 10.0.20.1: Cannot assign requested address
10.0.20.1
该行表明当 dnsmasq 启动时,您的机器没有系统上的地址。添加此地址后,您需要重新配置 systemd 单元以启动。这可以通过使用 systemd 插件来完成。创建目录并将以下内容添加到该目录中/etc/systemd/system/dnsmasq.service.d
具有扩展名的文件中:.conf
[Unit]
After=network-online.target
这假设您的网络正在以通常的方式上线,并且它属于该network-online.target
单元。如果没有,那么这将不起作用,您需要进行相应的调整。
答案2
我解决了这个问题
我删除了这样的IP
sudo nano /etc/dhcpcd.conf
interface wlan0
static ip_address=10.0.20.1/24
static routers=10.0.20.0
我把ip给了这样的接口。
sudo nano /etc/network/interfaces
# interfaces(5) file used by ifup(8) and ifdown(8)
# Please note that this file is written to be used with dhcpcd
# For static IP, consult /etc/dhcpcd.conf and 'man dhcpcd.conf'
# Include files from /etc/network/interfaces.d:
source-directory /etc/network/interfaces.d
auto wlan0
iface wlan0 inet static
address 10.0.20.1
netmask 255.255.255.0
auto eth0
iface eth0 inet dhcp