Centos

dnsmasq 無法在 CentOS 7 上啟動 dhcp 伺服器

  • October 30, 2017

我正在嘗試在我的 CentOS 7 系統上設置 dnsmasq。每次 dnsmasq 出現時,它都會在日誌中說它無法綁定 dhcp 伺服器套接字。

Oct 24 14:47:16 centos1 dnsmasq[1200]: started, version 2.76 cachesize 150
Oct 24 14:47:16 centos1 dnsmasq[1200]: compile time options: IPv6 GNU-getopt DBus no-i18n IDN DHCP DHCPv6 no-Lua TFTP no-conntrack ipset auth no-DNSSEC loop-detect inotify
Oct 24 14:47:16 centos1 dnsmasq-dhcp[1200]: DHCP, IP range 192.168.2.100 -- 192.168.2.199, lease time 2d
Oct 24 14:47:16 centos1 dnsmasq-tftp[1200]: TFTP root is /var/lib/tftpboot
Oct 24 14:47:16 centos1 dnsmasq[1200]: using nameserver 8.8.4.4#53
Oct 24 14:47:16 centos1 dnsmasq[1200]: reading /etc/resolv.conf
Oct 24 14:47:16 centos1 dnsmasq[1200]: using nameserver 8.8.4.4#53
Oct 24 14:47:16 centos1 dnsmasq[1200]: using nameserver 192.168.2.1#53
Oct 24 14:47:16 centos1 dnsmasq[1200]: read /etc/hosts - 2 addresses
Oct 24 14:47:17 centos1 dnsmasq[1200]: reading /etc/resolv.conf
Oct 24 14:47:17 centos1 dnsmasq[1200]: using nameserver 8.8.4.4#53
Oct 24 14:47:17 centos1 dnsmasq[1200]: using nameserver 192.168.2.1#53
**Oct 24 14:47:20 centos1 dnsmasq[1387]: failed to bind DHCP server socket: Address already in use**

我已經檢查了埠,netstat所有埠對我來說似乎都可以(它們都連接到 dnsmasq):

[root@centos1 log]# netstat -anlp | grep -w LISTEN
tcp        0      0 0.0.0.0:111             0.0.0.0:*               LISTEN      1/systemd
tcp        0      0 0.0.0.0:53              0.0.0.0:*               LISTEN      1200/dnsmasq
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      1206/sshd
tcp        0      0 127.0.0.1:631           0.0.0.0:*               LISTEN      1203/cupsd
tcp        0      0 127.0.0.1:25            0.0.0.0:*               LISTEN      1481/master
tcp6       0      0 :::111                  :::*                    LISTEN      1/systemd
tcp6       0      0 :::21                   :::*                    LISTEN      1213/vsftpd
tcp6       0      0 :::53                   :::*                    LISTEN      1200/dnsmasq
tcp6       0      0 :::22                   :::*                    LISTEN      1206/sshd
tcp6       0      0 ::1:631                 :::*                    LISTEN      1203/cupsd
tcp6       0      0 ::1:25                  :::*                    LISTEN      1481/master
[root@centos1 log]# netstat -anup
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
udp        0      0 0.0.0.0:36235           0.0.0.0:*                           982/dhclient
udp        0      0 0.0.0.0:4011            0.0.0.0:*                           1200/dnsmasq
udp        0      0 0.0.0.0:53              0.0.0.0:*                           1200/dnsmasq
udp        0      0 0.0.0.0:60476           0.0.0.0:*                           643/avahi-daemon: r
udp        0      0 0.0.0.0:67              0.0.0.0:*                           1200/dnsmasq
udp        0      0 0.0.0.0:68              0.0.0.0:*                           982/dhclient
udp        0      0 0.0.0.0:69              0.0.0.0:*                           1200/dnsmasq
udp        0      0 0.0.0.0:5353            0.0.0.0:*                           643/avahi-daemon: r
udp        0      0 127.0.0.1:323           0.0.0.0:*                           659/chronyd
udp6       0      0 :::53                   :::*                                1200/dnsmasq
udp6       0      0 :::69                   :::*                                1200/dnsmasq
udp6       0      0 :::49922                :::*                                982/dhclient
udp6       0      0 ::1:323                 :::*                                659/chronyd

這也是我的/etc/dnsmasq.conf

interface=enp0s3,lo
#bind-interfaces
domain=centos.home
# DHCP range-leases
dhcp-range= 192.168.2.100,192.168.2.199,255.255.255.0,48h
# PXE
dhcp-boot=pxelinux.0,pxeserver,192.168.2.199
# Gateway
dhcp-option=3,192.168.2.1
# DNS
dhcp-option=6,192.168.2.1,8.8.8.8
server=8.8.4.4
# Broadcast Address
dhcp-option=28,10.0.0.255
dhcp-host=08:00:27:c3:a2:df,192.168.2.199
# NTP Server
#dhcp-option=42,0.0.0.0
pxe-prompt="Press F8 for menu.", 60
pxe-service=x86PC, "Install CentOS 7 from network server 192.168.2.199", pxelinux
enable-tftp
tftp-root=/var/lib/tftpboot

我錯過了什麼?

我確實停止了 dnsmasq 並檢查了所有埠,但是 dnsmasq 使用的所有埠都消失了。無論如何,我認為這個想法讓我走上了正軌。所以我嘗試檢查埠狀態,我想到防火牆可能阻止了部分/全部 dnsmasq 埠連接,實際上就是這樣。我剛剛禁用了這些埠上的防火牆,它終於開始正常工作了。

記錄在這裡是我所做的:我從上面的 netstat 命令檢查我需要的埠並打開防火牆上的所有埠

firewall-cmd --add-service=ftp --permanent     
firewall-cmd --add-service=dns --permanent     
firewall-cmd --add-service=dhcp --permanent 
firewall-cmd --add-port=69/udp --permanent  
firewall-cmd --add-port=4011/udp --permanent
firewall-cmd --reload

謝謝

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