Làm cách nào để vô hiệu hóa systemd được giải quyết trong Ubuntu?


87

Làm cách nào tôi có thể tắt giải quyết systemd trong Ubuntu 17.04?

Vô hiệu hóa nó systemctl disablekhông hoạt động, dịch vụ dường như được khởi động lại (bởi Networkmanager?)


10
Giải quyết hệ thống không chỉ lớn, nó cũng phá vỡ cách thức hoạt động của độ phân giải dns bằng cách không phải lúc nào cũng cố gắng giải quyết theo thứ tự các máy chủ dns được chỉ định trong cấu hình máy khách. Khi một máy chủ không giải quyết được một tên miền, phần tiếp theo trong danh sách sẽ được chuyển lên trên cùng (Poettering gọi đó là 'bộ nhớ'). Xem chủ đề này để biết chi tiết.
LifeBoy

7
nó cũng bỏ qua các quy tắc iptables, đó là một ý tưởng tồi tệ.
Spongman

Câu trả lời:


150

Phương pháp này hoạt động trên Ubuntu phát hành 17.04 (Zesty), 17.10 (Artful), 18.04 (Bionic), 18.10 (Vũ trụ) và 19.04 (Vũ trường):

Vô hiệu hóa và dừng dịch vụ được giải quyết bởi systemd:

sudo systemctl disable systemd-resolved
sudo systemctl stop systemd-resolved

Sau đó đặt dòng sau vào [main]phần của bạn /etc/NetworkManager/NetworkManager.conf:

dns=default

Xóa liên kết tượng trưng /etc/resolv.conf

rm /etc/resolv.conf

Khởi động lại Trình quản lý mạng

sudo systemctl restart NetworkManager

Ngoài ra, hãy lưu ý rằng việc tắt hệ thống phân giải systemd có thể phá vỡ độ phân giải tên trong VPN đối với một số người dùng. Xem lỗi này trên launchpad (Cảm ơn, Vincent).


4
điều này dường như không hoạt động trên Ubuntu 17.04. Alsi, tập tin cấu hình là /etc/NetworkManager/NetworkManager.conf. Tên giải quyết phá vỡ khi tôi làm như trên. Đã giải quyết được systemd hút thời gian lớn, giờ đây, việc phân giải DNS DNS hoàn toàn không hoạt động đối với tôi. Tiến bộ lỗi có thể được tìm thấy ở đây: bugs.launchpad.net/ubuntu/+source/systemd/+bug/1624317
Vincent Gerris

5
Tôi nghĩ bạn nên thêm vào câu trả lời ở trên rằng "apt-get install dnsmasq" nên được thực hiện sau khi giải quyết systemd đã bị vô hiệu hóa.
LifeBoy

5
@LifeBoy Tôi không sử dụng dnsmasq. Tôi chỉ không sử dụng bất kỳ máy chủ tên địa phương nào, không thấy giá trị của nó.
Bastian Voigt

9
Đối với Ubuntu 18.04, tất cả những gì cần thiết là để chạy các lệnh sudo systemctl vô hiệu hóa systemd-yet.service và sudo service systemd-yet stop. Điều đó làm việc cho tôi.
Daniel Eagle

12
Cảm ơn bạn. SystemD đang hủy hoại Linux, biến nó từ một thứ đáng tin cậy và dễ hiểu thành thứ hoạt động thông qua phép thuật.
Forbesmyester

18

Gần đây tôi đã nâng cấp lên (k) Ubuntu 17.04 và tôi cũng tình cờ thấy sự thay đổi thành systemd.

Thiết lập của tôi khá điển hình Tôi nghĩ, trong đó tôi có một nhà cung cấp DNS trong HUB băng thông rộng của mình và đây là nguồn thông tin chính của tôi cho tất cả các thiết bị trên mạng của tôi (trong đó tôi có một vài).

