Làm cách nào để định cấu hình tra cứu DNS cục bộ trong Ubuntu 16.10?


9

Tôi mới cài đặt Ubuntu 16.10 và rsync'd một bản sao lưu của thư mục chính trước đó của tôi từ kubfox 16.04 sang bản cài đặt mới của tôi. Mọi thứ hoạt động tốt, nhưng tôi không thể giải quyết các địa chỉ địa phương mặc dù có nhiều thử nghiệm và lỗi.

Tất cả các mạng dường như đang làm việc hoàn hảo. Trình duyệt Internet, tra cứu DNS của các địa chỉ bên ngoài, ssh, v.v ... đều tuyệt vời. Tại địa phương, tôi có thể truy cập máy qua ssh bằng địa chỉ của họ, nhưng không phải tên của họ. Tất cả đều hoạt động tốt trong nautilus / samba, có nghĩa là THẮNG hoạt động. Vấn đề duy nhất, nó xuất hiện, là DNS mạng cục bộ. Tôi đã cài đặt và chạy avahi-daemon, vì nó đi kèm với Ubuntu.

Tôi đã bao gồm một số khắc phục sự cố, sử dụng << >> để rút ngắn các phần hoạt động chính xác hoặc dư thừa.

$ nmcli g
STATE      CONNECTIVITY  WIFI-HW  WIFI     WWAN-HW  WWAN    
connected  full          enabled  enabled  enabled  enabled 

$ ping tendril8 << or tendril8.local >>
ping: tendril8: Name or service not known

$ ping gateway
PING gateway (192.168.1.1) 56(84) bytes of data.
64 bytes from gateway (192.168.1.1): icmp_seq=1 ttl=64 time=4.16 ms

$ ping askubuntu.com
PING askubuntu.com (151.101.129.69) 56(84) bytes of data.
64 bytes from 151.101.129.69 (151.101.129.69): icmp_seq=1 ttl=49 time=43.0 ms

$ nslookup askubuntu.com
Server:     127.0.1.1
Address:    127.0.0.1#53
<< followed by several IP addresses >>

$ nslookup tendril8 << or tendril8.local >>
Server:     127.0.1.1
Address:    127.0.0.1#53
** server can't find tendril8: NXDOMAIN

$ cat /etc/resolv.conf
# Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)
#     DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN
nameserver 127.0.1.1

$ ls -la /etc/resolv.conf
lrwxrwxrwx 1 root root 29 Oct 15 19:30 /etc/resolv.conf -> ../run/resolvconf/resolv.conf

$ cat /etc/nsswitch.conf
# /etc/nsswitch.conf
#
# Example configuration of GNU Name Service Switch functionality.
# If you have the `glibc-doc-reference' and `info' packages installed, try:
# `info libc "Name Service Switch"' for information about this file.

passwd:         compat
group:          compat
shadow:         compat
gshadow:        files

hosts:          files resolve [!UNAVAIL=return] mdns4_minimal dns [NOTFOUND=return]
networks:       files

protocols:      db files
services:       db files
ethers:         db files
rpc:            db files

netgroup:       nis

Lưu ý: Tôi đã dành rất nhiều thời gian để xem xét các giải pháp "cũ hơn", trước khi Ubuntu chuyển sang systemd.resolve vào 16.10. Họ đã không làm việc cho tôi và tôi không tin đây là một câu hỏi trùng lặp với những câu hỏi tương tự với cấu hình Ubuntu trước đó.


1
Điều này cũng xảy ra trên các hệ thống được nâng cấp ... Tôi đoán rằng câu hỏi đó sẽ nhận được rất nhiều lượt truy cập trong những ngày này :)
Michele Keyboardmico

Tôi ghét các vấn đề mạng họ là tồi tệ nhất. Và cái này đang cắn tôi rất mạnh, nhưng theo một cách hơi khác. Câu trả lời đã không sửa nó cho tôi. Xem câu hỏi của tôi để biết chi tiết của tôi.
psychboom

Câu trả lời:


18

Nếu tôi hiểu đúng câu hỏi của bạn, bạn không thể giải quyết tên máy chủ địa phương.

Trên đó, tôi đã gặp vấn đề tương tự với bản cài đặt mới 16.10 và hóa ra đó là một vấn đề đã biết ( https://bugs.launchpad.net/ubfox/+source/systemd/+bug/1624071 ) liên quan đến libnss - Giải quyết trong systemd.

Giải pháp trong trường hợp của tôi là xem lại tệp /etc/nsswitch.conf của bạn và lưu ý cụ thể cách NSS giải quyết các máy chủ của bạn:

hosts: files resolve [!UNAVAIL=return] mdns4_minimal [NOTFOUND=return] dns myhostname

Logic này dường như không giải quyết được tên máy chủ trước cả khi đến mDNS.

Chỉnh sửa dòng máy chủ trở lại bản phát hành trước 16.10 sẽ sửa lỗi logic rõ ràng này:

hosts: files mdns4_minimal [NOTFOUND=return] dns myhostname

Liên kết báo cáo lỗi đi kèm cho thấy việc phát hành gói systemd trong tương lai cuối cùng có thể khắc phục vấn đề này.

Giàu có


1
Câu trả lời tuyệt vời với cả liên kết và ví dụ! Tôi đã chơi xung quanh với đề xuất của bạn và thấy rằng miễn là tôi đã di chuyển "mdns4_minimal" trước "[NOTFOUND = return]" và "[! UNAVAIL = return]" thì nó hoạt động. Tôi vẫn cần hậu tố .local cho các địa chỉ địa phương.
mightypile

1
Có một lỗi cụ thể hơn cho libnss-giải quyết và mdns tại bug.launchpad.net/ubfox/+source/systemd/+bug/1641328
nitơ

7

Một giải pháp thay thế tự động chỉnh sửa /etc/nsswitch.conflà xóa [ chỉnh sửa: và cài đặt lại] libnss-resolve :

sudo apt purge libnss-resolve
sudo apt install libnss-resolve

+1. Đây là một giải pháp ưu việt cho những người trong chúng ta, những người muốn giữ nguyên cấu hình hệ thống cho những gói mà chúng tôi chưa thực hiện được. Bây giờ nên được thực hiện bằng công cụ nâng cấp / cài đặt mặc dù ... 16.10 đã xuất hiện được một thời gian.
eskhool

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.