Cách thiết lập IP tĩnh trên Ubuntu Server 18.04


29

Tôi đã thấy một số người nói rằng tập tin để đặt ip tĩnh vẫn còn /etc/network/interfaces

Và tôi đã thấy những người khác nói rằng vào ngày 18.04, giờ nó đã diễn ra /etc/netplan(điều mà mọi người có vẻ không hài lòng)

Tôi đã thử đặt cái này:

version: 2
  renderer: networkd
  ethernets:
    eth0:
      dhcp4: no
      dhcp6: no
      addresses: [192.168.1.9/24]
      gateway4: 192.168.1.1
      nameservers:
        addresses: [192.168.1.1, 8.8.8.8, 8.8.4.4]

Trong tôi /etc/netplan/50-cloud-init.yamlvà đang làm sudo netplan applynhưng điều đó chỉ giết chết kết nối máy chủ với internet.


Nó là máy tính để bàn hay máy chủ?
user68186

Đây có phải là bản cài đặt hoặc nâng cấp 18.04 mới từ phiên bản khác không?
WinEunuuchs2Unix

Xin lỗi tôi nên nói điều này trong văn bản, đây là bản cài đặt mới của máy chủ 18.04.
trận chung kết ngày 20

Giải pháp đơn giản nhất đối với tôi là, chỉ định một địa chỉ IPv4 tĩnh ngay trong khi cài đặt (cùng với mạng con, cổng, v.v.). Chỉ cần điền vào một số trường thuật sĩ, không làm rối với các tệp cấu hình.
Uwe Keim

Bạn cũng có thể làm điều này trên các bộ định tuyến. Các bước là tự giải thích trong cấu hình bộ định tuyến.
Nhân viên EODCraft

Câu trả lời:


13

Điều này được đặt một hướng dẫn IP tĩnh trong Ubuntu-Server 18.04

$ sudo nano /etc/netplan/50-cloud-init.yaml

Sau đó thay thế cấu hình của bạn, ví dụ, các dòng sau:

# This file describes the network interfaces available on your system
# For more information, see netplan(5).
network:
  version: 2
  renderer: networkd
  ethernets:
    ens160:
     dhcp4: no
     addresses: [192.168.1.137/24]
     gateway4: 192.168.1.1
     nameservers:
       addresses: [8.8.8.8,8.8.4.4]

Áp dụng các thay đổi:

$ sudo netplan apply

Trong trường hợp bạn gặp phải một số vấn đề thực thi:

$ sudo netplan --debug apply

[ LƯU Ý ]:

  • /24 tương đương với 255.255.255.0
  • ens160 là tên ethernet của bạn, bạn có thể lấy nó bằng cách sử dụng $ ifconfig
  • Cấu hình giao diện mạng Ubuntu 16.04 và 14.04 có một phương pháp khác.
  • Tệp có định dạng YAML : Sử dụng dấu cách, không có tab.

không thể ping sau khi gán địa chỉ IP tĩnh
user2763554

OK .... Tôi có thể ping sau khi thực hiệnservice networking restart
user2763554

1
Tôi sẽ không làm điều đó vì tập tin đó được tạo bởi CloudInit
Ludovic Kuty

13

Tất cả các câu trả lời yêu cầu bạn chỉnh sửa trực tiếp /etc/netplan/50-cloud-init.yamlđều sai vì CloudInit được sử dụng và sẽ tạo tệp đó. Trong Ubuntu 18.04.2, nó được ghi rõ ràng bên trong tệp:

$ cat /etc/netplan/50-cloud-init.yaml
# This file is generated from information provided by
# the datasource.  Changes to it will not persist across an instance.
# To disable cloud-init's network configuration capabilities, write a file
# /etc/cloud/cloud.cfg.d/99-disable-network-config.cfg with the following:
# network: {config: disabled}
network:
    ethernets:
        eno1:
            dhcp4: true
    version: 2

Vì vậy, bạn không nên chỉnh sửa tệp đó mà là tệp bên dưới /etc/cloud/cloud.cfg.d/nếu bạn vẫn muốn sử dụng CloudInit.

