Dnsmasq

我無法在啟動時啟動 dnsmasq

  • December 15, 2017

這些是我輸入時得到的輸出:

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

我解決了這個問題

我刪除了這樣的 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
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單元。如果沒有,那麼這將不起作用,您需要相應地進行調整。

引用自:https://unix.stackexchange.com/questions/410833