dnsmasq: không thể tạo ổ cắm nghe cho cổng 53: Địa chỉ đã được sử dụng


16

Tôi đã thiết lập một máy chủ như trong liên kết dưới đây https://help.ubfox.com/community/Dnsmasq

root@user-desktop:/etc/init.d# sudo apt-get install dnsmasq
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following NEW packages will be installed:
  dnsmasq
0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded.
Need to get 0 B/15.4 kB of archives.
After this operation, 120 kB of additional disk space will be used.
Selecting previously unselected package dnsmasq.
(Reading database ... 146283 files and directories currently installed.)
Unpacking dnsmasq (from .../dnsmasq_2.59-4_all.deb) ...
Processing triggers for ureadahead ...
Setting up dnsmasq (2.59-4) ...
 * Starting DNS forwarder and DHCP server dnsmasq                                                                                                                                                            
dnsmasq: failed to create listening socket for port 53: Address already in use [fail]
invoke-rc.d: initscript dnsmasq, action "start" failed.

Câu trả lời:


8

Tôi nhận được vấn đề tương tự như bạn làm. Tôi nghĩ rằng đó là sự thật kể từ 12.10, nhưng chủ đề này đã bị đóng trước khi phát hành 12.10.

Làm cho một số googling xung quanh (chủ yếu lấy cảm hứng từ đây ), tôi tìm thấy giải pháp này:

  • chỉnh sửa /etc/NetworkManager/NetworkManager.conftập tin với bạn biên tập viên đáng yêu nhất
  • bình luận dòng dns=dnsmasq
  • khởi động lại trình quản lý mạng: sudo service network-manager restart

Nhưng trong cấu hình dnsmasq ( /etc/dnsmasq.conf) của bạn, bạn phải chắc chắn lắng nghe các truy vấn DNS localhost với dòng listen-address=127.0.0.1.

Nếu bạn thay đổi cấu hình của dnsmasq, đừng quên chạy sudo /etc/init.d/dnsmasq restart

Hy vọng điều này có thể giúp cho bạn.


2
Bằng cách bình luận dns=dnsmasqkhông làm thất bại mục đích cài đặt DNSmasq. Tôi đã thực hiện listen-address=127.0.0.1thay đổi và nó dường như hoạt động tốt bây giờ.

1
Không. Bạn đang giữ NetworkManager bắt đầu dnsmasq và thay vào đó bắt đầu độc lập.
MrMas

4

Tôi đã từng gặp vấn đề tương tự.

dnsmasq-baseđã được cài đặt và nghe trên cổng 53 ngăn chặn dnsmasqđể bắt đầu.

Có thể sử dụng dnsmasq-baseinsead của dnsmasqcho cùng một mục đích: chỉ cần sử dụng một thư mục cấu hình khác: Network Managerthư mục được đặt trong thư mục:

/etc/NetworkManager/dnsmasq.d/

3

Kiểm tra những gì đang nghe trên cổng 53 (tên miền) với:

sudo ss -lp "sport = :domain"

Vô hiệu hóa bất kỳ dịch vụ đang chạy trên cổng này. Nó thường systemd-resolved.

Tôi cũng masksẽ làm vậy để nó không tự động khởi động lại.

sudo systemctl disable systemd-resolved
sudo systemctl mask systemd-resolved

Để hoàn tác những gì bạn đã làm:

sudo systemctl unmask systemd-resolved
sudo systemctl enable systemd-resolved

Cũng sudo update-rc.d systemd-resolved disablecó thể ngăn nó khởi động tự động khi khởi động nhưng tôi chưa kiểm tra nó. Sử dụng defaultsthay vì disablehoàn tác lệnh.


Hoặc bạn có thể thay đổi những gì cổng dnsmasq lắng nghe, bằng cách chỉnh sửa tệp cấu hình:

sudo nano /etc/dnsmasq.conf

Nhấn Ctrl+ Wvà gõ listen-address=và nhấn enter.

Bỏ ghi chú dòng và thêm 127.0.0.1 với một cổng khác với 53 như:

listen-address=127.0.0.1#5300

0

EDIT: một số googling, và tôi tìm thấy giải pháp . Có vẻ như trình quản lý mạng phụ thuộc vào gói gọi là "dnsmasq-base" cung cấp một số chức năng dnsmasq. Mục nhập Dnsmasq trong Ubuntu Wiki nói rằng

"Lưu ý rằng gói" dnsmasq "can thiệp vào Trình quản lý mạng có thể sử dụng" dnsmasq-base "để cung cấp dịch vụ DHCP khi chia sẻ kết nối internet. Do đó, nếu bạn sử dụng trình quản lý mạng (chỉ trong cài đặt đơn giản), thì hãy cài đặt dnsmasq -base, nhưng không phải dnsmasq. Nếu bạn có thiết lập phức tạp hơn, hãy gỡ cài đặt trình quản lý mạng, sử dụng dnsmasq hoặc phần mềm tương tự (bind9, dhcpd, v.v.) và định cấu hình mọi thứ bằng tay. "

Nói cách khác: bạn muốn sử dụng dnsmasq? Sau đó, bạn biết rõ hơn những gì bạn đang làm. Giải pháp được đề cập trước đó đề xuất thay thế dnsmasq-base bằng dnsmasq theo cách sau (lệnh đầu tiên cũng sẽ xóa trình quản lý mạng):

sudo apt-get remove dnsmasq-base
sudo apt-get install dnsmasq
sudo apt-get install network-manager network-manager-gnome

Và đây là một số nhận xét chung về việc tìm kiếm những gì chặn các cổng của bạn: Bạn có thể tìm thấy những gì đang lắng nghe trên cổng nào bằng cách sử dụng lsof:

lsof -Pn +M -i4

sẽ liệt kê các cổng IPv4 do -i4, trong khi

lsof -Pn +M -i6

sẽ liệt kê các cổng IPv6. Hoặc gõ

lsof -Pn +M | grep ':53 (LISTEN)'

Điều này sẽ (hy vọng) cho bạn biết những gì đang sử dụng cổng 53. Công -Pntắc dòng lệnh ngăn chặn việc chuyển đổi số cổng / IP của máy chủ thành tên.

Hoặc, chạy

netstat -utlnp

3
Đừng xóa dnsmasq-base; gói dnsmasq phụ thuộc vào nó!
jdthood

3
Hãy cẩn thận khi làm điều này, sau khi chạy sudo apt-get remove dnsmasq-basetôi không có kết nối mạng vì vậy tôi không thể thực hiện các bước tiếp theo! Giải pháp hóa ra là chạy dhclient để lấy địa chỉ IP mới.
Glenjamin

Bị cắn bởi điều này .. tôi đã phải kích hoạt lại hệ thống giải quyết
Emmanel Osimosu
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.