Tại sao CLI vẫn là “vua” khi quản trị mạng trên Fedora?
Sau hơn 2 năm dùng Fedora làm máy chính, mình cực kỳ thích sự ổn định của nó. Nhưng hãy thành thật: giao diện GNOME dù đẹp đến đâu cũng trở nên vô dụng khi bạn đang SSH vào một server từ xa. Lúc này, nắm vững nmcli và nmtui không còn là tùy chọn, mà là yêu cầu bắt buộc để sinh tồn.
Fedora hiện đại đã chuyển dịch hoàn toàn sang lưu trữ cấu hình tại /etc/NetworkManager/system-connections/ dưới định dạng .nmconnection. Việc chỉnh sửa thủ công các file này thường gây lỗi nếu bạn quên nạp lại cấu hình. Sử dụng công cụ dòng lệnh giúp bạn thay đổi thiết lập chính xác và áp dụng ngay lập tức mà không cần khởi động lại máy.
Phân biệt Device và Connection: Đừng nhầm lẫn!
Trước khi gõ lệnh, bạn cần phân biệt rõ hai khái niệm này để tránh cấu hình sai đối tượng:
- Device (Thiết bị): Đây là phần cứng thực tế như card LAN
enp3s0hoặc card Wifiwlp2s0. - Connection (Kết nối): Là “hồ sơ” thiết lập (IP, DNS, Gateway). Một card mạng có thể có nhiều hồ sơ (ví dụ: một cái cho ở nhà, một cái cho công ty), nhưng tại một thời điểm chỉ có một hồ sơ được kích hoạt.
1. nmtui: Giải pháp cho người ngại nhớ lệnh
Nếu bạn thấy các tham số của nmcli quá rắc rối, nmtui (Network Manager Text User Interface) là sự lựa chọn tuyệt vời. Nó cung cấp giao diện đồ họa giả lập ngay trong cửa sổ Terminal.
sudo nmtui
Công cụ này giúp bạn gán IP tĩnh hoặc đổi Hostname chỉ trong vài giây thông qua phím mũi tên và Enter. Nó đặc biệt hữu ích khi bạn cần thao tác nhanh mà không muốn tra cứu tài liệu.
2. Cấu hình IP tĩnh chuyên nghiệp với nmcli
Giả sử bạn cần gán IP tĩnh cho card enp1s0 để làm Web Server. Thay vì loay hoay với GUI, hãy thực hiện chuỗi lệnh chuẩn xác sau:
# Kiểm tra tên kết nối đang hoạt động
nmcli connection show
# Thiết lập IP 192.168.1.100, Gateway và DNS
nmcli con mod "Wired connection 1" ipv4.addresses 192.168.1.100/24
nmcli con mod "Wired connection 1" ipv4.gateway 192.168.1.1
nmcli con mod "Wired connection 1" ipv4.dns "8.8.8.8, 1.1.1.1"
nmcli con mod "Wired connection 1" ipv4.method manual
# Kích hoạt thay đổi
nmcli con up "Wired connection 1"
Ngay khi chuyển sang manual, NetworkManager sẽ ưu tiên thông số bạn vừa nhập và bỏ qua DHCP. Đây là cách nhanh nhất để cố định thực thể mạng trong hệ thống nội bộ.
3. Triển khai Network Bonding: Tăng băng thông và dự phòng
Trong môi trường doanh nghiệp, mất mạng 1 giây cũng có thể gây thiệt hại lớn. Mình thường gộp hai card mạng 1Gbps thành một cổng Bond 2Gbps hoặc chạy chế độ dự phòng (active-backup).
Khởi tạo Interface Bond master
nmcli con add type bond con-name bond0 ifname bond0 bond.options "mode=active-backup"
Gán các card vật lý (Slave) vào Bond
nmcli con add type ethernet slave-type bond con-name bond0-port1 ifname eth0 master bond0
nmcli con add type ethernet slave-type bond con-name bond0-port2 ifname eth1 master bond0
Sau khi kích hoạt bằng nmcli con up bond0, bạn có thể kiểm tra trạng thái tại /proc/net/bonding/bond0. Nếu một sợi cáp bị rút ra, hệ thống sẽ chuyển sang sợi còn lại trong chưa đầy 100ms, đảm bảo dịch vụ không bị gián đoạn.
4. Quản lý VPN: Không chỉ là giao diện đồ họa
Fedora hỗ trợ WireGuard và OpenVPN rất tốt qua CLI. Điều này cực kỳ tiện lợi khi bạn muốn VPN tự động kết nối ngay khi server khởi động.
Import cấu hình OpenVPN nhanh chóng
sudo nmcli connection import type openvpn file /path/to/office_vpn.ovpn
nmcli con up office_vpn
Thiết lập WireGuard
Với WireGuard, bạn có thể tạo kết nối trực tiếp:
nmcli connection add type wireguard con-name wg-work ifname wg0 autoconnect yes
Dùng lệnh nmcli connection edit wg-work để tinh chỉnh Private Key và Peer. Cách làm này giúp bạn quản lý bảng định tuyến (routing table) tập trung, tránh xung đột IP giữa mạng nhà và mạng công ty.
Xử lý sự cố khi mạng “biến mất”
Khi cấu hình xong mà vẫn không ping thấy mạng, đừng hoảng loạn. Hãy kiểm tra trạng thái thiết bị trước:
nmcli device status
Nếu bạn lỡ tay sửa file cấu hình bằng vim, hãy ép NetworkManager nhận diện lại file mới bằng lệnh:
sudo nmcli connection reload
sudo nmcli connection load /etc/NetworkManager/system-connections/my-office.nmconnection
Để soi lỗi chi tiết, hãy theo dõi log thời gian thực: journalctl -u NetworkManager -f. Mọi thông báo về việc từ chối IP hoặc sai pass Wifi đều nằm ở đây.
Lời kết
Sử dụng thành thạo nmcli giúp bạn chuyên nghiệp hóa quy trình làm việc trên Fedora. Thay vì tốn thời gian click chuột, vài dòng lệnh script hóa sẽ giúp bạn triển khai hạ tầng mạng nhanh và chính xác hơn. Hãy thử tắt GUI và quản lý mạng hoàn toàn bằng CLI trong tuần tới, bạn sẽ thấy sự khác biệt về năng suất.

