DNS được đặt thành 127.0.0.53 của systemd - làm cách nào để thay đổi vĩnh viễn?


38

Gần đây tôi đã nâng cấp lên 17.10. Khi tôi cố gắng duyệt đến một trang web, hoặc ping một tên miền, nó không thể giải quyết được trang web đó.

network-adminthể hiện nội dung của /etc/resolv.confnameserver: 127.0.0.53

Nếu tôi thay đổi điều đó thành 8.8.8.8 hoặc 208.67.222.222 thì mọi thứ đều hoạt động. Cho đến khi tôi khởi động lại.

Khi khởi động lại hoặc tiếp tục, máy chủ tên được đặt lại thành 127.0.0.53.

Làm cách nào để tôi đặt máy chủ tên vĩnh viễn thành một cái gì đó hoạt động?


Đối với người hâm mộ systemd, nếu tôi chạy systemd-resolve --statustôi nhận được

Link 3 (wlo1)
      Current Scopes: LLMNR/IPv4 LLMNR/IPv6
       LLMNR setting: yes
MulticastDNS setting: no
      DNSSEC setting: no
    DNSSEC supported: no

Nếu tôi làm theo lời khuyên ở câu hỏi này - DNS sẽ tiếp tục đặt lại sau khi khởi động lại. Ubuntu 17.10 - DNS vẫn không giải quyết được.


systemctl stop systemd-resolvedsystemctl mask systemd-resolvednên thực hiện các mẹo :)
Shaya

Câu trả lời:


28

Bạn có thể cài đặt một gói độ phân giải, nó sẽ sửa đổi cách /etc/resolv.confđược xây dựng khi khởi động hệ thống.

sudo apt install resolvconf

Sau đó, bạn có thể tạo hoặc sửa đổi một tập tin /etc/resolvconf/resolv.conf.d/tail. Nếu bạn đặt trong tệp này một dòng nameserver 8.8.8.8, dòng này sẽ được thêm vào cuối /run/resolvconf/resolv.conflúc khởi động. /etc/resolv.confbây giờ sẽ là một liên kết tượng trưng cho tập tin này.


4
Công việc này - cảm ơn bạn! Bạn có biết nếu có cách nào để 127.0.0.53 tự hoạt động không?
Terence Eden

1
Tôi khá mới đối với vấn đề này. Chỉ cần cố gắng để thoát khỏi các vấn đề dns khi bật / tắt vpn trong những tuần qua. Bạn có thể thử sudo dpkg-reconfigure resolvconf. Tôi đã thử điều này gần đây, xóa tập tin đuôi, và lúc đầu nó dường như hoạt động.
oscar1919

@TerenceEden nếu bạn đang muốn tạo ra 127.0.0.53 để tự hoạt động (nếu cần), hãy xem câu trả lời của tôi: Askubfox.com/a/1083843/281191
intelfx

9

Các đúng giải pháp sẽ được để sửa systemd-giải quyết thay vì cố gắng để chữa bệnh đau nửa đầu với một máy chém.

Nó là một công cụ tốt, thực sự, nếu được sử dụng đúng cách.

Đánh giá theo systemd-resolve --statusđầu ra của bạn ...

Link 3 (wlo1)
      Current Scopes: LLMNR/IPv4 LLMNR/IPv6
       LLMNR setting: yes
MulticastDNS setting: no
      DNSSEC setting: no
    DNSSEC supported: no

... Công cụ quản lý mạng của bạn không chuyển cấu hình DNS trên mỗi giao diện cho hệ thống được phân giải.

Các phiên bản gần đây của NetworkManager, chẳng hạn, sẽ tự động thực hiện việc này nếu /etc/resolv.conflà một liên kết tượng trưng trỏ vào bên trong /run/systemd/resolvehoặc tới /usr/lib/systemd/resolv.conf. Ngoài ra, các phiên bản gần đây của phân giải systemd cố gắng tương thích với giao diện resolvconfphân giải lịch sử bằng cách cài đặt nhị phân nói chuyện với phân giải systemd.

Mặc dù sử dụng một trong hai giải pháp này sẽ được ưu tiên, nếu bạn đang tìm kiếm một giải pháp nhanh và bẩn, bạn chỉ có thể định cấu hình phân giải systemd để sử dụng máy chủ DNS của mình trên toàn cầu:

