저는 Elementary OS Freya(Ubuntu 14.04)를 사용하고 있습니다. DNSMASQ를 설치하고 명령을 실행했는데 다음 오류가 발생했습니다.
$ sudo service dnsmasq start
* Starting DNS forwarder and DHCP server dnsmasq
dnsmasq: bad command line options: try --help [fail]
에서 /var/log/syslog
다음을 찾았습니다.
Dec 22 10:34:10 Marcelo-PC dnsmasq[3176]: bad command line options: try --help
Dec 22 10:34:10 Marcelo-PC dnsmasq[3176]: FAILED to start up
실행하면 sh -x /etc/init.d/dnsmasq
다음과 같은 결과를 얻습니다.
marcelo@Marcelo-PC:~$ sh -x /etc/init.d/dnsmasq start
+ set +e
+ PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
+ DAEMON=/usr/sbin/dnsmasq
+ NAME=dnsmasq
+ DESC=DNS forwarder and DHCP server
+ ENABLED=1
+ [ -r /etc/default/dnsmasq ]
+ . /etc/default/dnsmasq
+ ENABLED=1
+ CONFIG_DIR=/etc/dnsmasq.d,.dpkg-dist,.dpkg-old,.dpkg-new
+ [ -r /etc/default/locale ]
+ . /etc/default/locale
+ LANG=en_US.UTF-8
+ export LANG
+ test -x /usr/sbin/dnsmasq
+ [ -f /lib/lsb/init-functions ]
+ . /lib/lsb/init-functions
+ run-parts --lsbsysinit --list /lib/lsb/init-functions.d
+ [ -r /lib/lsb/init-functions.d/01-upstart-lsb ]
+ . /lib/lsb/init-functions.d/01-upstart-lsb
+ unset UPSTART_SESSION
+ _RC_SCRIPT=/etc/init.d/dnsmasq
+ [ -r /etc/init//etc/init.d/dnsmasq.conf ]
+ _UPSTART_JOB=dnsmasq
+ [ -r /etc/init/dnsmasq.conf ]
+ [ -r /lib/lsb/init-functions.d/20-left-info-blocks ]
+ . /lib/lsb/init-functions.d/20-left-info-blocks
+ [ -r /lib/lsb/init-functions.d/50-ubuntu-logging ]
+ . /lib/lsb/init-functions.d/50-ubuntu-logging
+ LOG_DAEMON_MSG=
+ FANCYTTY=
+ [ -e /etc/lsb-base-logging.sh ]
+ true
+ [ ! ]
+ [ != yes ]
+ [ -x /sbin/resolvconf ]
+ RESOLV_CONF=/var/run/dnsmasq/resolv.conf
+ [ ! ]
+ DNSMASQ_USER=dnsmasq
+ test 1 != 0
+ log_daemon_msg Starting DNS forwarder and DHCP server dnsmasq
+ [ -z Starting DNS forwarder and DHCP server ]
+ log_use_fancy_output
+ TPUT=/usr/bin/tput
+ EXPR=/usr/bin/expr
+ [ -t 1 ]
+ [ xxterm != x ]
+ [ xxterm != xdumb ]
+ [ -x /usr/bin/tput ]
+ [ -x /usr/bin/expr ]
+ /usr/bin/tput hpa 60
+ /usr/bin/tput setaf 1
+ [ -z ]
+ FANCYTTY=1
+ true
+ /usr/bin/tput xenl
+ /usr/bin/tput cols
+ COLS=169
+ [ 169 ]
+ [ 169 -gt 6 ]
+ /usr/bin/expr 169 - 7
+ COL=162
+ log_use_plymouth
+ [ n = y ]
+ plymouth --ping
+ printf * Starting DNS forwarder and DHCP server dnsmasq
* Starting DNS forwarder and DHCP server dnsmasq + /usr/bin/expr 169 - 1
+ /usr/bin/tput hpa 168
+ printf
+ start
+ [ ! -d /var/run/dnsmasq ]
+ start-stop-daemon --start --quiet --pidfile /var/run/dnsmasq/dnsmasq.pid --exec /usr/sbin/dnsmasq --test
+ start-stop-daemon --start --quiet --pidfile /var/run/dnsmasq/dnsmasq.pid --exec /usr/sbin/dnsmasq -- -x /var/run/dnsmasq/dnsmasq.pid -u dnsmasq -r /var/run/dnsmasq/resolv.conf -7 /etc/dnsmasq.d,.dpkg-dist,.dpkg-old,.dpkg-new
dnsmasq: opções inválidas de linha de comando: tente --help
+ return 2
+ log_end_msg 1
+ [ -z 1 ]
+ [ 162 ]
+ [ -x /usr/bin/tput ]
+ log_use_plymouth
+ [ n = y ]
+ plymouth --ping
+ printf \r
+ /usr/bin/tput hpa 162
+ [ 1 -eq 0 ]
+ printf [
[+ /usr/bin/tput setaf 1
+ printf fail
fail+ /usr/bin/tput op
+ echo ]
]
+ return 1
+ exit 1
DNSMASQ를 작동시킬 수 없습니다. 내 파일에서 주석 처리되지 않은 유일한 줄은 dnsmasq.conf
(전체 파일을 볼 수 있습니다)여기):
address=/nintendowifi.net/192.168.0.8
문제를 어떻게 볼 수 있나요?
답변1
이 오류는 패키지에 문제가 있습니다 dns-root-data
. DNSmasq에는 필요하지 않지만 필요합니다. 이 순서대로:
sudo apt-get purge dnsmasq
sudo apt-get autoremove
sudo apt-get install dnsmasq
구성(있는 경우)을 다시 연결하는 것을 잊지 마세요./etc/dnsmasq.conf
그게 작동하지 않으면, 이것을 시도해 보세요(적어도 Debian 9 및 Raspian의 경우)
sudo nano /etc/init.d/dnsmasq
어디서 읽을까
if [ -f $ROOT_DS ]; then
다음 줄을 주석 처리하고(줄 시작 부분에 # 추가) 이 줄을 그 아래에 넣습니다.
`DNSMASQ_OPTS="$DNSMASQ_OPTS `mawk -- '{ printf " --trust-anchor=.,%d,%d,%d,%s", $5, $6, $7, $8 }' $ROOT_DS`"`
구조가 /usr/share/dns/root.ds
변경되었습니다. 이전에는 필드가 공백으로만 구분되었으나 이제는 탭(\t)으로 구분됩니다.