23 ví dụ về lệnh IP trên Centos / Ubuntu / Debian / Fedora

Lệnh ip là một công cụ dòng lệnh mạng mới được sử dụng để gán địa chỉ IP cho một giao diện mạng hoặc cấu hình và cập nhật các biến mạng hữu ích trên hệ thống Linux. So với lệnh "ifconfig" trước đây, lệnh "ip" có tính năng và khả năng mạnh mẽ hơn.

Cấu hình địa chỉ IP tĩnh vĩnh viễn trên Linux

Để cấu hình một địa chỉ IP tĩnh vĩnh viễn trên Linux, bạn cần cập nhật hoặc chỉnh sửa tệp cấu hình mạng để gán một địa chỉ IP tĩnh cho hệ thống. Bạn phải là một người dùng super user và sử dụng lệnh su (chuyển đổi người dùng) từ cửa sổ terminal hoặc command prompt.

Cấu hình địa chỉ IP tĩnh trên hệ thống RHEL

Mở và chỉnh sửa tệp cấu hình mạng cho giao diện eth0 hoặc eth1 bằng trình soạn thảo văn bản yêu thích của bạn. Ví dụ, để gán địa chỉ IP cho giao diện eth0 trên các bản phân phối dựa trên RHEL, làm như sau:

# vi /etc/sysconfig/network-scripts/ifcfg-eth0     [On RHEL/CentOS/Fedora and Rocky Linux/AlmaLinux]

23 ví dụ về cách sử dụng lệnh IP trong hệ điều hành Linux

Cấu hình địa chỉ IP tĩnh trên hệ thống Debian

Để cấu hình địa chỉ IP tĩnh vĩnh viễn, bạn cần chỉnh sửa tệp cấu hình giao diện mạng trong /etc/network/interfaces như trên các bản phân phối dựa trên Debian. Sau khi nhập đầy đủ thông tin, khởi động lại dịch vụ mạng bằng lệnh sau:

$ sudo nano /etc/network/interfaces     [On Debian, Ubuntu and Mint]

23 ví dụ về cách sử dụng lệnh IP trong hệ điều hành Linux

Khởi động lại dịch vụ mạng để áp dụng cấu hình mới:

$ sudo systemctl restart networking

Cấu hình tạm thời địa chỉ IP tĩnh trên Linux. 

Đối với cấu hình mạng tạm thời, bạn có thể sử dụng lệnh ip để gán địa chỉ IP cho một giao diện cụ thể (eth2) ngay lập tức. 

# ip addr add 172.19.1.10/24 dev eth2
OR
$ sudo ip addr add 172.19.1.10/24 dev eth2

Lưu ý: Tất cả các cài đặt này sẽ bị mất sau khi khởi động lại hệ thống.

Hiển thị tất cả các giao diện mạng

Trong lệnh ip, đối tượng "link" đại diện cho giao diện mạng. Chúng ta có thể sử dụng lệnh "show" kèm theo đối tượng này để hiển thị tất cả các giao diện mạng. Để hiển thị tất cả các giao diện mạng, sử dụng lệnh sau:

$ ip link show

23 ví dụ về cách sử dụng lệnh IP trong hệ điều hành Linux

Đầu ra sẽ hiển thị chi tiết về các giao diện mạng, bao gồm tên giao diện, cờ, trạng thái, địa chỉ liên kết, địa chỉ phát sóng,...

Kiểm tra địa chỉ IP của một giao diện mạng cụ thể. 

Để lấy thông tin chi tiết về giao diện mạng cá nhân, bao gồm địa chỉ IP và địa chỉ MAC, sử dụng lệnh sau:

$ ip link show eth2

23 ví dụ về cách sử dụng lệnh IP trong hệ điều hành Linux

Cho đến nay, chúng ta đã sử dụng đối tượng "link" để hiển thị thông tin chi tiết về các giao diện mạng. Tuy nhiên, đối tượng này không hiển thị địa chỉ IP được liên kết với giao diện mạng. Để khắc phục giới hạn này, chúng ta có thể sử dụng đối tượng "addr" cùng với lệnh ip. Chi tiết hơn với ví dụ sau:

$ ip addr show

Để hiển thị địa chỉ IP của một giao diện mạng cụ thể, chỉ cần cung cấp tên giao diện mạng như một đối số cho lệnh. 

$ ip addr show eth2

Hiển thị địa chỉ IP trong đầu ra có màu sắc