$ cat /etc/systemd/resolved.conf
<...>
[Resolve]
DNS=8.8.8.8 8.8.4.4
<...>

Sau đó khởi động lại systemd-resolved.servicehoặc khởi động lại.


Ít nhất với tôi câu trả lời này không hoạt động, sử dụng ubfox 18.04, sau khi thay đổi mục nhập "DNS", nó giữ cho chúng tôi sử dụng 127.0.0.53
André M. Faria

1
@ AndréM.Faria tìm hiểu cách giải quyết hoạt động. 127.0.0.53là địa chỉ của trình phân giải bộ đệm ẩn cục bộ. Nó chuyển tiếp yêu cầu DNS tới bất kỳ máy chủ DNS ngược dòng nào bạn chỉ định.
intelfx

Đôi khi bạn biết một cái gì đó và chỉ cần bỏ qua nó, có bạn đúng.
André M. Faria

1
Cũng tốt để lưu ý ở đây, là mặc định systemd-resolvedlưu trữ các phản hồi DNS. Mặc dù điều này đôi khi có thể hữu ích, nó có thể gây ra vấn đề trong một số tình huống. Bỏ ghi chú cache=yestrong tệp cấu hình trong câu trả lời và đặt thành no.
Quentin Skousen

điều gì thực sự gây ra /etc/resolve.conf(hoặc thực sự /run/resolvconf/resolv.conf, mà những điểm trước đây) được cập nhật? sẽ là tốt để biết để thử nghiệm, mà không cần phải khởi động lại giả định. tất cả những gì tôi có thể nói là việc khởi động lại systemd-resolved.servicedường như không thực hiện được mánh khóe
bbarker

8

Tôi sử dụng Lubfox & Kubfox 18.04. Tôi đã có thể khắc phục sự cố DNS trong 2 bước:

Bước đầu tiên: Cài đặt unboundvà thiết lập nó để thay thế systemd-resolvednhư Grégoire C hiển thị ở đây .

sudo systemctl disable systemd-resolved
sudo systemctl stop systemd-resolved
sudo systemctl enable unbound-resolvconf
sudo systemctl enable unbound

khởi động lại

Mở dưới dạng root tập tin /etc/NetworkManager/NetworkManager.conf

(sudo leafpad /etc/NetworkManager/NetworkManager.conf trong Lubfox 18.04 hoặc trong Kubfox 18.04 SUDO_EDITOR=kate sudoedit /etc/NetworkManager/NetworkManager.conf)

và bên dưới [main]đặt dòng này:

dns=unbound

khởi động lại một lần nữa

Bước thứ hai: Nếu sau khi khởi động lại, vấn đề vẫn không được giải quyết, như trong trường hợp của tôi, hãy khởi động trình quản lý tệp với quyền root, đi đến /etc, xóaresolv.conf và tạo mới resolv.conf. Để trống và khởi động lại hệ điều hành. Trong trường hợp của tôi sau khi khởi động lại này, vấn đề biến mất.

Trong Kubfox 18.04, bạn không thể khởi động Dolphin với quyền root, vì vậy trước tiên bạn có thể truy cập /etcvà mở terminal từ đó, sau đó nhập sudo suvà nhấn Enter để sử dụng nó làm root và sau đó xóa resolv.confbằng lệnh rm resolv.conf. Sau đó, bạn có thể tạo một tệp trống mới trên máy tính để bàn của mình, đặt tên cho nó resolv.confvà mở một thiết bị đầu cuối từ đó. Sử dụng sudo sulệnh để vào chế độ gốc cho thiết bị đầu cuối và sau đó sao chép mới resolv.conftừ máy tính để bàn của bạn sang /etclệnhcp resolv.conf /etc .

Tôi phải nói thêm rằng tôi đã không thử thực hiện bước thứ hai trước khi cài đặt unbound, vì vậy lần sau tôi sẽ làm như vậy, chỉ để xem liệu nó có đủ hay không.


Tại sao không chỉ chỉnh sửa nó như root và xóa nội dung?
Ballie

