Kiến thức cơ bản về Linux - Thiết lập IP tĩnh trên Ubuntu

theanh

Administrator
Nhân viên
Hướng dẫn này giải thích cách thiết lập địa chỉ IP tĩnh trên hệ thống Ubuntu từ dòng lệnh. Hướng dẫn này bao gồm cấu hình mạng cho tất cả các phiên bản Ubuntu hiện tại và bao gồm hướng dẫn cấu hình địa chỉ IP tĩnh, thiết lập tên máy chủ và cấu hình phân giải tên.

Cấu hình mạng trên Ubuntu 22.04, Ubuntu 20.04 và Ubuntu 18.04​

Cấu hình mạng trong Ubuntu được thực hiện bằng một công cụ có tên là netplan. Công cụ này thay thế tệp /etc/network/interfaces truyền thống.

Cấu hình Địa chỉ IP Tĩnh bằng Netplan trên Ubuntu​

Sau đây là các bước để cấu hình địa chỉ IP tĩnh bằng Netplan. Các tệp cấu hình Netplan nằm trong thư mục /etc/netplan/. Tệp cấu hình mặc định là /etc/netplan/01-netcfg.yaml.

Mở tệp cấu hình mạng bằng trình chỉnh sửa. Tên tệp cấu hình netplan khác nhau tùy thuộc vào phiên bản Ubuntu.

Ubuntu 22.04 và Ubuntu 20.04:
Mã:
sudo nano /etc/netplan/00-installer-config.yaml
Ubuntu 18.04:
Mã:
sudo nano /etc/netplan/01-netcfg.yaml
Cú pháp cấu hình được viết bằng ngôn ngữ lập trình Python (định dạng .yaml), vì vậy việc thụt lề giữa các dòng rất quan trọng!

Nội dung của tệp giống nhau trên Ubuntu 22.04 - 18.04.

Sau đây là ví dụ về địa chỉ IPv4 tĩnh 192.168.1.100 trên giao diện mạng đầu tiên ens33 và IP cổng 192.168.1.1. Máy chủ sẽ sử dụng máy chủ DNS miễn phí của Google 8.8.8.88.8.4.4 để phân giải tên.
Mã:
# This file describes the network interfaces available on your system
# For more information, see netplan(5).
network:
 version: 2
 renderer: networkd
 ethernets:
 ens33:
 dhcp4: no
 dhcp6: no
 addresses: [192.168.1.100/24]
 gateway4: 192.168.1.1
 nameservers:
 addresses: [8.8.8.8,8.8.4.4]
Hoặc, như Ảnh chụp màn hình từ máy chủ Ubuntu:


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22347%22%3E%3C/svg%3E


Có thể thêm địa chỉ IPv6 vào dòng addresses, phân cách bằng dấu phẩy. Ví dụ:
Mã:
# This file describes the network interfaces available on your system
# For more information, see netplan(5).
network:
 version: 2
 renderer: networkd
 ethernets:
 ens33:
 dhcp4: no
 dhcp6: no
 addresses: [192.168.1.100/24, '2001:1::1/64']
 gateway4: 192.168.1.1
 nameservers:
 addresses: [8.8.8.8,8.8.4.4]
Bạn phải đặt địa chỉ IPv6 trong dấu ngoặc đơn. Nếu không, bạn sẽ nhận được lỗi cú pháp.

Để áp dụng các thay đổi, hãy chạy lệnh sau:
Mã:
sudo netplan apply
Hoặc sử dụng lệnh này với lệnh --debug để có được một số kết quả đầu ra hữu ích nếu việc phân tích cú pháp tệp cấu hình netplan thành công.
Mã:
sudo netplan --debug apply

Cấu hình địa chỉ DHCP bằng Netplan​

Đây là cấu hình để lấy cấu hình mạng cho IPv4 và IPv6 từ máy chủ DHCP.
Mã:
# This file describes the network interfaces available on your system
# For more information, see netplan(5).
network:
 version: 2
 renderer: networkd
 ethernets:
 ens33:
 dhcp4: yes
 dhcp6: yes
Để áp dụng các thay đổi, hãy chạy:
Mã:
sudo netplan apply

Nhiều tùy chọn cấu hình Netplan hơn​

Netplan là một hệ thống cấu hình mới phức tạp cấu hình mạng card, thiết bị ảo, VLAN và cầu nối trong Ubuntu 18.04. Xem trang hướng dẫn để biết thêm ví dụ và giải thích sâu hơn về cú pháp.

Cấu hình mạng trênUbuntu 12.04 - 17.04 (bao gồm Ubuntu 16.04 LTS)​

Bước 1: Cấu hình giao diện mạng​

