Cách sử dụng IP command trong Linux [24 ví dụ hữu ích]

Trong hướng dẫn này, chúng ta sẽ thảo luận về một số ví dụ thực tế về ip command. Đến cuối hướng dẫn này, người dùng sẽ có thể thực hiện các tác vụ mạng một cách hiệu quả trên Linux từ giao diện dòng lệnh.

Các quản trị viên hệ thống thường cần thực hiện các công việc mạng trên các máy chủ Linux. Có nhiều công cụ đồ họa và dòng lệnh khác nhau có sẵn trên thị trường. Tuy nhiên, hầu hết người dùng Linux thích sử dụng lệnh ip do tính đơn giản và khả năng chức năng phong phú của nó.

Lệnh ip là một tiện ích 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 / cập nhật các biến mạng hữu ích trên hệ thống Linux.

Nó là một phần của gói iproute2 và cung cấp nhiều tác vụ quản lý mạng như khởi động hoặc tắt giao diện mạng, gán và xóa địa chỉ IP và route, quản lý bộ nhớ cache ARP và nhiều tính năng khác.

Lệnh ip rất giống với lệnh ifconfig cũ, nhưng nó mạnh mẽ hơn rất nhiều với nhiều chức năng và khả năng được thêm vào.

Lệnh ifconfig đã bị loại bỏ và được thay thế bằng lệnh ip trong tất cả các bản phân phối Linux hiện đại. Tuy nhiên, lệnh ifconfig vẫn hoạt động và có sẵn cho hầu hết các bản phân phối Linux.

Lưu ý: Vui lòng sao lưu tệp cấu hình trước khi thực hiện các thay đổi.

1. 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 địa chỉ IP tĩnh cho hệ thống. Bạn phải là một người dùng siêu người dùng với lệnh su (đổi người dùng) từ cửa sổ dòng lệnh hoặc dấu nhắc lệnh.

Đặt địa chỉ IP tĩnh trong hệ thống RHEL

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

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

Đặt địa chỉ IP tĩnh trong hệ thống Debian

Để cấu hình địa chỉ IP tĩnh vĩnh viễn, bạn cần sửa đổi tệp cấu hình giao diện mạng của bạn /etc/network/interfaces để thực hiện các thay đổi vĩnh viễn như được hiển thị dưới đây cho các bản phân phối dựa trên Debian.

$ sudo nano /etc/network/interfaces     [On Debian, Ubuntu and Mint]
Configure Static IP in Debian Systems

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

2. Cấu hình địa chỉ IP tĩnh tạm thời trong 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 ý: Rất tiếc tất cả các cài đặt này sẽ bị mất sau khi khởi động lại hệ thống.

3. Cách 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" cùng với nó để hiển thị tất cả các giao diện mạng.

Bây giờ, hãy hiển thị tất cả các giao diện mạng bằng cách sử dụng lệnh sau:

$ ip link show
Check IP Addresses of Network Interfaces

Đầu ra trên hiển thị chi tiết về tất cả các giao diện mạng, chẳng hạn như tên giao diện, cờ, trạng thái, địa chỉ liên kết, địa chỉ phát sóng, v.v.

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

Để có thông tin chi tiết về giao diện mạng cá nhân của bạn như địa chỉ IP và địa chỉ MAC, sử dụng lệnh sau như được hiển thị dưới đây.

$ ip link show eth2
Check IP Address of Network Interface

Đế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, nó không hiển thị địa chỉ IP liên quan đến 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 với lệnh ip.

Hãy hiểu điều này qua một ví dụ.

$ ip addr show
Check IP Address of Interface

Ở đây, chúng ta có thể thấy bây giờ đầu ra hiển thị địa chỉ IP của tất cả các giao diện mạng cùng với các chi tiết khác.

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

$ ip addr show eth2

5. Cách hiển thị địa chỉ IP trong đầu ra màu sắc

Lệnh ip hiển thị thông tin chi tiết về các đối tượng mạng. Tuy nhiên, đôi khi chúng ta cần xem thông tin giới hạn. Trong những trường hợp như vậy, chúng ta có thể tạo đầu ra màu sắc. Tùy chọn này làm nổi bật các chi tiết quan trọng bằng các màu khác nhau.

Hãy sử dụng tùy chọn --color của lệnh để hiển thị đầu ra bằng các màu khác nhau:

$ ip --color addr show eth2
Show IP Address in Color Output

Trong đầu ra trên, chúng ta có thể thấy tên giao diện, địa chỉ Ethernet và trạng thái được làm nổi bật bằng các màu khác nhau.