Lệnh ip cung cấp thông tin chi tiết về các đối tượng mạng. Để tạo đầu ra có màu sắc để dễ nhìn, chúng ta có thể sử dụng tùy chọn --color của lệnh. Tùy chọn này sẽ làm nổi bật các chi tiết quan trọng bằng các màu sắc khác nhau. 

$ ip --color addr show eth2

23 ví dụ về cách sử dụng lệnh IP trong hệ điều hành Linux

Hiển thị địa chỉ IP trong định dạng JSON

Để thuận tiện cho việc phân tích đầu ra và tự động hóa, chúng ta có thể yêu cầu lệnh ip tạo ra đầu ra trong định dạng JSON. Để làm điều này, chúng ta sử dụng tùy chọn -j kết hợp với lệnh. Đầu ra sẽ được hiển thị dưới dạng JSON, giúp dễ dàng trích xuất thông tin theo cấu trúc đã định. 

$ ip -j addr show

23 ví dụ về cách sử dụng lệnh IP trong hệ điều hành Linux

Làm cho đầu ra JSON dễ đọc hơn

Mặc định, đầu ra JSON của lệnh ip là gọn nhẹ, nhưng không dễ đọc do thiếu thụt lề. Để làm cho đầu ra dễ đọc hơn bằng cách thụt lề, chúng ta có thể sử dụng tùy chọn -p. 

$ ip -j -p link show eth2

23 ví dụ về cách sử dụng lệnh IP trong hệ điều hành Linux

Điều này sẽ tạo ra đầu ra JSON với định dạng dễ đọc hơn, với thụt lề giữa các cấu trúc dữ liệu.

Cách xóa địa chỉ IP khỏi giao diện mạng

Trong ví dụ trước, chúng ta đã sử dụng lệnh con "add" để gán một địa chỉ IP. Tương tự, chúng ta có thể sử dụng lệnh con "del" để xóa một địa chỉ IP cụ thể. Lệnh sau sẽ xóa địa chỉ IP đã được gán khỏi giao diện cụ thể (eth2).

# ip addr del 172.19.1.10/24 dev eth2
OR
$ sudo ip addr del 172.19.1.10/24 dev eth2

Bây giờ, chúng ta hãy kiểm tra xem địa chỉ IP đã được xóa chưa.

$ ip -j -p addr show eth2

23 ví dụ về cách sử dụng lệnh IP trong hệ điều hành Linux

Cách kích hoạt giao diện mạng

Cờ "up" kèm theo tên giao diện (eth2) sẽ kích hoạt một giao diện mạng. Ví dụ, lệnh sau sẽ kích hoạt giao diện mạng eth2.

# ip link set eth2 up
OR
$ sudo ip link set dev eth2 up

Kiểm tra tình trạng cập nhật:

$ ip -j -p link show eth2 | grep operstate

23 ví dụ về cách sử dụng lệnh IP trong hệ điều hành Linux

Cách vô hiệu hóa giao diện mạng

Cờ "down" kèm theo tên giao diện (eth2) sẽ vô hiệu hóa một giao diện mạng. Ví dụ, lệnh sau sẽ vô hiệu hóa giao diện mạng eth2.

# ip link set eth2 down
OR
$ sudo ip link set eth2 down

Kiểm tra tình trạng của giao diện mạng:

$ ip -j -p link show eth2 | grep operstate

23 ví dụ về cách sử dụng lệnh IP trong hệ điều hành Linux

Cách xóa danh sách địa chỉ IP của giao diện mạng

Trong ví dụ trước, chúng ta đã thấy cách sử dụng lệnh con "del" để xóa một địa chỉ IP. Tuy nhiên, đôi khi chúng ta cần xóa tất cả các địa chỉ IP của một giao diện mạng cụ thể. Trong trường hợp đó, chúng ta có thể sử dụng lệnh con "flush". Trước tiên, sử dụng lệnh con "flush" để xóa tất cả các địa chỉ IP của giao diện mạng eth2. 

$ sudo ip addr flush eth2

Bây giờ, hãy kiểm tra xem tất cả các địa chỉ IP của giao diện mạng eth2 đã được xóa chưa.

$ ip -j -p addr show eth2

23 ví dụ về cách sử dụng lệnh IP trong hệ điều hành Linux

Trong đầu ra trên, trường "addr_info" hiển thị một mảng JSON trống. Điều này cho thấy không có địa chỉ IP nào được liên kết với giao diện mạng eth2.

Cách kiểm tra bảng định tuyến