@Ballie Tôi đã thử điều này lúc đầu, nhưng không được. Ngoài ra, bản gốc resolv.conftừ /etcđược hiển thị như một loại phím tắt, điều này không bình thường, tôi nghĩ vậy. Đây là lý do tại sao tôi quyết định xóa nó và tạo lại nó bằng cách tạo một tệp trống mới và đặt tên cho nó resolv.conf. Va no đa hoạt động. Vì lý do này tôi đã viết ở trên rằng lần sau tôi phải cài đặt lại HĐH, tôi sẽ thử làm điều này trước, mà không làm "bước đầu tiên" - để xem liệu nó có đủ không. Nhưng bản gốc resolv.conftrong /etccần phải được loại bỏ và tạo lại bằng mọi cách - về điều này tôi chắc chắn.
Toàn bộ

Tôi vừa vô hiệu hóa systemd-yet.service và xóa liên kết của tệp giải quyết và tạo một cách thủ công, và nó đã hoạt động!
André M. Faria

8

làm việc trong systemdmô hình thêm DNS vào liên kết / thiết bị

sử dụng Ubuntu 17.10+ thêm một *.networktệp:

sudo nano /lib/systemd/network/100-somecustom.network:

100-somecustom.network (100 có thể là bất kỳ số nào được ưu tiên và nó yêu cầu .networkmở rộng tệp):

[Match]
Name=wlo1 # the device name here

[Network] # add multiple DNS 
DNS=8.8.8.8
DNS=208.67.222.222

Sau đó khởi động lại:

sudo service systemd-networkd restart

Cũng nhìn vào:

netplan apply

Sau đó kiểm tra:

systemd-resolve --status wlo1

Từ trang thông tin info systemd.network:

Ngoài /etc/systemd/network, thả trong ".d" thư mục có thể được đặt trong / lib / systemd / mạng hoặc / run / systemd / mạng thư mục. Các tệp thả trong / etc được ưu tiên hơn các tệp trong / chạy, lần lượt được ưu tiên hơn các tệp trong / lib. Các tập tin thả trong bất kỳ thư mục nào được ưu tiên hơn tập tin netdev chính ở bất cứ đâu. (Tất nhiên, vì / run là tạm thời và / usr / lib dành cho các nhà cung cấp, nên không nên sử dụng các ứng dụng thả xuống ở một trong những nơi đó.)

Một cách tiếp cận khác vô hiệu hóa việc DNSStubListenersử dụng với dnsmasq:

sudo nano /etc/systemd/resolved.conf:

#
DNSStubListener=false

liên quan:


Điều kỳ lạ là bạn đã nói rằng DNSStubListener = false, nhưng cấu hình nhận xét thực tế là DNSStubListener = có, thường thì nghịch đảo của giá trị "có" là "không" và không phải là "sai" trong trường hợp "sai" thường là "sai" thật".
André M. Faria

Câu trả lời của bạn để tạo một tệp có phần mở rộng .network không hoạt động.
André M. Faria

2

Đây là cách tôi thay đổi bản ghi dns của mình trên cấu hình giao diện.

$ vi /etc/netplan/50-cloud-init.yaml

Thay đổi địa chỉ máy chủ tên, trước đây là .4 sau đó tôi đổi nó thành .3:

...
            nameservers:
                addresses:
                - 192.168.1.3
...

Lưu cấu hình và sau đó áp dụng cấu hình:

$ sudo netplan apply

Sau đó khởi động lại dịch vụ giải quyết.

$ sudo systemctl restart systemd-resolved.service

Để ghi chú: Tôi đã khởi động lại máy chủ và những thay đổi mà tôi vẫn còn nguyên. Tôi sử dụng resolvctl dnslệnh để xác minh hồ sơ dns.


Đây thực sự là câu trả lời chính xác. Tôi ngạc nhiên nó không phải là người được chấp nhận.
Toumal

0

Có một số vấn đề với NordVPN nên đã quyết định thêm vào điều này.

Phát hiện:
NordVPN đặt /run/systemd/resolve/resolv.confcài đặt DNS khi kết nối.
NordVPN xóa tất cả các cài đặt DNS từ /run/systemd/resolve/resolv.confkhi ngắt kết nối.
Điều này khiến máy chủ DNS không còn hoạt động (vì không có một bộ).

Hệ thống cần khởi động lại để thiết lập lại mọi thứ. Khởi động lại tiêu chuẩn của dịch vụ (sudo systemctl restart systemd-resolved.service ) không hoạt động.

