Cách add IP Linux Local trên VPS chi tiết

Tôi từng gặp không ít trường hợp khách hàng chia sẻ: thêm IP local cho VPS xong thì mất sạch sau khi reboot. Thực ra, cách add IP Linux local trên VPS không hề phức tạp – chỉ là bạn phải làm đúng từ đầu. IP local không chỉ để “cho đủ”, mà còn giúp tối ưu hiệu suất, chia tách dịch vụ nội bộ, bảo mật cao hơn và tiết kiệm băng thông rõ rệt.

Trong bài viết này, tôi sẽ hướng dẫn bạn từng bước – từ lệnh cơ bản, cấu hình vĩnh viễn đến cách xử lý các tình huống lỗi thực tế. Tất cả đều dựa trên kinh nghiệm vận hành VPS cho doanh nghiệp tại ZoneCloud và tài liệu chuẩn từ Linux.

IP local là gì và vì sao cần thêm IP trên VPS Linux

IP local, hay còn gọi là địa chỉ IP cục bộ, là một dải IP chỉ hoạt động trong phạm vi mạng nội bộ. Các dải thường gặp bao gồm 192.168.x.x, 10.x.x.x hoặc 172.16.x.x – theo chuẩn RFC1918 của IETF (RFC1918).

Trên thực tế, IP local giúp các dịch vụ nội bộ trong cùng VPS hoặc giữa các VPS giao tiếp với nhau mà không cần truy cập Internet. Điều này không chỉ tiết kiệm băng thông mà còn tăng độ bảo mật – bởi các IP này không thể bị truy cập từ bên ngoài.

Minh họa hướng dẫn cách add IP local trên VPS Linux – tăng cường bảo mật, tách biệt mạng nội bộ hiệu quả. Ảnh: ZoneCloud.
Minh họa hướng dẫn cách add IP local trên VPS Linux – tăng cường bảo mật, tách biệt mạng nội bộ hiệu quả. Ảnh: ZoneCloud.

Tôi từng triển khai cụm ảo hóa nội bộ gồm 6 VPS trên cùng một máy chủ vật lý tại ZoneCloud. Mỗi VPS được gán một IP local riêng, dùng để đồng bộ dữ liệu qua rsync và giám sát hệ thống bằng Prometheus. Nhờ IP nội bộ, toàn bộ luồng dữ liệu chạy với tốc độ gần như LAN, ổn định và tách biệt khỏi internet công cộng.

Việc thêm IP local trên VPS Linux cũng giúp chia nhỏ workload: mỗi dịch vụ (web, DB, API) có thể bind vào một IP khác nhau. Điều này đặc biệt hữu ích khi bạn triển khai firewall layer-4 hoặc dùng các container (Docker, LXC) với phân vùng mạng riêng.

Tóm lại, dù bạn dùng VPS để chạy ứng dụng web, xử lý dữ liệu hay đơn giản chỉ là test môi trường, có thêm một hoặc nhiều IP local sẽ giúp hệ thống linh hoạt và an toàn hơn.

Cách thêm IP tạm thời trên VPS (Linux mọi distro)

Khi bạn cần nhanh chóng thêm một địa chỉ IP local để test dịch vụ hoặc thiết lập mạng nội bộ tạm thời, cách đơn giản và nhanh nhất là dùng lệnh ip addr add. Câu lệnh này khả dụng trên hầu hết các bản phân phối Linux hiện đại, từ Ubuntu, Debian đến CentOS và AlmaLinux – miễn là hệ thống có cài sẵn bộ công cụ iproute2.

Ví dụ, để thêm IP 192.168.100.10 với subnet mask /24 vào card mạng eth0, tôi dùng lệnh:

ip addr add 192.168.100.10/24 dev eth0

Ngay sau đó, bạn có thể xác nhận IP đã được gán thành công bằng lệnh:

ip a show dev eth0

Hoặc nếu bạn quen dùng lệnh cũ:

ifconfig eth0

Tuy nhiên, có một điều quan trọng mà rất nhiều người mới hay bỏ qua: IP được thêm theo cách này sẽ biến mất sau khi VPS khởi động lại. Đây là đặc tính mặc định của hệ thống mạng Linux – IP được gán “tạm thời” vào kernel networking stack chứ không được lưu trong cấu hình vĩnh viễn.

Chính vì vậy, tôi thường khuyên khách hàng chỉ nên dùng lệnh này khi cần cấu hình nhanh để test nội bộ. Với những hệ thống cần IP hoạt động ổn định sau mỗi lần reboot, bạn nên áp dụng các phương pháp cấu hình vĩnh viễn ở phần tiếp theo.