Bảng định tuyến lưu trữ thông tin cần thiết để chuyển tiếp gói tin mạng đến đích đúng. Chúng ta có thể sử dụng đối tượng "route" của lệnh ip để hiển thị các quy tắc định tuyến. Hãy sử dụng lệnh dưới đây để liệt kê tất cả các quy tắc của bảng định tuyến. 

$ ip route show

23 ví dụ về cách sử dụng lệnh IP trong hệ điều hành Linux

Trong đầu ra trên, cột đầu tiên đại diện cho đích đến trong khi cột cuối cùng đại diện cho địa chỉ IP nguồn.

Cách thêm tuyến đường tĩnh mới

Tại sao bạn cần thêm các tuyến tĩnh hoặc tuyến thủ công, vì lưu lượng không được thông qua cổng mặc định? Chúng ta cần thêm các tuyến tĩnh để lưu lượng đi qua con đường tốt nhất để đến đích.

$ sudo ip route add 172.19.1.0/24 dev eth2 proto kernel scope link src 172.19.1.2

Bây giờ, hãy kiểm tra xem mục đã được thêm thành công hay chưa:

$ ip route show

23 ví dụ về cách sử dụng lệnh IP trong hệ điều hành Linux

Cách xóa tuyến tĩnh

Lệnh con del xóa một mục cụ thể khỏi bảng định tuyến. Ví dụ, lệnh dưới đây xóa mục của tuyến thiết bị eth2:

$ sudo ip route del 172.19.1.0/24

Bây giờ, hãy kiểm tra xem mục đã được xóa thành công hay chưa:

$ ip route show

23 ví dụ về cách sử dụng lệnh IP trong hệ điều hành Linux

Cách thêm tuyến tĩnh vĩnh viễn

