Cấu hình địa chỉ IP tĩnh trong Linux

https://blogd.net/linux/cau-hinh-dia-chi-ip-tinh-trong-linux/

Bài viết này giới thiệu các bạn về cách cấu hình IP tĩnh trong hệ điều hành Linux.

Để cấu hình địa chỉ IP tĩnh trong hệ điều hành Linux chúng ta phải chỉnh sửa một số tập tin cấu hình network, tùy vào bản phân phối Linux mà chúng ta đang dùng, chúng ta sẽ có cách chỉnh địa chỉ IP khác nhau:

  • Đối với bản phân phối CentOS, RHEL, Fedora, CloudLinux chúng ta sẽ chỉnh sửa tập tin cấu hình network: /etc/sysconfig/network-scripts/ifcfg-aaa (trong đó aaa là tên interface)

  • Đối với bản phân phối Debian, Ubuntu, LinuxMint, AlpineLinux chúng ta sẽ chỉnh sửa tập tin cấu hình network: /etc/network/interfaces

  • Đối với bản phân phối Arch Linux chúng ta xem cách cấu hình tại đây

Ví dụ: Chúng ta muốn cấu hình địa chỉ IP theo các thông số sau:

IP Address: 192.168.1.10
Subnetmask: 255.255.255.0
Default Gateway: 192.168.1.1
DNS 1: 8.8.8.8
DNS 2: 8.8.4.4

1. Đối với bản phân phối CentOS, RHEL, Fedora, CloudLinux

👉 Bước 1: Chúng ta sẽ chỉnh sửa file /etc/sysconfig/network để thiết lập hostname và default gateway.

NETWORKING=yes
HOSTNAME=ngocdang.local
GATEWAY=192.168.1.10

👉 Bước 2: Tiếp theo chúng ta chỉnh sửa file /etc/sysconfig/network-scripts/ifcfg-eth0 để thiết lập IP, subnetmask cho eth0 (Bạn hãy chỉnh sửa địa chỉ MAC cho phù hợp với card mạng mà bạn đang cấu hình. Để xem địa chỉ MAC card mạng chúng ta dùng ip add show để xem địa chỉ MAC của card cần cấu hình)

TYPE=Ethernet
DEVICE=eth0
BOOTPROTO=none
HWADDR=fa:16:3e:e5:0b:94
ONBOOT=yes
IPADDR=192.168.1.10
NETMASK=255.255.255.0

Lưu ý: Trường "HWADDR" cũng có thể bỏ đi, để hệ thống tự nhận địa chỉ MAC

👉 Bước 3: Chỉnh sửa file /etc/resolv.conf để thiết lập các DNS Server dùng để phân giải:

nameserver 8.8.8.8
nameserver 8.8.4.4

👉 Bước 4: Sau khi cấu hình xong chúng ta phải chạy lệnh systemctl network restart để sử dụng cấu hình mới.

2. Đối với bản phân phối Debian, Ubuntu, LinuxMint, AlpineLinux

👉 Bước 1: Chúng ta sẽ chỉnh sửa /etc/hostname để thiết lập hostname

ngocdang.local

👉 Bước 2: Tiếp theo chúng ta chỉnh sửa /etc/network/interfaces để thiết lập IP/subnetmask/default gateway (ví dụ với eth0):

auto eth0
iface eth0 inet static
address 192.168.1.10
netmask 255.255.255.0
gateway 192.168.1.1

👉 Bước 3: Chỉnh sửa /etc/resolv.conf để thiết lập các DNS Server dùng để phân giải:

nameserver 8.8.8.8
nameserver 8.8.4.4

👉 Bước 4: Sau khi cấu hình xong chúng ta phải chạy lệnh /etc/init.d/networking restart để áp dụng cấu hình mới.

3. Đối với bản phân phối Arch Linux

3.1. Cấu hình địa chỉ IP tĩnh cho Arch Linux bằng systemctl

👉 Bước 1: Chúng ta sẽ chỉnh sửa /etc/hostname để thiết lập hostname

ngocdang.local

👉 Bước 2: Cấu hình Địa chỉ IP tĩnh bằng systemd

Systemd là trình quản lý hệ thống và dịch vụ cho các hệ điều hành Linux. Bây giờ chúng ta sẽ cấu hình địa chỉ IP tĩnh bằng systemd trong Arch Linux.

Tạo một tệp như sau:

vi /etc/systemd/network/ens33.network

Thay thế ens33 bằng tên card mạng của bạn. Thêm các dòng sau vào tệp:

Name=ens33
Address=192.168.1.10/24
Gateway=192.168.1.1
DNS=8.8.8.8
DNS=8.8.4.4

Chúng ta cần phải vô hiệu hóa netctl. Chúng ta chạy lệnh sau:

systemctl list-unit-files

Vô hiệu hóa tất cả những thứ liên quan đến netctl

systemctl disable netctl@ens33.service

Xóa gói netctl khỏi Arch Linux bằng lệnh:

pacman -Rns netctl

Dừng và vô hiệu hóa dịch vụ dhcp.

systemctl stop dhcpcd
systemctl disable dhcpcd

Sau đó, kích hoạt và bắt đầu dịch vụ systemd-networkd

systemctl enable systemd-networkd
systemctl start systemd-networkd

3.2. Cấu hình địa chỉ IP tĩnh cho Arch Linux bằng netctl

👉 Bước 1: Chúng ta sẽ chỉnh sửa /etc/hostname để thiết lập hostname

ngocdang.local

👉 Bước 2: Cấu hình Địa chỉ IP tĩnh bằng netctl

Netctl là một tiện ích được sử dụng để kiểm soát trạng thái của các dịch vụ systemd cho trình quản lý hồ sơ mạng. Các tệp cấu hình mạng mẫu sẽ được lưu trữ trong /etc/netctl/example/ trong Arch Linux.

Như trên hình liệt kê các tệp ethernet-static và ethernet-dhcp là tệp cấu hình Ethernet mẫu.

Đầu tiên chúng ta hãy tìm tên card mạng. Sử dụng lệnh sau: ip link

Tên card mạng của tôi là ens33. Chúng ta sao chép hồ sơ card mạng mẫu từ thư mục /etc/netctl/example/ vào thư mục /etc/netctl/ dùng cú pháp như sau:

cp /etc/netctl/examples/ethernet-static /etc/netctl/ens33

Chỉnh sửa tệp cấu hình mạng nhập địa chỉ IP, Netmask, Gateway và DNS server như sau:

Description='A basic static ethernet connection'
Interface=ens33
Connection=ethernet
IP=static
Address=('192.168.1.10/24')
Gateway=('192.168.1.1')
DNS=('8.8.8.8' '8.8.4.4')

Cho phép card mạng bắt đầu tự động khi khởi động lại bằng lệnh:

netctl enable ens33

Cuối cùng, bắt đầu hồ sơ mạng như dưới đây.

netctl start ens33

Dừng và vô hiệu hóa dịch vụ dhcp.

systemctl stop dhcpcd
systemctl disable dhcpcd

Last updated