Nếu bạn muốn thử nghiệm đa IP trên cùng interface, bạn có thể thêm IP alias tạm thời như sau:

ip addr add 192.168.100.11/24 dev eth0 label eth0:1

Lưu ý: label eth0:1 không tạo ra interface thực sự, nhưng là một cách để hệ thống gán thêm địa chỉ phụ vào interface hiện tại.

Tham khảo tài liệu gốc từ Linux Foundation: ip-address(8) – iproute2 manual

Cách thêm IP vĩnh viễn (giữ sau reboot)

Thêm IP local tạm thời là chưa đủ nếu bạn cần hệ thống ổn định dài hạn. Để IP tồn tại sau mỗi lần reboot, bạn cần chỉnh sửa file cấu hình mạng theo từng hệ điều hành. Dưới đây là 3 trường hợp phổ biến tôi thường gặp nhất khi triển khai cho khách hàng tại ZoneCloud.

Ubuntu/Debian dùng interfaces cổ điển

Với các phiên bản Ubuntu cũ hoặc Debian dùng hệ thống /etc/network/interfaces, bạn có thể chỉnh như sau:

nano /etc/network/interfaces

Thêm đoạn sau vào cuối file:

auto eth0
iface eth0 inet static
  address 192.168.100.10
  netmask 255.255.255.0

Lưu lại, sau đó khởi động lại dịch vụ mạng:

systemctl restart networking

Nếu thấy IP được giữ lại sau reboot, bạn đã thành công. Đây là cách tôi hay dùng cho các hệ Debian-based server chạy app backend nội bộ.

Ubuntu 18.04+ hoặc Debian mới dùng Netplan

Từ Ubuntu 18.04 trở đi, hệ thống cấu hình mạng chuyển sang dùng Netplan. Bạn cần sửa file YAML như sau:

nano /etc/netplan/01-netcfg.yaml

Ví dụ nội dung:

network:
  version: 2
  ethernets:
    eth0:
      dhcp4: no
      addresses:
        - 192.168.100.10/24

Lưu lại, sau đó áp dụng:

netplan apply

Đừng quên kiểm tra cú pháp YAML (thụt đầu dòng rất quan trọng). Netplan dễ dùng, nhưng nếu có nhiều IP hoặc alias thì nên tách từng dòng trong danh sách addresses.

CentOS/RHEL và các hệ họ Red Hat

Trên CentOS 7 hoặc AlmaLinux/Rocky Linux, bạn cần tạo file cấu hình trong thư mục /etc/sysconfig/network-scripts hoặc /etc/NetworkManager/system-connections nếu đang dùng NetworkManager.

Ví dụ: thêm file mới

vi /etc/sysconfig/network-scripts/ifcfg-eth0-range0

Nội dung:

IPADDR_START=192.168.100.11
IPADDR_END=192.168.100.20
CLONENUM_START=0

Điều này sẽ tạo các alias interface từ eth0:0 đến eth0:9. Mỗi alias đại diện cho một IP khác nhau.

Khởi động lại mạng để áp dụng:

systemctl restart network

Nếu bạn dùng NetworkManager, tôi khuyên dùng công cụ nmcli hoặc cấu hình file tương ứng trong /etc/NetworkManager/system-connections – dễ kiểm soát hơn khi có nhiều interface.

Tham khảo thêm: RedHat – Adding multiple IP addresses to one NIC

Thêm nhiều IP cùng lúc (range IP hoặc alias interface)

Trong nhiều trường hợp, bạn không chỉ cần một IP local, mà có thể cần tới hàng chục – thậm chí hàng trăm địa chỉ IP nội bộ. Điều này rất phổ biến khi tôi triển khai cụm container nội bộ hoặc hệ thống reverse proxy trên môi trường VPS lớn tại ZoneCloud.

Thay vì thêm thủ công từng IP bằng lệnh ip addr add, bạn nên cấu hình theo dạng dải (range) hoặc sử dụng alias interface. Dưới đây là hai cách mà tôi thường áp dụng:

1. Cấu hình range IP trên CentOS/RHEL

Đây là phương pháp tôi dùng khi khách cần gán dải IP từ 192.168.100.50 đến 192.168.100.70 lên cùng một card mạng:

vi /etc/sysconfig/network-scripts/ifcfg-eth0-range0

Thêm nội dung sau:

IPADDR_START=192.168.100.50
IPADDR_END=192.168.100.70
CLONENUM_START=0

Sau khi lưu file, bạn khởi động lại dịch vụ mạng:

systemctl restart network