Tất cả các tuyến trên sẽ bị mất sau khi khởi động lại hệ thống. Để thêm một tuyến tĩnh vĩnh viễn, chỉnh sửa tệp /etc/sysconfig/network-scripts/route-eth2 (chúng ta lưu tuyến tĩnh cho (eth2). Mặc định, tệp route-eth2 sẽ không tồn tại và cần được tạo ra.

Đặt tuyến tĩnh vĩnh viễn trong RHEL Systems

#vi /etc/sysconfig/network-scripts/route-eth2

và thêm các dòng sau đây và lưu và thoát.

172.19.1.0/24 via 172.19.1.2 dev eth2

Đặt tuyến tĩnh vĩnh viễn trong Debian Systems

Mở tệp /etc/network/interfaces và thêm các tuyến tĩnh bền vững vào cuối. Địa chỉ IP có thể khác nhau trong môi trường của bạn.

$ sudo vi /etc/network/interfaces

auto eth2
iface eth2 inet static
address 172.19.50.2
netmask 255.255.255.0
gateway 172.19.50.100
#########{Static Route}###########
up ip route add 172.19.1.0/24 via 172.19.1.2 dev eth2

Tiếp theo, khởi động lại dịch vụ mạng sau khi nhập tất cả các chi tiết bằng lệnh sau.

$ sudo systemctl restart networking

Cách thêm cổng mặc định

Trong mạng, cổng mặc định đóng vai trò quan trọng. Nó được sử dụng khi bảng định tuyến không chứa thông tin về đích. Mặc định, cổng mặc định có thể được chỉ định toàn cục hoặc cho các tệp cấu hình cụ thể của giao diện. Lợi ích của cổng mặc định là chúng ta có nhiều hơn một NIC trong hệ thống. Bạn có thể thêm cổng mặc định ngay lập tức như được hiển thị bên dưới.

Đầu tiên, hãy thêm một giao diện mạng eth0 làm cổng mặc định:

$ sudo ip route add default via 172.17.0.1

Bây giờ, hãy xác minh cài đặt cổng mặc định bằng lệnh sau:

$ ip route show

23 ví dụ về cách sử dụng lệnh IP trong hệ điều hành Linux

Xin lưu ý rằng chúng tôi đã thực hiện lệnh này trên một máy thử nghiệm. Hãy Cẩn thận khi sử dụng lệnh này trong môi trường sản xuất.

Cách xóa cổng mặc định

Chúng ta có thể sử dụng lệnh sau để xóa cổng mặc định:

$ sudo ip route del default

Bây giờ, hãy liệt kê bảng định tuyến để xác minh cổng mặc định đã bị xóa:

$ ip route show

23 ví dụ về cách sử dụng lệnh IP trong hệ điều hành Linux

Cách hiển thị bộ nhớ cache ARP

ARP là viết tắt của Address Resolution Protocol, được sử dụng để tìm địa chỉ MAC liên kết với địa chỉ IP cụ thể. Chúng ta có thể sử dụng đối tượng neigh với lệnh ip để hiển thị bộ nhớ cache ARP:

$ ip neigh show

23 ví dụ về cách sử dụng lệnh IP trong hệ điều hành Linux

Trong lệnh trên, neigh đại diện cho các đối tượng hàng xóm.

Cách thêm mục ARP

Để tạo một mục ARP mới, chúng ta có thể sử dụng lệnh con add với đối tượng neigh.

$ sudo ip neigh add 172.19.1.0 lladdr 02:42:e3:40:a6:b1 dev eth2

Bây giờ, hãy liệt kê các mục cache ARP:

$ ip neigh show

23 ví dụ về cách sử dụng lệnh IP trong hệ điều hành Linux

Trong đầu ra trên, chúng ta có thể thấy mục mới cho giao diện mạng eth2.

Cách xóa mục ARP

Tương tự như các đối tượng mạng khác, chúng ta có thể sử dụng lệnh con del để xóa mục ARP. Ví dụ, lệnh dưới đây sẽ xóa mục ARP của giao diện mạng eth2:

$ sudo ip neigh del 172.19.1.0 dev eth2

Bây giờ, hãy xác minh rằng mục đã được xóa bằng cách liệt kê bộ nhớ cache ARP:

$ ip neigh show

23 ví dụ về cách sử dụng lệnh IP trong hệ điều hành Linux

Cách xóa tất cả các mục ARP

Chúng ta có thể sử dụng lệnh con flush để xóa nhiều mục ARP cùng một lúc. Để hiểu điều này, trước tiên hãy thêm một số mục ARP với trạng thái STALE:

$ sudo ip neigh add 172.19.1.0 lladdr 02:42:e3:40:a6:b1 dev eth2 nud stale
$ sudo ip neigh add 172.19.2.0 lladdr 02:42:e3:40:a6:b2 dev eth2 nud stale
$ sudo ip neigh add 172.19.3.0 lladdr 02:42:e3:40:a6:b3 dev eth2 nud stale

Tiếp theo, xác minh rằng các mục mới đã được thêm thành công:

$ ip neigh show

Sau đó, xóa tất cả các mục bằng lệnh sau:

$ sudo ip neigh flush all

Cuối cùng, xác minh rằng tất cả các mục đã bị xóa:

$ ip neigh show

23 ví dụ về cách sử dụng lệnh IP trong hệ điều hành Linux

Cách đặt MTU cho giao diện mạng

MTU viết tắt của Maximum Transmission Unit, đại diện cho kích thước gói tin lớn nhất có thể truyền trong một giao dịch duy nhất. Chúng ta có thể điều chỉnh kích thước MTU theo yêu cầu hiệu suất của chúng ta. Trước tiên, hãy tìm MTU của giao diện mạng eth2:

$ ip -j -p link show eth2 | grep mtu

Tiếp theo, cập nhật kích thước MTU của giao diện mạng eth2 thành 3000:

$ sudo ip link set mtu 3000 dev eth2

Cuối cùng, xác minh rằng MTU đã được cập nhật thành công:

$ ip -j -p link show eth2 | grep mtu

23 ví dụ về cách sử dụng lệnh IP trong hệ điều hành Linux

Cách thay đổi địa chỉ MAC của mạng

Lệnh ip cho phép chúng ta thay đổi địa chỉ MAC của giao diện mạng. Để làm điều này, chúng ta có thể sử dụng lệnh con set với đối tượng link:

Trước tiên, liệt kê địa chỉ MAC hiện tại của giao diện mạng eth2:

$ ip -j -p link show eth2 | grep address

Tiếp theo, thay đổi địa chỉ MAC của giao diện mạng bằng lệnh sau:

$ sudo ip link set dev eth2 address 02:42:ac:13:01:03

Cuối cùng, xác minh rằng địa chỉ MAC đã được thay đổi:

$ ip -j -p

23 ví dụ về cách sử dụng lệnh IP trong hệ điều hành Linux

Mọi người cũng tìm kiếm: linux show ip, show ip linux, ví dụ về địa chỉ ip, arp -a linux, đổi ip ubuntu, centos show ip, ubuntu ip