每次重新启动VPS时Dnsmasq无法启动

时间:2018-08-23 00:42:57

标签: linux dns debian vps dnsmasq

每次重新启动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。

1 个答案:

答案 0 :(得分:1)

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

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

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

  1. if [ ! "$DNSMASQ_USER" ]; then DNSMASQ_USER="*dnsmasq*" fi
  2. # /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. # /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为什么无法访问帐户文件。