Ubuntu 18.04: chuyển về / etc / mạng / giao diện


44

Bắt đầu từ khoảng Ubuntu 18.04, các nhà phát triển Ubuntu đã ngừng sử dụng phương pháp cổ điển /etc/init.d/networking/etc/network/interfacesphương pháp cấu hình mạng và chuyển sang một số thứ được gọi là netplan. Điều này đã khiến rất nhiều người rất tức giận và bị coi là một động thái xấu. Có thể loại bỏ netplanvà sử dụng đúng /etc/network/interfacesphương pháp để cấu hình mạng không?


2
Tại sao không chỉ cấu hình với netplan? Trong hầu hết các tình huống, nó khá đơn giản.
ớt555

3
@ chili555 Có thể là tôi phải chấp nhận thay đổi và học một cái gì đó mới. Tôi chỉ muốn biết liệu nó có tầm thường để trở lại như cũ không. Giống như systemd, tôi hiểu rằng sự thay đổi đột ngột đôi khi có thể có lợi và được chấp nhận. Tuy nhiên, đây chắc chắn không phải là một trong những thời điểm mà sự thay đổi là cần thiết hoặc có lợi.
jdgregson

1
Nó không tầm thường và không dễ dàng đảo ngược trong trường hợp có lỗi. Nếu bạn muốn sống nguy hiểm, tôi sẽ vui lòng đề xuất câu trả lời. Mặt khác, chúng ta có thể cấu hình netplan trong vài phút. Bạn thích cái nào hơn Tái bút- Tôi không giả vờ hiểu đầy đủ về cách netplan, loại trừ /etc/network/interfaces, phù hợp với bức tranh hệ thống lớn hơn. Tất cả những gì tôi có thể làm là tin tưởng rằng những người giới thiệu thay đổi sẽ biết tại sao nó phù hợp hơn.
ớt555

1
Hoặc, chỉ cần cấu hình đúng netplan và được thực hiện.
ớt555

1
@ chili555 Netplan không hỗ trợ giao diện mạng ảo. Xem tại đây: Askubfox.com/questions/990825/virtual-interface-in-netplan
user3751385

Câu trả lời:


43

Quy trình sau đây hoạt động cho Ubuntu 18.04 (Bionic Beaver)

I. Cài đặt lại gói ifupdown :

# apt-get update
# apt-get install ifupdown

II. Định cấu hình tệp / etc / mạng / giao diện của bạn với các khổ cấu hình, chẳng hạn như:

