Ubuntu 18.04. Miền tìm kiếm dns tên miền không hoạt động


17

Tôi đang sử dụng Raspberry Pi 3 với Ubuntu 18.04. Tại công ty của tôi, chúng tôi có một máy chủ DNS và một vài tên miền với ".local". Tôi biết về mặt kỹ thuật điều này không chính xác và thay vào đó nên là ".lan", bởi vì .local được dành riêng cho các dns đa hướng. Nhưng đó là cách nó được và nó không thể dễ dàng thay đổi. Vì vậy, trên máy tính windows của tôi, tôi có thể ping và duyệt đến các tên miền đó mà không gặp sự cố. Trên Ubuntu của tôi tuy nhiên tôi không thể.

Tôi không thể sử dụng IP vì một số tên miền nằm trên cùng một máy và máy chủ web IIS sắp xếp mọi thứ đi đâu.

Tôi đã tìm kiếm và nó xuất hiện khá thường xuyên:

Tuy nhiên, việc thay đổi /etc/nsswitch.conf không giúp tôi làm được điều đó. Tôi đã thử

  • máy chủ: tập tin mdns4_minimal [NOTFOUND = return] dns myhostname # default
  • máy chủ: tập tin dns
  • máy chủ: tập tin mdns4_minimal [NOTFOUND = continue] dns myhostname
  • máy chủ: tập tin mdns4 [NOTFOUND = return] dns myhostname
  • máy chủ: tập tin mdns4 [NOTFOUND = continue] dns myhostname
  • máy chủ: tập tin dns mdsn4_minimal myhostname
  • máy chủ: dns
  • một vài người khác

Không ai trong số đó làm việc. Tôi cũng đã thử khởi động lại sau khi thay đổi. Tôi đã cố gắng nói với avahi rằng tên miền = alocal trong /etc/avahi/avahi-daemon.conf, không hoạt động sau khi khởi động lại dịch vụ, không hoạt động sau khi khởi động lại. Sau khi nó không hoạt động, tôi đã cố gắng vô hiệu hóa hoàn toàn dịch vụ avahi-daemon.

sudo systemctl disable avahi-daemon

Sau khi khởi động lại, tôi đã thử một vài hoán vị trong /etc/nsswitch.conf một lần nữa, không có hiệu quả.

với cài đặt hiện tại của tôi trong máy chủ (tệp dns) Tôi nhận được phản hồi này:

dig login.name.local # not the actual name

; <<>> Dig 9.11.3-1ubuntu1.1-Ubuntu <<>> login.name.local
;; global options: +cmd
;; Got answer:
;; WARNING .local is reserved for Multicast DNS
;; You are currently testing what happens when an mDNS query is leaked to DNS
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 33538
;; flags: qr rd ra; QUERY: 1, ANSWER:0, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 65494
;; QUESTION SECTION:
;login.name.local. 0     IN     A

;; Query time: 2msec
;; SERVER: 127.0.0.53#53(127.0.0.53)
;; WHEN: Thu Aug 23 10:51:50 CEST 2018
;; MSG SIZE  rcvd: 56

Tuy nhiên, khi tôi hướng dẫn đào truy vấn máy chủ trực tiếp, tôi nhận được câu trả lời đúng:

dig @dnsIP login.name.local
; <<>> Dig 9.11.3-1ubuntu1.1-Ubuntu <<>> login.name.local
; (1 server found)
;; global options: +cmd
;; Got answer:
;; WARNING .local is reserved for Multicast DNS
;; You are currently testing what happens when an mDNS query is leaked to DNS
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 57866
;; flags: qr aa rd ra; QUERY: 1, ANSWER:1, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 65494
;; QUESTION SECTION:
;login.name.local. 0     IN     A

;; ANSWER SECTION:
login.name.local. 3600 IN    A        serverIP

;; Query time: 2msec
;; SERVER: dnsIP#53(dnsIP)
;; WHEN: Thu Aug 23 10:51:50 CEST 2018
;; MSG SIZE  rcvd: 56

Phiên bản Ubuntu này sử dụng netplan với trình quản lý mạng. IP DNS chính xác chắc chắn có trong danh sách. (trên thực tế, đó là DNS chính.) Ngoài ra, dnsIp cũng giống như serverIP, nhưng đó không phải là vấn đề.

Ping hoặc kết nối qua trình duyệt và tất nhiên là không hoạt động. Không ai sử dụng truy vấn dns.

Tôi không biết phải làm gì. Chắc chắn chúng ta không thể chuyển sang một tên miền khác. Tôi đặt tên máy chủ vào / etc / hosts nhưng đó chỉ là giải pháp tạm thời.


thay đổi độ phân giải như jeremfg đề xuất cho tôi sau khi theo đuổi cái đuôi của tôi trong vài giờ. Tnx.
dùng3529828