6. Cách hiển thị địa chỉ IP dưới dạng đầu ra JSON

Trong các ví dụ trước, chúng ta thấy lệnh ip hiển thị thông tin có ý nghĩa. Tuy nhiên, không phải lúc nào cũng dễ dàng để phân tích đầu ra không xử lý và trích xuất thông tin có ý nghĩa bằng các kịch bản cơ bản. Trong những trường hợp như vậy, chúng ta có thể hướng dẫn lệnh ip tạo ra đầu ra dưới dạng JSON.

Vì vậy, hãy sử dụng tùy chọn -j với lệnh để hiển thị cùng một đầu ra dưới dạng JSON:

$ ip -j link show eth2
Show IP Address in JSON Format

Phương pháp này hữu ích khi thực hiện tự động hóa vì JSON là một định dạng được chấp nhận rộng rãi và có nhiều thư viện / công cụ phân tích cú pháp JSON có sẵn trong các ngôn ngữ lập trình khác nhau.

7. Cách làm cho đầu ra JSON dễ đọc hơn

Trong ví dụ trước, chúng ta đã sử dụng tùy chọn -j để hiển thị đầu ra dưới dạng JSON. Định dạng JSON mặc định này gọn gàng và hiệu quả không gian. Tuy nhiên, đầu ra không dễ đọc do thiếu thụt lề.

Để khắc phục giới hạn này, chúng ta có thể sử dụng tùy chọn -p để làm cho đầu ra dễ đọc hơn bằng cách thụt lề. Hãy hiểu điều này qua ví dụ dưới đây:

$ ip -j -p link show eth2
Show IP Address in Readable Format

Ở đây, chúng ta có thể thấy đầu ra giống như các ví dụ trước.

8. Cách xóa địa chỉ IP từ giao diện mạng

Trong ví dụ trước, chúng ta đã sử dụng tiểu tức là thêm một địa chỉ IP. Tương tự, chúng ta có thể sử dụng tiểu tức xóa một địa chỉ IP cụ thể.