source /etc/network/interfaces.d/*

# The loopback network interface
auto lo
iface lo inet loopback

allow-hotplug enp0s3
auto enp0s3
iface enp0s3 inet static
  address 192.168.1.133
  netmask 255.255.255.0
  broadcast 192.168.1.255
  gateway 192.168.1.1
  # Only relevant if you make use of RESOLVCONF(8)
  # or similar...
  dns-nameservers 1.1.1.1 1.0.0.1

III. Làm cho cấu hình hiệu quả (không cần khởi động lại):

# ifdown --force enp0s3 lo && ifup -a
# systemctl unmask networking
# systemctl enable networking
# systemctl restart networking

IV. Vô hiệu hóa và loại bỏ các dịch vụ không mong muốn:

# systemctl stop systemd-networkd.socket systemd-networkd \
networkd-dispatcher systemd-networkd-wait-online
# systemctl disable systemd-networkd.socket systemd-networkd \
networkd-dispatcher systemd-networkd-wait-online
# systemctl mask systemd-networkd.socket systemd-networkd \
networkd-dispatcher systemd-networkd-wait-online
# apt-get --assume-yes purge nplan netplan.io

Sau đó, bạn đã hoàn tất.

Lưu ý: Tất nhiên, bạn PHẢI điều chỉnh các giá trị theo hệ thống của bạn (mạng, tên giao diện ...).

V. Trình giải quyết DNS

Bởi vì Ubuntu Bionic Beaver (18,04) làm cho việc sử dụng sơ khai phân giải DNS theo quy định của SYSTEMD-RESOLVED.SERVICE (8), bạn NÊN cũng thêm DNS để tiếp xúc vào file /etc/systemd/resolved.conf. Ví dụ:

....
DNS=1.1.1.1 1.0.0.1
....

và sau đó khởi động lại dịch vụ được giải quyết systemd sau khi thực hiện:

# systemctl restart systemd-resolved

Các mục DNS trong tệp ifupdown INTERFACES (5), như được hiển thị ở trên, chỉ có liên quan nếu bạn sử dụng RESOLVCONF (8) hoặc tương tự.


9
Chà, f *** họ. Chỉ apt-get installkhi bạn không có cấu hình mạng. Thật là một ý tưởng tuyệt vời, Canonical.
Velkan

1
@Velkan Bạn luôn có thể định cấu hình trước mạng của mình bằng netplan sau đó chuyển về ifupdown sau;) Nhưng tôi đã đồng ý với bạn. Bằng cách nào đó kinh điển đưa ra quyết định xấu. Chẳng hạn, họ phá vỡ các phần mềm dựa trên ifupdown cho cấu hình mạng (không có nhà cung cấp nào cho netplan). Đây là trường hợp đối với phần mềm bảng điều khiển của chúng tôi (serie ổn định) nơi chúng tôi không muốn thêm nhà cung cấp cấu hình mạng mới ...
Nuxwin

3
@StephenBoston Tôi hoàn toàn đồng ý với bạn. Tuy nhiên, ngay cả khi Canonical cố gắng đi trước bằng cách giới thiệu công nghệ mới, nó có thể làm điều này theo cách ít xâm lấn hơn. Ý tôi là, sự lựa chọn nên để lại cho người dùng cuối. Đối với các máy trạm, sự thay đổi từ ifupdown sang netplan chắc chắn không phải là vấn đề lớn nhưng khi bạn phải xử lý các máy chủ Ubuntu, đó là một câu chuyện khác bởi vì hầu hết các phần mềm ổn định không nhất thiết phải cung cấp bộ điều hợp ... Đó là câu chuyện tương tự cho systemd. Tôi phải đối phó với cả Debian và Ubuntu mỗi ngày. Vấn đề với Ubuntu là họ không quan tâm nhiều đến khả năng tương thích ngược.
Nuxwin

1
Hiệu chỉnh nhỏ: # systemctl unmak networking-># systemctl unmask networking
Santosh

1
Ngoài ra, nếu bạn sử dụng dns-domaindns-searchtrong tệp giao diện, bạn nên định cấu hình Domainstham số trong tệp giải quyết. Tôi nghĩ sao? Dù sao, công việc tuyệt vời kết hợp tất cả lại với nhau ở đây, có lẽ đã giúp tôi tiết kiệm rất nhiều thời gian :)
OttoEisen 16/12/18

10

Nhóm Netplan đã đăng câu trả lời chính thức về Câu hỏi thường gặp của họ tại đây :

Làm thế nào để quay trở lại ifupdown

...

Trên một hệ thống đang chạy, netplan có thể được gỡ bỏ bằng cách cài đặt ifupdown và cấu hình / etc / network / giao diện thủ công như người dùng đã làm trước đây.

Khi cài đặt, người dùng có thể chọn sử dụng ifupdown bằng cách đặt trước netcfg / do_not_use_netplan = true. Điều này được thực hiện bằng cách thêm dòng preseed vào dòng lệnh khi khởi động phương tiện cài đặt (tức là tại menu boot boot cài đặt, nhấn F6, nhập 'e' và thêm vào dòng lệnh).

Xem câu trả lời của Nuxwin để được hướng dẫn đầy đủ hơn.


9

Netplan và yaml, tốt nhất, mong manh trong môi trường chỉ dành cho máy chủ (lỗi thụt lề sẽ khiến bạn phải trả giá). Các giao diện đã tha thứ đủ để nó quản lý các cài đặt mạng trên máy chủ khá dễ dàng.
Netplan giới thiệu các lớp mới. Nhưng vấn đề thực sự là U18 phá vỡ ifupdown và không hoàn thành công việc với NetPlan. Nếu bạn quay lại / etc / mạng / giao diện bằng cách cài đặt lại ifupdown, việc quản lý DNS không còn hoạt động trong tệp giao diện. Bất kỳ mục dns-nameervers đều bị bỏ qua. Thay vào đó, dns được đặt trong /etc/resolv.conf. Nhưng bạn không thể chỉnh sửa tệp đó vì nó được ghi lại mỗi khi máy được khởi động. WTF? Netplan được thiết kế để được quản lý bởi GUI, vì vậy những người trong chúng tôi chỉ ở trong trại chỉ có một hệ thống mỏng manh mà chúng tôi phải nhón chân lên. Ubuntu không tốt!
tại sao không cho chúng tôi một cách để chuyển hướng các cài đặt trong / etc / mạng / giao diện vào netplan khi khởi động để giúp chúng tôi trong khi bạn hoàn thành netplan?


1
Làm thế nào để trả lời câu hỏi này?
Pierre.Vriens

@Dan Desjardins Xem câu trả lời được chấp nhận liên quan đến vấn đề trình phân giải DNS .. Về cơ bản, các mục nhập DNS mà bạn đưa vào tệp ifupdown INTERFACES (5) chỉ có liên quan khi bạn sử dụng độ phân giải (8) hoặc tương tự. Đối với trình phân giải sơ khai DNS như được cung cấp bởi HỆ THỐNG HỆ THỐNG-GIẢI QUYẾT.SERVICE (8, bạn cần thêm DNS của mình vào tệp /etc/systemd/resolve.conf. Việc này sẽ khiến chúng bền bỉ. Một giải pháp khác là vô hiệu hóa HỆ THỐNG-GIẢI QUYẾT. DỊCH VỤ (8) dịch vụ và cài đặt / cài đặt độ phân giải (8). Với hy vọng rằng tôi đủ rõ ràng
Nuxwin

2

Tại sao không chỉ cấu hình với netplan?

Chà, vì nó được cấu hình trong 18.04-Desktop, nó là một dòng duy nhất bàn giao quyền điều khiển cho tất cả các giao diện cho NetworkManager.

Mặc dù điều đó có thể phù hợp với 95% người dùng, hãy nhớ rằng NetworkManager chỉ chạy khi bạn đã đăng nhập vào một phiên.

Nếu bạn muốn máy của mình hoạt động như một máy chủ / máy tính để bàn, ví dụ: bắt đầu phân phát tệp cho các máy cục bộ, hoạt động như máy chủ VNP, v.v ... hoặc bất cứ thứ gì "ưa thích" trước khi bất kỳ ai đăng nhập, chỉ bằng thực tế đơn giản trên, bạn sẽ gặp rắc rối với cách cấu hình trong 18.04-Desktop tiêu chuẩn.

Tất nhiên, giải pháp thay thế sẽ là sử dụng cấu hình máy chủ-Netplan, theo như tôi đã đọc (không phải tự kiểm tra), thay vào đó sẽ kiểm soát hệ thống-systemd. Trong trường hợp này, bạn nên tìm hiểu cách systemd thực hiện mọi thứ thay thế cho init System V cũ.

Nếu bạn đi theo con đường này, bạn vẫn phải thay đổi yaml netplan, vì trên phiên bản máy tính để bàn, điều khiển được trao cho NetworkManager.


3
Ít nhất một lý do tồn tại: Netplan không hỗ trợ openvswitch.
Kamgroup

5
netplan không hỗ trợ bí danh IP (kiểu eth0: 0). Tôi không thể tin làm thế nào những thứ đó có thể tìm được vào máy chủ Ubuntu!
Hamid Fadishei

Bởi vì netplanthư mục của tôi trống rỗng!
dsgdfg

Dịch vụ NetworkManager bắt đầu khá sớm và không yêu cầu phiên hoặc người dùng đã đăng nhập.
thaller

1

Điều quan trọng là biết rằng đó cloud.initlà chương trình kiểm soát thực sự.
Điều đó đang được nói rằng dòng trong netplantệp cấu hình "tùy chọn: true" là bắt buộc.
Biết rằng làm cho nó dễ dàng.

Tôi chỉ cần gỡ bỏ 01-network-manager-all.yamlvà sao chép nó vào /root/save/. Sau đó đặt một cấu hình tốt đã biết thay cho nó , 50-cloud-init.yaml: nội dung của nó tuân theo:

network:
  version: 2
  renderer: networkd
  ethernets:
    eports:
      match: 
        name: enp*
        optional: true
  bonds:
    bond0:
      interfaces: [eports]
      addresses: [192.168.2.5/24]
      gateway4: 192.168.2.1
      nameservers:
        addresses: [127.0.0.1, 8.8.4.4]          
      parameters:
        mode: 0          
        mii-monitor-interval: 100

Sau đó khởi động lại và nó sẽ hoạt động tốt.

Cấu hình tốt được biết đến đến từ Cấu hình mạng 802.3ad ngoại quan bằng cách sử dụng netplan trên Ubuntu 18.04 .


1
Câu hỏi ở đây là làm thế nào để chuyển trở lại ifupdown;) Trong tương lai, bạn nên cố gắng trả lời các câu hỏi mà không làm ô nhiễm chúng, thậm chí không phải lúc nào cũng dễ dàng bám vào chủ đề ban đầu;)
Nuxwin

0

Theo câu trả lời này, giải pháp là xóa tất cả các tệp .yaml hoạt động: Ubuntu 17.10 vô hiệu hóa netplan

Tôi sẽ không loại bỏ bất cứ điều gì mà không sao lưu. Chúng ta có thể làm điều đó một cách dễ dàng bằng cách di chuyển các tập tin sang một bên. Đầu tiên, xác định vị trí các tệp:

sudo updatedb
locate netplan | grep yaml

Trên hệ thống 18.04 của tôi, có vẻ như tệp hoạt động duy nhất là /etc/netplan/01-network-manager-all.yaml. Chúng ta hãy di chuyển nó:

mkdir ~/netplan
sudo mv /etc/netplan/01-network-manager-all.yaml  /home/user/netplan

... nơi người dùng là tên người dùng của bạn.

Bây giờ hãy kiểm tra để chắc chắn rằng tập tin đã thực sự biến mất:

ls /etc/netplan

Bây giờ thực hiện bổ sung của bạn vào / etc / mạng / giao diện theo yêu cầu.

Khởi động lại.

Có cải thiện gì không?

Chú thích: Quá trình chính xác để làm điều này rất khó tìm. Chúng tôi có thể cần phải tinh chỉnh một chút khi chúng tôi đi.


Tôi sẽ phải thử điều đó và xem nó diễn ra như thế nào. Câu hỏi duy nhất khác là làm thế nào để áp dụng các thay đổi mà không cần khởi động lại. Trong quá khứ bạn có thể sử dụng ifup/ ifdown, /etc/init.d/networking restart, service networking restart, và các phương pháp systemd, giống như systemctl restart networking, systemctl restart Network-Manager.servicevv, nhưng không ai trong số này là có thể cho tôi sau khi cài đặt Ubuntu 18,04.
jdgregson

Kết quả của: sudo ip link set eth0 downtiếp theo là gì: sudo ifup -v eth0Tất nhiên, thay thế giao diện của bạn cho eth0 huyền thoại.
ớt555

ifupdownkhông được cài đặt theo mặc định, vì vậy khi bạn gọi ifupnó chỉ cho bạn biết cách cài đặt nó. Tuy nhiên, sudo ip link set eth0 downtiếp theo là sudo ip link set eth0 uptắt và bật lại giao diện.
jdgregson

Tuyệt vời! Vậy bạn đã giải quyết xong chưa?
ớt555

Cẩn thận, không phải tất cả các tệp * .yaml đều liên quan đến netplan, vì vậy chỉ xóa những tệp đó trong các thư mục liên quan đến netplan!
JanC
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.