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