Câu trả lời:


13

Tôi đã phải đối mặt với một vấn đề rất giống nhau (nếu không hoàn toàn giống nhau) trên Linux Mint 19 (Tara). Tôi đã xoay sở để giải quyết nó bằng cách kết hợp 3 mẩu thông tin khác nhau. Dường như tất cả đều liên quan đến những thay đổi gần đây với giải quyết systemd.

Đầu tiên, vâng, tôi cần phải định cấu hình /etc/nsswitch.conf như bạn đã làm và mong đợi. Miễn là dns đến trước mdns bạn nên tốt. Tôi đã kết thúc đơn giản:

hosts:          files dns myhostname

tham chiếu: /unix//a/457172/271210

Trước khi nâng cấp lên phiên bản Mint này, đây là điều duy nhất tôi cần làm. Bây giờ tôi cũng đã thực hiện hai thay đổi khác dưới đây để làm cho nó hoạt động ...


Sau đó, tôi đã định cấu hình miền tìm kiếm của mình để hệ thống được phân giải sẽ hoạt động như tôi muốn. Vì vậy, tôi đã chỉnh sửa tệp /etc/systemd/resolve.conf , cài đặt Tên miền trong phần [giải quyết] . Trong trường hợp của tôi, nó trông giống như:

[Resolve]
#DNS=
#FallbackDNS=
Domains=trilliant.local
#LLMNR=no
#MulticastDNS=no
#DNSSEC=no
#Cache=yes
#DNSStubListener=yes

ref: https://askubfox.com/a/1031271/872881

Tôi cũng đã thay đổi cấu hình avahi thành một thứ khác ("mdns" nếu tôi nhớ chính xác, nhưng nó không thành vấn đề). Nó không nên được yêu cầu tuy nhiên từ sự hiểu biết của tôi. Chỉ cần thêm cho đầy đủ.


Nhưng không ai trong số họ làm việc cho đến khi tôi gọi như sau:

sudo ln -sf /run/systemd/resolve/resolv.conf /etc/resolv.conf

ref: https://askubfox.com/a/938703/872881

Sau khi gọi điều này, mọi thứ bắt đầu hoạt động hoàn hảo và như mong đợi!

Vì vậy, có thể tôi không thực sự cần phải thay đổi tệp /etc/systemd/resolve.conf nhưng tôi vẫn giữ thay đổi này vì nó hợp lý và cho phép tôi chỉ nhập tên máy, không có FQDN hoàn chỉnh, để độ phân giải DNS hoạt động .


Bạn có thể chỉ cần đặt dòng cuối cùng vào đầu và tôi đoán bạn sẽ nhận được nhiều sự ủng hộ hơn bằng cách làm như vậy.
HongboZhu

@HongboZhu Tôi sẽ biết nếu thực tế đó là thay đổi duy nhất cần thiết để làm cho các tên miền địa phương hoạt động. Tôi khá chắc chắn rằng bạn vẫn phải thích dns hơn mdns trong cấu hình trình phân giải. Tôi giả sử bình luận của bạn liên quan đến cấu hình tên miền ở giữa? Nếu vậy, vâng tôi cho rằng tôi có thể đặt nó ở cuối như một thay đổi tùy chọn. Nhưng hai mảnh còn lại là IMHO.
jeremfg

1
Trong bản cài đặt 18.04.2 mới của tôi, chỉ cần thay đổi thứ tự "máy chủ" tại nsswitch.conf đã hoạt động.
Tomofumi

16

Câu trả lời được chấp nhận không giải quyết vấn đề của tôi. Không có gì để làm với avahi - Tôi chưa cài đặt dịch vụ avahi. Tôi đã thiết lập hệ thống của mình để nhận ip VÀ cài đặt máy chủ dns của nó từ DHCP. Tuy nhiên, DNS được cung cấp dhcp không được kiểm tra cho các truy vấn bằng cách sử dụng .local

Vấn đề thực sự là Ubuntu 18.4 có symv.conf sym được liên kết với một tệp sơ khai trỏ đến localhost để phân giải tên. Độ phân giải tên Localhost dns có nghĩa là hệ thống từ chối kiểm tra máy chủ DNS được cung cấp cho các tên .local, tin rằng (không chính xác) rằng các tên đó không hợp lệ. Đây là thiết lập mặc định của /etc/resolv.conf:

ls -la /etc/resolv.conf
lrwxrwxrwx 1 root root 39 Jan 22 13:26 /etc/resolv.conf -> ../run/systemd/resolve/stub-resolv.conf

nội dung của tệp sơ khai là (xóa bình luận):

 cat /run/systemd/resolve/stub-resolv.conf
 .. removed comments..  
nameserver 127.0.0.53
    search reddog.microsoft.com