Một cách khác là vô hiệu hóa hoàn toàn CloudInit trước bằng cách tạo một tệp trống /etc/cloud/cloud-init.disabled(xem https://cloudinit.readthedocs.io/en/latest/topics/boot.html ) và sau đó các câu trả lời khác đều ổn. Trong Ubuntu 18.04.2, tôi đã phải sử dụng dpkg-reconfigure cloud-initđể cho phép nó tính đến tệp /etc/cloud/cloud-init.disabled. Tôi nghĩ rằng điều này là một chút lạ.

Tôi đề nghị bạn đổi tên tệp (không phải tên đúng vì 50-cloud-init.yamlchúng tôi nghĩ rằng nó vẫn sử dụng CloudInit).

Sau đó, bạn có thể kết thúc với một tên tệp /etc/netplan/01-netcfg.yamlcó chứa cấu hình bên dưới. Lưu ý việc sử dụng networkdtrình kết xuất thay NetworkManagervì vì cấu hình nằm trên máy chủ.

network:
  version: 2
  renderer: networkd
  ethernets:
    eno1:
      dhcp4: no
      addresses: [192.168.1.246/24]
      gateway4: 192.168.1.1
      nameservers:
         addresses: [192.168.1.1]

2
Nó hoạt động rất tốt. Đây phải là câu trả lời tốt nhất. 50-cloud-init.yaml như đã nêu không nên sửa đổi.
Di tích

2
Nếu vẫn sử dụng CloudInit, bạn cần thực hiện sudo cloud-init clean -rđể có thay đổi, theo câu trả lời của veperr (ít nhất là đối với tôi trên Ubuntu Server 18.04.3).
Stuart Rossiter

1
... cộng với rendererdòng không còn hợp lệ nữa (và bị thiếu trong phiên bản cơ sở của tệp bạn chỉnh sửa).
Stuart Rossiter

6

Ubuntu 18.04 hiện sử dụng Netplan để định cấu hình các giao diện mạng, do đó, cấu hình phải được thực hiện trong tệp /etc/netplan/50-cloud-init.yaml, tài liệu khuyên không nên lộn xộn nữa với tệp cũ /etc/network/interfaces. Tôi đã sử dụng cấu hình này với máy ảo Ubuntu Server của tôi và nó hoạt động cho đến nay, chỉ cần đảm bảo thông tin là chính xác; các optional: truethiết lập được cho là tăng tốc thời gian khởi động bằng cách không xác minh nếu giao diện được kết nối hay không, đây là mặc định, cũng không có nhu cầu giá trị khai báo không được sử dụng, ví dụ DHCP, nếu họ vắng mặt họ đang thực hiện như là người khuyết tật, cũng là Trình kết xuất mặc định trong Ubuntu Server là networkddo đó không cần phải khai báo. Lấy thông tin từ bài viết của bạn, nó sẽ như thế này:

network:
    ethernets:
        eht0:
            addresses:
            - 192.168.1.9/24
            gateway4: 192.168.1.1
            nameservers:
                addresses: [192.168.1.1, 8.8.8.8, 8.8.4.4]
            optional: true
    version: 2

Khi bạn lưu các tập tin, chạy sudo netplan --debug applycác debugthông tin cờ chí sản lượng hơn và có thể giúp đỡ để phát hiện bất kỳ lỗi nào. Kiểm tra cáp ethernet, nếu trong ảo xem lại cấu hình VM. Nếu sử dụng mạng WLAN, tôi đã đọc được rằng việc cài đặt khó khăn hơn một chút nhưng tôi chưa thiết lập máy được kết nối với WiFi với phiên bản máy chủ này.

Nếu bạn muốn biết thêm thông tin về Netplan có một trang web, nó có một số ví dụ cấu hình cơ bản.

https://netplan.io/


5

Tệp cấu hình ở định dạng YAML : Không sử dụng TAB khi định cấu hình tệp. Nó chỉ hoạt động với SPACE .

Đây là vấn đề của tôi.


4

Tôi đã tìm thấy một cách khác bằng cách sử dụng cloud-init.

  1. Chỉnh sửa tệp /etc/cloud/cloud.cfg.d/50-curtin-networking.cfg- nội dung có vẻ giống như trong / etc / netplan.
  2. làm sạch, khởi động lại và khởi tạo lại cloud-initbằng lệnh này:

    sudo cloud-init clean -r
    
  3. Đó là nó! Hệ thống của bạn sẽ khởi động lại, cloud-initsẽ khởi tạo lại và nhận thay đổi /etc/cloud/cloud.cfg.d/50-curtin-networking.cfgvà áp dụng chúng /etc/netplan/50-cloud-init.yamlvà tất cả sẽ ổn. Xác nhận với ifconfig.


0

Đây là cài đặt làm cho nó hoạt động.

$sudo nano /etc/netplan/50-cloud-init.yaml

network:
   ethernets:
     eth0:          
     addresses:
     - 192.168.1.9/24
     dhcp: false
     gateway4: 192.168.1.1
     nameservers:
        addresses:
        - 192.168.1.1
        - 8.8.8.8
        - 8.8.4.4
        search: []
  version: 2  

$sudo netplan apply

khởi động lại máy chủ

thay đổi eth0 thành bộ chuyển đổi của bạn, tìm ra bộ chuyển đổi của bạn bằng cách sử dụng ifconfig.


0

Để tìm giao diện ethernet có sẵn, hãy sử dụng ip link show

Sau đó chỉnh sửa tệp 50-cloud-init.yaml bằng cách sử dụng $sudo nano /etc/netplan/50-cloud-init.yaml

Thêm cấu hình cho các giao diện có sẵn như eth0: và eth1:

network:
   ethernets:
     eth0:          
     addresses:
     - 192.168.1.9/24
     dhcp: false
     gateway4: 192.168.1.1
     nameservers:
        addresses:
        - 192.168.1.1
        - 8.8.8.8
        - 8.8.4.4
        search: []
     eth0:
     addresses:
     - 192.168.1.9/24
     dhcp: false
  version: 2  

Sau đó sử dụng lệnh $sudo netplan applyđể áp dụng các thay đổi.


0

Cách thiết lập IP tĩnh trên Ubuntu Server 18.04

Sau đó chỉnh sửa tệp 50-cloud-init.yaml bằng cách sử dụng$sudo vim /etc/netplan/50-cloud-init.yaml


network:
  ethernets:
    eno1:
        addresses:
        - 10.0.1.10/24
        dhcp4: false
        gateway4: 10.0.1.1
        nameservers:
            addresses:
            - 10.0.1.2
            search: []
version: 2

Áp dụng các thay đổi:

$ sudo netplan apply


Tôi sẽ không làm điều đó vì tệp đó được tạo bởi CloudInit.
Ludovic Kuty

Tại sao oh tại sao mọi hướng dẫn để thiết lập IP tĩnh vào ngày 18.04 lại bảo tôi chỉnh sửa tệp yaml nói rằng đó là tệp được tạo động sẽ không tồn tại? Một trò đùa độc ác khác từ các nhà phát triển Ubuntu nghĩ rằng mặc định phá vỡ mọi thứ là ổn ...
Bigtexun

0

Cấu hình mạng trong 18.04 được quản lý thông qua netplan và được định cấu hình với cloud-init. Để thay đổi cấu hình mạng của bạn chỉnh sửa 50-curtin-networking.cfgtệp trong /etc/cloud/cloud.cfg.d/. Nếu tập tin này không tồn tại thì tạo nó.

Tìm tên giao diện của bạn

ip address show

Chỉnh sửa / tạo tệp cấu hình mạng đám mây-init

sudo nano /etc/cloud/cloud.cfg.d/50-curtin-networking.cfg

Để đặt địa chỉ IP tĩnh, hãy sử dụng khóa địa chỉ, lấy danh sách (IPv4 hoặc IPv6), địa chỉ cùng với độ dài tiền tố mạng con (ví dụ / 24). Thông tin cổng và DNS cũng có thể được cung cấp:

network:
  version: 2
  ethernets:
    eth0:
      addresses:
        - 192.168.1.9/24
      gateway4: 192.168.1.1
      nameservers:
          addresses: [192.168.1.1, 8.8.8.8, 8.8.4.4]

Bạn có thể tìm thấy nhiều tùy chọn cấu hình hơn tại https://netplan.io/examples

Tải lại cấu hình đám mây-init. Điều này sẽ khởi động lại máy chủ của bạn.

sudo cloud-init clean -r
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.