每次重新启动VPS时,Dnsmasq无法启动。下面是关于它的日志。

Aug 22 18:14:51 debian dnsmasq[776]: dnsmasq: syntax check OK.
Aug 22 18:14:51 debian dnsmasq[798]: chown: invalid user: ‘dnsmasq:nogroup’
Aug 22 18:14:51 debian systemd[1]: dnsmasq.service: Control process exited, code=exited status=2
Aug 22 18:14:51 debian systemd[1]: Failed to start dnsmasq - A lightweight DHCP and caching DNS server.
Aug 22 18:14:51 debian systemd[1]: dnsmasq.service: Unit entered failed state.
Aug 22 18:14:51 debian systemd[1]: dnsmasq.service: Failed with result 'exit-code'.


我会在/etc/dnsmasq.conf文件中正确设置用户名和组名。我尝试重新安装dnsmasq,然后工作了。但是,重新启动VPS后,它无法再次启动。然后,我必须再次重新安装...

因此,如果要使用dnsmasq,则不必重启VPS。但是我想知道是什么原因造成的,以及如何一劳永逸地解决。我的VPS的系统是Debian 9,内核是4.9.0-7-amd64。

最佳答案

终于,我找到了麻烦并解决了。如系统所告知,chown: invalid user: ‘dnsmasq:nogroup’是错误代码。我认为dnsmasq无法自动添加导致错误的用户或组。

一种解决方案可能是手动添加名为“ dnsmasq”的用户。我没有尝试过,但我认为它可以工作。另一种处理方式是在相关文件中查找用户“ dnsmasq”,并用“ nobody”之类的现有用户替换用户“ dnsmasq”。

/etc/init.d/dnsmasq文件中有3个位置需要替换。


if [ ! "$DNSMASQ_USER" ]; thenDNSMASQ_USER="*dnsmasq*"fi
# /run may be volatile, so we need to ensure that # /run/dnsmasq exists here as well as in postinst if [ ! -d /run/dnsmasq ]; then mkdir /run/dnsmasq || return 2 chown *dnsmasq*:nogroup /run/dnsmasq || return 2 fi
# /run may be volatile, so we need to ensure that # /run/dnsmasq exists here as well as in postinst if [ ! -d /run/dnsmasq ]; then mkdir /run/dnsmasq || return 2 chown *dnsmasq*:nogroup /run/dnsmasq || return 2 fi


替换上方3个强调的位置。

尽管我不确定dnsmasq为什么无法访问帐户文件。

关于linux - 每次重新启动VPS时Dnsmasq无法启动,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/51976913/

10-13 08:35