Giải pháp cho vấn đề này:

sudo apt install resolvconf

Trụ sở để /etc/resolvconf/resolv.conf.d/

cd /etc/resolvconf/resolv.conf.d/
sudo nano tail

Thêm máy chủ tên

nameserver 1.1.1.1
nameserver 1.0.0.1

Kiểm tra các vị trí sau cho máy chủ tên có thể đã được đặt:

/run/resolvconf/interface/original.resolvconf
/run/resolvconf/interface/systemd-resolved
/etc/resolvconf/resolv.conf.d/tail
/etc/resolvconf/resolv.conf.d/head
/etc/systemd/resolved.conf
/run/systemd/resolve/resolv.conf
/run/systemd/resolve/stub-resolv.conf

Kiểm tra máy chủ DNS nào đang được sử dụng với:

nslookup google.com

Server:         1.1.1.1
Address:        1.1.1.1#53

0

Có lẽ hơi muộn, nhưng tôi gặp phải vấn đề này. Tôi phải thừa nhận rằng tôi đã cấu hình thủ công các cài đặt mạng của mình thông qua cli trước đó và không thông qua trình quản lý mạng sẵn có. Tôi chạy Ubuntu 18.04.

Vì vậy, sau khi tôi vô hiệu hóa và sau đó kích hoạt lại systemd.resolve.service, hành vi thất thường ngẫu nhiên về việc mất cấu hình DNS của tôi đã được giải quyết cho tôi.

systemctl disable systemd.resolved.service
reboot

sau khi khởi động lại:

systemctl enable systemd.resolved.service
reboot

Tôi là một người dùng Linux tương đối mới, vì vậy phải có ai đó có thể giải thích các vấn đề và tại sao lý do này lại hiệu quả với tôi, nhưng có vẻ đáng để đề cập nếu nó có thể giúp đỡ người khác.


Sry để thất vọng, nhưng phải có một cái gì đó bạn đã làm ở giữa mà thực sự khắc phục vấn đề. Các hoạt động bạn đang đề xuất ở đây chỉ có thể rời khỏi hệ thống như nó đã được.
tishma

-1

Khi sử dụng độ phân giải tên dhcp hoạt động như mong đợi trong Ubuntu. Các vấn đề bắt đầu khi bạn muốn đi tĩnh. cat /etc/resolv.confsẽ chỉ ra rằng yor dns là 127.0.0.53 chứ không phải những cái bạn có trong /etc/netplan/.yamltệp. Để khắc phục điều này, bạn cần xóa /etc/resolve.confliên kết và tạo một liên kết mới trỏ đến/run/resolve/resolve.conf


Xin vui lòng, chỉnh sửa câu trả lời của bạn và sửa một số định dạng ...
Yufenyuy Veyeh Dider

-2

Điều này đòi hỏi một số chơi xung quanh với. Sau khi tôi cập nhật cài đặt, tôi khởi động lại. Sử dụng:

ln -s /run/resolvconf/resolv.conf /etc/resolv.conf

/etc/systemd/resolved.conf
DNS=8.8.8.8
Cache=no

System resolved failed
systemctl stop systemd-resolved
systemctl disable systemd-resolved

Khi bình luận ra "yêu cầu" cho

# domain-name, domain-name-servers, domain-search, host-name,

Thêm dòng này vào /etc/dhcp/dhclient.conf:

 supersede domain-name "cwillenterprise.com";

Chỉnh sửa tập tin cấu hình và thêm mục. Bổ sung sẽ không thay thế.

Thêm mục vào /etc/resolvconf/resolv.conf.d/tail

nameserver 8.8.8.8
search "cwillenterprise.com"

Chạy để thực hiện các thay đổi

resolvconf -u

1
Chào mừng bạn đến hỏi Ubuntu ! Vui lòng chỉnh sửa câu trả lời của bạn để sử dụng định dạng mã cho mã cần được nhập trong tệp hoặc thiết bị đầu cuối. Không được thêm vào các #bình luận của người Viking về mã - nó có nghĩa là tiêu đề trong Markdown. Hãy luôn kiểm tra xem trước bài viết của bạn trước khi gửi nó.
Melebius
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.