Kết quả là hệ thống sẽ tự động tạo các interface dạng eth0:0, eth0:1, … cho đến eth0:20, mỗi alias tương ứng với một IP.

2. Dùng script gán nhiều IP với iproute2

Trên các distro không hỗ trợ file ifcfg-range (như Ubuntu), tôi dùng script shell để gán hàng loạt IP local nhanh chóng:

for i in $(seq 50 70); do
  ip addr add 192.168.100.$i/24 dev eth0
done

Lưu ý: Cách này chỉ có hiệu lực tạm thời – IP sẽ mất sau khi VPS reboot. Nếu muốn giữ lại vĩnh viễn, bạn cần đưa đoạn script này vào file /etc/rc.local (nếu còn được hỗ trợ) hoặc tạo systemd service khởi động cùng hệ thống.

3. Alias interface – cách cũ nhưng hữu dụng

Các alias interface như eth0:1, eth0:2 từng rất phổ biến. Dù ngày nay không còn được khuyến nghị dùng trong môi trường hiện đại, nhưng với các hệ thống cũ hoặc script kế thừa, bạn vẫn có thể sử dụng:

ip addr add 192.168.100.51/24 dev eth0 label eth0:1

Bạn có thể kiểm tra các alias đã tạo bằng:

ip -o -4 addr show dev eth0

Gợi ý: Nếu bạn cần tạo các alias này vĩnh viễn trên Ubuntu, hãy cấu hình trong Netplan hoặc tạo nhiều mục addresses: trong YAML.

Thêm tài liệu tham khảo chính thức từ Red Hat: Configure multiple IP addresses on a single NIC

Cách xóa IP đã thêm

Khi bạn cần thu hồi một địa chỉ IP local đã gán, có hai trường hợp xảy ra: IP được thêm tạm thời bằng lệnh hoặc IP đã được cấu hình vĩnh viễn trong hệ thống. Tôi sẽ hướng dẫn bạn xử lý cả hai.

Xóa IP tạm thời

Nếu bạn đã thêm IP bằng lệnh ip addr add, bạn có thể gỡ bỏ bằng cú pháp tương tự:

ip addr del 192.168.100.10/24 dev eth0

Chỉ cần đảm bảo subnet mask chính xác (ví dụ: /24), nếu không hệ thống sẽ báo lỗi “Cannot find device with address”. Đây là lỗi tôi từng gặp khá thường xuyên khi cấu hình sai CIDR prefix.

Xóa IP vĩnh viễn

