그래서 저는 raspbian을 사용하여 raspberry pi 2에서 apache2 서버와 hostapd를 실행하고 있습니다. dnsmasq.conf localhost=127.0.0.1로 dnsmasq를 실행하려고 하면(다른 설정 외에는 지금은 중요하지 않다고 생각합니다) 다음과 같이 표시됩니다.
dnsmasq: failed to create listening socket for port 53: Address already in use [fail].
하지만 난 시도해봤어
lsof -i -P -n | grep '53'
그리고 내가 얻은 것은 dnsmasq
.
네트워크를 실행하면 다음과 같은 결과 netstat -ap46
가 나옵니다.
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 localhost:mysql 0.0.0.0:* LISTEN 559/mysqld
tcp 0 0 0.0.0.0:domain 0.0.0.0:* LISTEN 438/dnsmasq
tcp 0 0 0.0.0.0:ssh 0.0.0.0:* LISTEN 445/sshd
tcp6 0 0 [::]:http [::]:* LISTEN 627/apache2
tcp6 0 0 [::]:domain [::]:* LISTEN 438/dnsmasq
tcp6 0 0 [::]:ssh [::]:* LISTEN 445/sshd
udp 0 0 0.0.0.0:mdns 0.0.0.0:* 327/avahi-daemon: r
udp 0 0 0.0.0.0:domain 0.0.0.0:* 438/dnsmasq
udp 0 0 0.0.0.0:bootpc 0.0.0.0:* 370/dhcpcd
udp 0 0 0.0.0.0:59990 0.0.0.0:* 327/avahi-daemon: r
udp6 0 0 [::]:mdns [::]:* 327/avahi-daemon: r
udp6 0 0 [::]:55646 [::]:* 327/avahi-daemon: r
udp6 0 0 [::]:domain [::]:* 438/dnsmasq
raw6 0 0 [::]:ipv6-icmp [::]:* 7 370/dhcpcd
네트워크 관리자가 설치되어 있지 않습니다. dnsmasq가 자체적으로 간섭합니까? 어떻게 해결할 수 있나요?
답변1
"로컬 주소"에서 포트 53의 이름은 :domain이며 모든 프로토콜에 대해 "438/dnsmasq" 프로세스에서 사용하는 포트로 나열됩니다. 를 사용하면 netstat -ap46n
이름 대신 숫자가 표시됩니다.
프로그램 이름은 dnsmasq이며 이는 실제로 이미 실행 중임을 의미합니다. 있는 경우 htop
해당 프로세스 ID(이 경우 438)로 검색할 수 있습니다. 프로세스를 시작하는 데 사용되는 명령이 표시됩니다. 또는 cat /proc/438/cmdline
이 정보를 표시하는 데 사용됩니다.
따라서 dnsmasq가 이미 실행 중인 상태에서 구성 파일을 확인해야 하며, 사용할 구성 파일에 대한 힌트는 /proc/438/cmdline의 명령에서 찾을 수 있습니다. 내 시스템의 dnsmasq 맨페이지에는 많은 파일이 나열되어 있지만 디렉터리 /etc/dnsmasq.d
및 기본 구성 파일은 나열되어 있지 않습니다 /etc/default/dnsmasq
. 후자의 파일을 확인하는 것이 좋은 시작점이 될 수 있습니다. 예를 들어 sudo nano /etc/default/dnsmasq
CLI를 사용하여 이를 수행합니다.
이 일을 계속하기에 충분하기를 바랍니다.