conf conf 'real' có cài đặt dns 'chính xác' (từ dhcp):

cat /run/systemd/resolve/resolv.conf

..removed comments..
nameserver 10.168.200.250 # This is my server that can resolve .local
nameserver 208.67.220.220 # these are optional, fallback dns servers
nameserver 208.67.222.222
# Too many DNS servers configured, the following entries may be ignored.
nameserver 8.8.8.8
search reddog.microsoft.com

Để làm cho hệ thống sử dụng trình phân giải DNS ưa thích của bạn thay vì localhost, bạn thay đổi liên kết tượng trưng để trỏ tới /run/systemd/resolve/resolv.conf thay vì /run/systemd/resolve/stub-resolv.conf:

sudo rm -f /etc/resolv.conf
sudo ln -s /run/systemd/resolve/resolv.conf /etc/resolv.conf

Ngay sau đó, độ phân giải của .local bắt đầu hoạt động. không cần phải khởi động lại hoặc khởi động lại bất kỳ dịch vụ.


Tôi gỡ cài đặt Avahi và sau đó làm theo các bước của bạn. Điều đó làm cho tôi. Cảm ơn ngài. (Sử dụng máy tính để bàn Ubuntu 18.04).
Jose L. Patiño

Cảm ơn bạn. Đây là câu trả lời cho tôi. Tại sao nó không "hoạt động" ra khỏi hộp?
adampski

sự khác biệt giữa giải pháp của bạn và câu trả lời được chấp nhận là gì? Đối với cả hai, người ta có thể bỏ qua 2/3 câu trả lời đầu tiên - thậm chí là giống nhau :-)
HongboZhu

Đây là câu trả lời duy nhất tôi thấy cho đến nay sao chép hành vi trong các phiên bản Ubuntu trước đó (và các linux khác), tức là danh sách các máy chủ DNS được cung cấp bởi DHCP và độ phân giải địa chỉ không bao giờ được lưu trong bộ nhớ cache.
Slátpan

2

Đối với tôi cách làm việc cho Ubuntu 18.04 là:

Chỉnh sửa avahi conf:

sudo vim /etc/avahi/avahi-daemon.conf

và thay đổi .local thành .alocal:

[server]
domain-name=.alocal

sau đó, mở giải quyết.

sudo vim /etc/systemd/resolved.conf

và bỏ ghi chú và chỉnh sửa Tên miền:

[Resolve]
...
Domains=yourdomain.local
...

và cuối cùng khởi động lại dịch vụ:

sudo service systemd-resolved restart
sudo service avahi-daemon restart

Trong trường hợp của tôi, tôi chỉ cần phải thay đổi Domainstrong /etc/systemd/resolved.conf(và khởi động lại dịch vụ).
tokosh

2
Điều này đã không làm điều đó cho tôi. vẫn không có gì
FalcoGer 27/11/18

Cùng một phiên bản Ubuntu. Sử dụng openvpn. Giải pháp này hoạt động tốt với VPN trên nhiều máy trong nhóm của tôi.
razvanone

2

Điều làm việc cho tôi là thêm DNS cục bộ làm máy chủ tên /etc/resolvconf/resolv.conf.d/head(như được mô tả ở đây ).

  1. Cài đặt gói độ phân giải.

    sudo apt install resolvconf
    
  2. Chỉnh sửa /etc/resolvconf/resolv.conf.d/headvà thêm vào như sau:

    nameserver 8.8.4.4  
    nameserver 8.8.8.8  
    
  3. Khởi động lại dịch vụ giải quyết.

    sudo service resolvconf restart
    

Việc sửa chữa phải là vĩnh viễn.


Tệp đầu chứa cảnh báo không chỉnh sửa tệp, vì tệp này được tạo bởi độ phân giải?
John Mee

@JohnMee headTệp là nguồn được sử dụng để tạo /run/resolvconf/resolv.conf. Tuy nhiên, tôi cũng sẽ không chỉnh sửa tập tin này.
Melebius

0

Tình huống của tôi cũng tương tự nhưng hơi khác: Chúng tôi sử dụng tên máy chủ như myservertrên Windows nhưng điều này không hoạt động trên Ubuntu 16.04 và tôi phải sử dụng myserver.mycompany.local. Sau khi nâng cấp lên 18.04, tôi có hành vi sau:

$ ping myserver.mycompany.local
ping: myserver.mycompany.local: Name or service not known

$ ping myserver
PING myserver.mycompany.local (192.168.x.y) 56(84) bytes of data.
64 bytes from myserver.mycompany.local (192.168.x.y): icmp_seq=1 ttl=62 time=3.05 ms
...

Tôi chỉ đơn giản là phải thay thế myserver.mycompany.localbằng myservertrong các ứng dụng của tôi.

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.