Nếu IP được thêm qua file cấu hình (ví dụ: Netplan, /etc/network/interfaces, hay ifcfg-range), bạn chỉ cần tìm và xóa dòng IP tương ứng.

  • Ubuntu dùng Netplan: Mở file /etc/netplan/*.yaml và xóa IP trong danh sách addresses:, sau đó chạy netplan apply.
  • Debian dùng interfaces: Xóa dòng address trong /etc/network/interfaces, rồi systemctl restart networking.
  • CentOS dùng range: Xóa file /etc/sysconfig/network-scripts/ifcfg-eth0-range0 hoặc chỉnh lại IPADDR_START / END nếu chỉ muốn giảm bớt số lượng IP.

Sau khi chỉnh sửa, luôn nhớ restart dịch vụ mạng để áp dụng thay đổi. Đối với Netplan, dùng netplan apply. Với CentOS/RHEL, dùng:

systemctl restart network

Nếu dùng NetworkManager, bạn có thể cần chạy thêm lệnh:

nmcli connection reload

Một mẹo nhỏ tôi thường áp dụng là gắn chú thích # dynamic vào các IP tạm thời trong file cấu hình, giúp team dev dễ phân biệt và bảo trì sau này.

Các vấn đề thường gặp & cách khắc phục

Thêm IP local nghe có vẻ đơn giản, nhưng nếu bạn từng quản trị hệ thống lâu dài, bạn sẽ biết mọi thứ có thể “vỡ trận” chỉ vì một lỗi cấu hình nhỏ. Dưới đây là những lỗi phổ biến tôi từng gặp khi triển khai VPS tại ZoneCloud – kèm cách khắc phục trực tiếp.

1. IP biến mất sau khi reboot

Lý do phổ biến nhất: bạn chỉ thêm IP bằng lệnh ip addr add mà không cấu hình vĩnh viễn.

Khắc phục: Áp dụng cấu hình trong /etc/network/interfaces, Netplan YAML hoặc ifcfg-*. Đừng quên systemctl enable network nếu dịch vụ chưa tự khởi động.

2. Netplan ghi đè cấu hình cũ

Nhiều bạn chỉnh IP trong /etc/network/interfaces nhưng không có tác dụng – do hệ thống dùng Netplan.

Khắc phục: Kiểm tra Netplan bằng ls /etc/netplan/. Nếu có file YAML, hãy chỉnh ở đó và chạy netplan apply.

3. NetworkManager tự ghi đè cấu hình

Trên CentOS/RHEL hoặc Ubuntu Desktop, NetworkManager có thể làm mất IP nếu bạn cấu hình bằng file mà NM không quản lý.

Khắc phục: Dùng nmcli hoặc chỉnh file trong /etc/NetworkManager/system-connections. Sau đó reload:

nmcli connection reload

4. Xung đột IP (conflict)

Thêm IP trùng với IP đã có trên hệ thống khác có thể gây lỗi mạng, mất kết nối, thậm chí tắt luôn interface.

Khắc phục: Dùng arping để kiểm tra trùng IP hoặc cài iputils-arping:

arping -I eth0 192.168.100.10

Nếu có phản hồi, IP đã được dùng ở đâu đó trong mạng.

5. Docker làm loạn IP local

Các container Docker sử dụng bridge network có thể chiếm các dải IP như 172.17.0.0/16, gây xung đột khi bạn add IP local cùng subnet.

Khắc phục: Đổi subnet Docker trong file /etc/docker/daemon.json:

{
  "bip": "172.30.0.1/16"
}

Sau đó restart Docker:

systemctl restart docker

6. ARP spoofing nội bộ

Nếu VPS đặt trong cùng datacenter với các máy khác (hoặc container không cô lập tốt), có thể bị giả mạo địa chỉ IP nội bộ.

Khắc phục: Dùng iptables hoặc nftables để giới hạn traffic theo MAC hoặc dải IP cụ thể.

iptables -A INPUT -s ! 192.168.100.0/24 -i eth0 -j DROP

Một vài mẹo nâng cao hiếm gặp nhưng hữu ích

Khi bạn đã quen thuộc với việc cấu hình IP local cơ bản, sẽ đến lúc cần đi xa hơn – đặc biệt khi vận hành hệ thống phức tạp, nhiều container hoặc máy ảo nội bộ. Dưới đây là những mẹo tôi thường áp dụng trong các dự án nâng cao tại ZoneCloud – dù không phổ biến, nhưng cực kỳ hữu ích.

1. Backup cấu hình mạng trước khi chỉnh

Trước khi bạn chỉnh bất kỳ file nào liên quan đến mạng, hãy sao lưu cấu hình cũ. Tôi từng gặp trường hợp chỉnh sai Netplan khiến VPS mất kết nối SSH – phải truy cập qua console để khôi phục.

cp /etc/netplan/01-netcfg.yaml /etc/netplan/backup.yaml

Với CentOS:

cp /etc/sysconfig/network-scripts/ifcfg-eth0 /root/ifcfg-eth0.bak

2. Ghi log alias IP tự động

Nếu bạn sử dụng alias interface hoặc nhiều IP local để theo dõi dịch vụ nội bộ, hãy log lại các IP đã gán bằng cron hoặc script log:

ip -o -4 addr show dev eth0 | awk '{print $4}' > /var/log/ip_alias.log

3. Tích hợp với Docker bridge và isolate subnet

Tôi thường phối hợp IP local với Docker bằng cách tạo custom bridge network, tách biệt hoàn toàn subnet giữa các nhóm dịch vụ:

docker network create \
  --subnet=192.168.50.0/24 \
  --gateway=192.168.50.1 \
  --driver=bridge \
  internal_net

Việc tách biệt IP nội bộ như vậy giúp giảm thiểu rủi ro bảo mật và tối ưu lưu lượng trong cụm container.

4. Hạn chế IP local bằng firewall

Nếu không cấu hình firewall cẩn thận, IP local có thể bị tấn công giả mạo từ container rogue hoặc user khác cùng máy chủ. Tôi luôn cấu hình iptables hạn chế rõ ràng như sau:

iptables -A INPUT -d 192.168.100.0/24 -i eth0 -j ACCEPT
iptables -A INPUT -s ! 192.168.100.0/24 -d 192.168.100.0/24 -j DROP

5. Sử dụng systemd-networkd để quản lý nâng cao

Với các hệ thống cần quản lý mạng bằng file đơn giản, tôi dùng systemd-networkd thay vì Netplan hoặc NetworkManager. Chỉ cần một file như sau:

[Match]
Name=eth0

[Network]
Address=192.168.100.10/24
Address=192.168.100.11/24
Gateway=192.168.100.1
DNS=8.8.8.8

Lưu tại /etc/systemd/network/10-eth0.network và khởi động:

systemctl enable systemd-networkd --now

Đây là cách tôi dùng cho các VPS dạng minimal không có Netplan, giúp tối ưu cấu hình mạng rất rõ ràng, dễ debug.

Câu hỏi thường gặp (FAQ)

  1. Làm sao để thêm IP local tạm thời trên VPS Linux?

    Bạn có thể dùng lệnh:
    ip addr add 192.168.x.x/24 dev eth0
    Lưu ý đây là IP tạm thời – sẽ mất sau khi reboot.

  2. Làm cách nào để IP local không bị mất sau khi VPS khởi động lại?

    Bạn cần cấu hình IP trong file hệ thống mạng phù hợp với OS: Netplan (Ubuntu 18.04+), /etc/network/interfaces (Debian cũ), hoặc ifcfg-* (CentOS/RHEL).

  3. Có thể thêm nhiều IP local cùng lúc không?

    Hoàn toàn được. Bạn có thể dùng file cấu hình dải IP như ifcfg-eth0-range0 hoặc script for loop với ip addr add để gán hàng loạt IP nội bộ.

  4. Xóa IP local đã thêm như thế nào?

    Dùng lệnh:
    ip addr del 192.168.x.x/24 dev eth0
    Với IP vĩnh viễn, hãy chỉnh lại file cấu hình mạng tương ứng và restart dịch vụ.

  5. Vì sao IP local không hoạt động dù đã thêm đúng?

    Có thể do Netplan chưa apply, NetworkManager ghi đè cấu hình, subnet bị trùng với Docker hoặc firewall chặn. Hãy kiểm tra lại từng thành phần và log hệ thống để xác định nguyên nhân.

Kết luận

Việc add IP Linux local trên VPS không chỉ đơn giản là gán thêm một dãy số vào card mạng. Đó là bước nền quan trọng để xây dựng một hệ thống nội bộ ổn định, bảo mật và linh hoạt hơn. Từ trải nghiệm triển khai thực tế tại ZoneCloud, tôi tin rằng việc hiểu rõ cấu trúc mạng của từng hệ điều hành – và biết cách xử lý các tình huống phát sinh – sẽ giúp bạn tránh được rất nhiều rủi ro khó lường.

Nếu bạn đang cần tư vấn giải pháp hạ tầng phù hợp cho hệ thống nội bộ, hay đơn giản chỉ cần một môi trường VPS linh hoạt, hiệu suất cao để thực hành, đừng ngần ngại liên hệ với ZoneCloud. Tôi và đội ngũ kỹ thuật luôn sẵn sàng hỗ trợ bạn từng bước – từ cấu hình mạng đến tối ưu vận hành thực tế.

5/5 - (120 bình chọn)
THÔNG TIN LIÊN HỆ
Cập nhật lần cuối lúc: 16:22 * 29/07/2025
Chia sẻ bài viết:
Picture of Võ Đỗ Khuê
Võ Đỗ Khuê
Tôi là Võ Đỗ Khuê, Co-founder của ZoneCloud, đam mê công nghệ và cam kết mang đến giải pháp lưu trữ Hosting/VPS/Server an toàn, hiệu quả cho doanh nghiệp. Với kinh nghiệm nhiều năm trong lĩnh vực hạ tầng số, tôi luôn hướng đến việc tối ưu hiệu suất và bảo mật, giúp khách hàng yên tâm phát triển.

Có thể bạn quan tâm

Kiểm tra inodes trên VPS

Cách kiểm tra inodes trên VPS và xử lý lỗi đầy inode hiệu quả

Trong quá trình vận hành máy chủ, tình trạng đầy inode là nguyên nhân phổ biến khiến VPS không thể tạo file mới dù vẫn còn dung lượng. Trong bài...

VPS đầy dung lượng

VPS đầy dung lượng – Nguyên nhân & 5 cách xử lý triệt để

ZoneCloud – Võ Đỗ Khuê chia sẻ cách xử lý khi VPS đầy dung lượng – một vấn đề phổ biến ảnh hưởng nghiêm trọng đến hiệu suất và tính...

Truy cập điện thoại bằng điện thoại Android

Cách truy cập VPS bằng điện thoại Android: Hướng dẫn chi tiết từ A đến Z

Bạn đang cần truy cập VPS gấp nhưng lại chỉ có chiếc điện thoại Android bên cạnh? Đừng lo! Với sự phát triển của công nghệ, bạn hoàn toàn có...