Trong bước này, bạn sẽ cấu hình thủ công giao diện mạng của mình bằng cách chỉnh sửa các tệp sau bằng trình soạn thảo văn bản ưa thích của bạn (nano gedit vi). Đối với ví dụ này, tôi đang sử dụng trình soạn thảo "nano". Bạn có thể chỉnh sửa tệp thích hợp bằng cách nhập lệnh sau vào thiết bị đầu cuối:

Bạn có thể sao chép và dán trực tiếp từ dòng này.
Mã:
sudo nano /etc/network/interfaces
Nhập mật khẩu gốc của bạn, sau khi trình soạn thảo ưa thích của bạn mở tệp, bạn có thể thấy mật khẩu này trên các phiên bản Ubuntu cũ hơn:
Mã:
auto lo eth0
iface lo inet loopback
iface eth0 inet dynamic
Hệ thống Ubuntu với systemd (như Ubuntu 16.04 và các phiên bản mới hơn), giao diện mạng được đặt tên là ens33 thay vì eth0 và từ 'dynamic' đã được thay thế bằng 'dhcp'.

Cấu hình trong đó địa chỉ IP được DHCP tự động gán sẽ trông như thế này:
Mã:
# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).

source /etc/network/interfaces.d/*

# The loopback network interface
auto lo
iface lo inet loopback

# The primary network interface
auto ens33
iface ens33 inet dhcp
Các card mạng được cấu hình tĩnh sẽ có một phần như thế này trên Ubuntu cũ hơn phiên bản:
Mã:
auto lo eth0
iface lo inet loopback
iface eth0 inet static address xxx.xxx.xxx.xxx(enter your ip here) netmask xxx.xxx.xxx.xxx gateway xxx.xxx.xxx.xxx(enter gateway ip here,usually the address of the router)
Đây là một ví dụ cho bản phát hành Ubuntu cũ hơn:
Mã:
auto lo eth0
iface lo inet loopback
iface eth0 inet static	address 192.168.1.100	netmask 255.255.255.0	gateway 192.168.1.1
Và đây là một ví dụ cho Ubuntu 16.04 và mới hơn:
Mã:
# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).

source /etc/network/interfaces.d/*

# The loopback network interface
auto lo
iface lo inet loopback

# test

# The primary network interface
auto ens33
iface ens33 inet static
 address 192.168.1.100
 netmask 255.255.255.0
 network 192.168.1.0
 broadcast 192.168.1.255
 gateway 192.168.1.1
 dns-nameservers 8.8.8.8 8.8.4.4
Và đây là tệp cấu hình mạng hoàn chỉnh từ hệ thống Ubuntu 16.04.


ubuntu-network-config-interfaces.png



Nếu bạn sử dụng trình soạn thảo "nano" để chỉnh sửa tệp cấu hình, hãy nhập Ctrl+x để lưu các thay đổi.

Lưu bộ đệm đã sửa đổi (TRẢ LỜI "Không" SẼ PHÁ HỦY CÁC THAY ĐỔI) ?

<---Nhập "y"

Tên tệp cần ghi: interfaces

<---ENTER

Bước 2: Cấu hình máy chủ DNS​

Những thay đổi trong /etc/resolv.conf chỉ được yêu cầu trên các Hệ thống có Ubuntu < 14.04, đối với các phiên bản Ubuntu mới hơn, máy chủ tên được cấu hình trong tệp /etc/network/interfaces hoặc tệp cấu hình netplan.

a) Ubuntu 20.04

Mở tệp cấu hình netplan bằng Trình chỉnh sửa. Tôi sẽ sử dụng trình chỉnh sửa nano trong ví dụ này:
Mã:
sudo nano /etc/netplan/00-installer-config.yaml
Tôi đã đánh dấu đậm các địa chỉ IP của máy chủ DNS:
Mã:
# This file describes the network interfaces available on your system
# For more information, see netplan(5).
network:
 version: 2
 renderer: networkd
 ethernets:
 ens33:
 dhcp4: no
 dhcp6: no
 addresses: [192.168.1.100/24]
 gateway4: 192.168.1.1
 nameservers:
 addresses: [[B]8.8.8.8,8.8.4.4[/b]]
b) Ubuntu 18.04

Mở tệp cấu hình netplan bằng nano biên tập viên:
Mã:
sudo nano /etc/netplan/01-netcfg.yaml
Tôi đã đánh dấu in đậm các địa chỉ IP của máy chủ DNS:
Mã:
# This file describes the network interfaces available on your system
# For more information, see netplan(5).
network:
 version: 2
 renderer: networkd
 ethernets:
 ens33:
 dhcp4: no
 dhcp6: no
 addresses: [192.168.1.100/24]
 gateway4: 192.168.1.1
 nameservers:
 addresses: [[B]8.8.8.8,8.8.4.4[/b]]
c) Ubuntu phiên bản 14.04 và 16.04

Mở lại tệp /etc/network/interfaces và thêm một dòng dns-nameservers 8.8.8.8 ngay sau dòng gateway.
Mã:
sudo nano /etc/network/interfaces
Mã:
auto lo
iface lo inet loopback
iface ens33 inet static address xxx.xxx.xxx.xxx(enter your ip here) netmask xxx.xxx.xxx.xxx gateway xxx.xxx.xxx.xxx(enter gateway ip here,usually the address of the router) dns-nameservers 8.8.8.8
Máy chủ tên 8.8.8.8 và 8.8.4.4 do Google cung cấp để sử dụng công khai, do đó bạn có thể sử dụng chúng trong cấu hình mạng của mình.

Nếu bạn sử dụng Trình soạn thảo "nano", nhập Ctrl+x để lưu thay đổi.

Lưu vùng đệm đã sửa đổi (TRẢ LỜI "Không" SẼ PHÁ HỦY CÁC THAY ĐỔI) ?

<---Nhập "y"

Tên tệp cần ghi: interfaces

<---ENTER

d) Phiên bản Ubuntu < 14.04

Trong bước này, bạn sẽ cấu hình thủ công tệp cấu hình DNS của mình.
Mã:
sudo nano /etc/resolv.conf
Sau khi trình soạn thảo mở tệp, bạn muốn nhập thông tin sau...
Mã:
nameserver xxx.xxx.xxx.xxx(enter your dns server ip)
nameserver xxx.xxx.xxx.xxx(enter your alt dns server ip)
Nếu bạn sử dụng trình soạn thảo "nano", hãy nhập Ctrl+x để lưu các thay đổi.

Lưu bộ đệm đã sửa đổi (TRẢ LỜI "Không" SẼ PHÁ HỦY CÁC THAY ĐỔI) ?

<---Nhập "y"

Tên tệp cần ghi: resolv.conf

<---ENTER

Sau đây là một ví dụ:
Mã:
nameserver 8.8.8.8
nameserver 8.8.4.4

Bước 3: Khởi động lại mạng​

Khởi động lại giao diện mạng của bạn theo cách thủ công với các thiết lập mới.

Đối với Ubuntu 20.04 và 18.04, hãy sử dụng lệnh netplan để áp dụng các thay đổi và khởi động lại mạng. Lệnh là:
Mã:
sudo netplan apply[B][/b]
Đối với Ubuntu phiên bản 14.04 và 16.04, chúng tôi sử dụng systemctl thay thế:
Mã:
systemctl restart ifup@eth0
Tại thời điểm này, bạn có thể kiểm tra xem các thiết lập có đúng:
Mã:
ifconfig
Nếu mọi thứ đều đúng, bạn sẽ nhận được kết quả này.
Mã:
eth0Linkencap:EthernetdirecciónHW00:33:27:46:2v:34
Direc.inet:192.168.1.101Difus.:0.0.0.0Másc:255.255.255.0
...[B][/b]
Đối với Ubuntu < 14.04 sử dụng tập lệnh khởi tạo mạng:
Mã:
sudo /etc/init.d/networking restart
Điều này sẽ trả về kết quả trông giống như sau:
Mã:
*Reconfiguring network interfaces… [OK]

Cấu hình Tên máy chủ​

Tên máy chủ của Máy chủ Ubuntu hoặc Máy tính để bàn đang được cấu hình trong các tệp /etc/hostname/etc/hosts. Các tệp /etc/hostname đặt tên máy chủ hệ thống thực tế trong khi /etc/hosts được sử dụng để phân giải tên cục bộ.

Trong ví dụ này, tôi sẽ đổi tên máy chủ của hệ thống thành obelix.example.com.

Trước tiên, hãy chỉnh sửa tệp /etc/hostname
Mã:
sudo nano /etc/hostname
Tệp hostname chỉ chứa phần cục bộ của tên máy chủ. Phần cục bộ ở đây là "obelix". Thay đổi nội dung của tệp /etc/hostname thành:
Mã:
obelix
và lưu tệp. Tệp tên máy chủ trông như thế nào trong nano sau khi chỉnh sửa:


ubuntu-hostname.png



Sau đó mở tệp /etc/hosts bằng trình chỉnh sửa:
Mã:
sudo nano /etc/hosts
và thay đổi dòng bắt đầu bằng địa chỉ IP của hệ thống như này:
Mã:
192.168.1.100 obelix.example.com obelix
Đây là ảnh chụp màn hình của tệp /etc/hosts.


etc-hosts.png



Định dạng như sau:

[Địa chỉ IP] [tên máy chủ đầy đủ bao gồm tên miền] [phần cục bộ của tên máy chủ]

Cuối cùng, khởi động lại hệ thống để áp dụng thay đổi tên máy chủ.
 
Back
Bên trên