Lệnh sau sẽ xóa địa chỉ IP được gán từ giao diện đã cho (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ờ, hãy xác minh rằng địa chỉ IP đã được xóa:

$ ip -j -p addr show eth2
Remove Network IP Address in Linux

Trong đầu ra trên, chúng ta có thể thấy bây giờ giao diện mạng eth2 chỉ có một địa chỉ IP.

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

Cờ "up" với tên giao diện (eth2) cho phép một giao diện mạng. Ví dụ: lệnh dưới đây sẽ kích hoạt giao diện mạng eth2.

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

Bây giờ, hãy kiểm tra trạng thái đã cập nhật:

$ ip -j -p link show eth2 | grep operstate
Enable Network Interface in Linux

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

Cờ "down" với tên giao diện (eth2) vô hiệu hóa một giao diện mạng. Ví dụ: lệnh dưới đây sẽ Vô hiệu hóa giao diện mạng eth2.

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

Bây giờ, hãy kiểm tra trạng thái của giao diện mạng eth2:

$ ip -j -p link show eth2 | grep operstate
Disable Network Interface in Linux

Trên đây là kết quả của giao diện mạng đã được thay đổi.

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

Ở ví dụ trước, chúng ta đã thấy làm thế nào sử dụng tiểu tức 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 giao diện mạng cụ thể. Trong trường hợp đó, chúng tôi có thể sử dụng tiểu tức flush.

Đầu tiên, sử dụng tiểu tức flush để xóa tất cả các địa chỉ IP của giao diện mạng eth2 đã cho:

$ 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 đã bị xóa:

$ ip -j -p addr show eth2
Flush Network IP Addresses in Linux

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

12. Làm thế nào để 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 một gói mạng đến đích chính xác. Chúng tôi có thể sử dụng đối tượng lệnh route của lệnh ip để hiển thị luật định tuyến.

Hãy sử dụng lệnh sau để liệt kê tất cả các luật của bảng định tuyến:

$ ip route show
Check Network Routing Table

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

13. Làm thế nào để thêm tuyến tĩnh mới

Tại sao bạn cần thêm tuyến tĩnh hoặc tuyến thủ công, vì dữ liệu không được chuyển qua gateway mặc định? Chúng tôi cần thêm các tuyến tĩnh để chuyển giao thông từ cách tốt nhất để đến điểm đí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 xác minh rằng tuyến đã được thêm thành công:

$ ip route show

Làm thế nào để thêm tuyến tĩnh mới

Thêm tuyến mạng trong Linux

15. Làm thế nào để xóa Route tĩnh

Lệnh del loại bỏ một mục nhập cụ thể từ bảng định tuyến. Ví dụ, lệnh dưới đây sẽ loại bỏ mục nhập của route thiết bị eth2:

$ sudo ip route del 172.19.1.0/24

Bây giờ, hãy xác minh rằng mục nhập đã được xóa thành công:

$ ip route show

16. Làm thế nào để thêm Route tĩnh vĩnh viễn

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

Thiết lập Route vĩnh viễn trong hệ thống RHEL:

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

Thêm các dòng sau và lưu và thoát:

172.19.1.0/24 via 172.19.1.2 dev eth2

Thiết lập Route vĩnh viễn trong hệ thống Debian:

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

$ sudo vi /etc/network/interfaces

Thêm các dòng sau vào cuối:

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

Sau đó, khởi động lại dịch vụ mạng sau khi nhập tất cả các chi tiết sử dụng lệnh sau:

$ sudo systemctl restart networking

17. Làm thế nào để thêm Gateway mặc định

Trong mạng, gateway mặc định đóng vai trò quan trọng. Nó được sử dụng khi bảng định tuyến không chứa bất kỳ thông tin nào về điểm đến.

Gateway mặc định có thể được chỉ định toàn cầu hoặc cho các tệp cấu hình cụ thể cho giao diện. Ưu điểm của gateway 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 gateway mặc định ngay lập tức như dưới đây:

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

$ sudo ip route add default via 172.17.0.1

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

$ ip route show

Làm thế nào để thêm Gateway mặc định

Thêm Network Gateway trong Linux

Vui lòng lưu ý rằng chúng tôi đã thực thi 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.

18. Làm thế nào để xóa Gateway mặc định

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

$ sudo ip route del default

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

$ ip route show

Làm thế nào để xóa Gateway mặc định

Loại bỏ cổng mạng trong Linux

19. Làm thế nào để hiển thị bảng ARP Cache

ARP đứng cho Giao Thức Giải Địa Chỉ, được sử dụng để tìm địa chỉ MAC liên kết với một đị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ảng ARP cache:

$ ip neigh show

Làm thế nào để hiển thị bảng ARP Cache

Kiểm tra bộ đệm ARP trong Linux

Trong lệnh trên, neigh đại diện cho các đối tượng lân cận.

20. Làm thế nào để thêm mục nhập ARP

Để tạo một mục nhập ARP mới, chúng ta có thể sử dụng lệnh 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 nhập trong bộ nhớ cache ARP:

$ ip neigh show

Làm thế nào để Thêm Mục Nhập ARP

Thêm bộ đệm ARP trong Linux

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

21. Làm thế nào để xóa mục nhập ARP

Giống như các đối tượng mạng khác, chúng ta có thể sử dụng lệnh del để xóa mục nhập ARP. Ví dụ, lệnh dưới đây sẽ xóa mục nhập 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 nhập đã được xóa bằng cách liệt kê bảng cache ARP:

$ ip neigh show 

Làm thế nào để xóa mục nhập ARP

Xóa bộ đệm ARP trong Linux

22. Làm thế nào để xóa toàn bộ các mục nhập ARP

Chúng ta có thể sử dụng lệnh flush để xóa nhiều mục nhập ARP. Để hiểu điều này, trước tiên, hãy thêm một số mục nhập 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 nhập mới đã được thêm thành công:

$ ip neigh show

Sau đó, xóa tất cả các mục nhập 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 nhập đã được xóa:

$ ip neigh show

Làm thế nào để xóa toàn bộ các mục nhập ARP

Xóa ARP trong Linux

23. Làm thế nào để thiết lập MTU cho giao diện mạng

MTU đứng cho Đơn vị Truyền Tải Tối Đa, đại diện cho kích thước gói 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 mình.

Đầu 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

Làm thế nào để thiết lập MTU cho giao diện mạng

Đặt MTU mạng trong Linux

24. Làm thế nào để thay đổi địa chỉ MAC 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 set với đối tượng link:

Đầu 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 dưới đây:

$ 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 link show eth2 | grep address

Làm thế nào để thay đổi địa chỉ MAC mạng

Thay đổi địa chỉ MAC mạng trong Linux

Vui lòng tham khảo trang hướng dẫn từ dòng lệnh để biết thêm thông tin về Lệnh IP:

$ man ip

Trong bài viết này, chúng tôi đã thảo luận về một số ví dụ phổ biến của ip command. Bạn có thể sử dụng những ví dụ này trong công việc hàng ngày để thực hiện quản trị mạng.