Có một số nét đẹp trong systemd, nó không tệ lắm nhưng điều thực sự tồi tệ là tài liệu, sự thiếu giao tiếp từ nhóm Ubuntu và gung-ho "hãy thay đổi nó mặc dù nó phá vỡ tâm lý của mọi người".

Giải pháp cho tôi sau khi xé một ít tóc là chỉnh sửa /etc/systemd/resolve.conf:

[Resolve]
DNS=192.168.1.254   # <-- change to your router address
#FallbackDNS=8.8.8.8 8.8.4.4 2001:4860:4860::8888 2001:4860:4860::8844
Domains=lan         # <-- change to your localdomain name (maybe .local)
#LLMNR=yes  <-- I dabbled with this for a while but it doesn't matter
#DNSSEC=no
#Cache=yes
#DNSStubListener=udp

Sau khi không hiểu tại sao điều này sẽ không hoạt động, tôi đã hiểu ra rằng điều cần thiết là chuyển /etc/resolv.conf sang cái được cung cấp bởi systemd. Đây không phải là trường hợp trong một cài đặt ngoài hộp (vì những lý do mà tôi không biết).

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

Máy chủ DNS cục bộ sau đó không được sử dụng và tất cả các yêu cầu DNS được gửi đến HUB của tôi.

Tôi nghĩ rằng đây là một giải pháp tốt hơn nhiều so với việc cắt bỏ và đưa vào một số giải pháp khác vì systemd-decv giờ là mặc định trở đi.

Một vấn đề liên quan btw là /etc/nsswitch.conf bị biến đổi.

Nó nên đọc:

máy chủ: tập tin mdns4_minimal dns [NOTFOUND = return] giải quyết [! UNAVAIL = return] dns

Đây là một cấu hình khó hiểu vì [NOTFOUND = return] có nghĩa là quá trình xử lý kết thúc ở đó. Các mục sau nó sẽ không bao giờ được sử dụng.


1
Và sau đó tôi phải thay đổi địa chỉ bộ định tuyến trong cấu hình mỗi khi tôi kết nối với WIFI mới? U nghiêm trọng? -1
Bastian Voigt

Tôi không nhận ra bạn đang chuyển vùng với nó. Nếu bạn là, sau đó để lại các mục cấu hình nhận xét. Sau đó, bạn sẽ nhận được /etc/resolv.conf có nội dung: máy chủ tên 8.8.8.8 máy chủ tên
8.8.4.4

1
Tôi không nghĩ cần phải chỉnh sửa. Đã giải quyết nếu bạn thiết lập netplan chính xác. tức là, netplan ghi các giá trị chính xác vào tệp symlinked ... THÀNH CÔNG PS HỆ THỐNG!
g33kz0r

3

Nếu bạn gặp sự cố rò rỉ với VPN của mình và không thể tìm ra cách thiết lập systemd (như tôi), bạn có thể xóa nó theo cách được mô tả trong câu trả lời đầu tiên nhưng không thêm dns=defaultdòng vì nó sẽ kích hoạt máy chủ tên 127.0 .0.1. Để đặt bộ định tuyến là dns, hãy tạo tệp "đuôi" trong /etc/resolvconf/resolv.conf.d/ thư mục của bạn thêm dòngnameserser 192.168.1.1

làm gì ln -sf /var/run/resolved/resolv.conf /etc/resolv.confnếu bạn đã làm hỏng tập tin này


1
Có thật không? Đối với tôi nó hoạt động chính xác như được mô tả trong câu trả lời của tôi. Chắc chắn không sử dụng máy chủ tên 127.0.0.1. Tôi cũng nghĩ rằng sẽ không tiện khi mã hóa IP của máy chủ tên của bạn trong một tệp cấu hình. Ít nhất tôi chuyển đổi mạng wifi khá thường xuyên và mỗi wifi có một máy chủ tên khác nhau
Bastian Voigt

có 'mặc định' cho phép 127.0.0.1 là dns
Yvain
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.