
Route là lệnh dòng lệnh (command-line) được tích hợp sẵn trong Windows (từ XP đến Windows 11) dùng để hiển thị và thao tác với bảng định tuyến IP. Bảng định tuyến là một cấu trúc dữ liệu chứa thông tin về các đường đi của các gói tin IP trong hệ thống mạng. Mỗi khi máy tính gửi một gói tin, hệ điều hành sẽ tra cứu bảng này để quyết định giao diện mạng nào sẽ gửi gói tin đi và qua gateway nào. Bảng định tuyến được xây dựng tự động thông qua các giao thức như DHCP hoặc ICMP Router Discovery, nhưng lệnh route cho phép can thiệp thủ công, đặc biệt hữu ích khi cần định tuyến tĩnh, phân chia lưu lượng mạng hoặc kết nối đến các mạng con không dùng default gateway.
Cú pháp cơ bản và các tham số của lệnh route trong cmd
Để sử dụng lệnh route, bạn cần mở Command Prompt với quyền Administrator (vì thao tác thay đổi bảng định tuyến yêu cầu quyền cao). Cú pháp tổng quát:
route [-f] [-p] [command] [destination] [mask netmask] [gateway] [metric metric] [if interface]
Các tham số chính:
- -f: Xóa tất cả các tuyến không phải tuyến loopback (127.0.0.0) và tuyến multicast.
- -p: Khi kết hợp với lệnh add, tuyến được thêm sẽ tồn tại vĩnh viễn (persistent), không bị mất sau khi khởi động lại.
- command: Một trong bốn lệnh: print, add, delete, change.
- destination: Địa chỉ đích của mạng (ví dụ: 192.168.1.0).
- mask netmask: Mặt nạ mạng (subnet mask) dạng số (ví dụ: 255.255.255.0). Nếu bỏ qua, mặc định là 255.255.255.255 (máy đơn).
- gateway: Địa chỉ IP của gateway (router) để tiếp cận mạng đích.
- metric: Chi phí định tuyến (số hop), giá trị càng thấp càng ưu tiên. Mặc định là 1.
- if interface: Chỉ định giao diện mạng cụ thể (dùng chỉ số interface).
- Network Destination: Địa chỉ mạng đích.
- Netmask: Mặt nạ mạng.
- Gateway: Cổng kết nối.
- Interface: Địa chỉ IP của giao diện máy tính.
- Metric: Chi phí.
Lệnh route print: Xem bảng định tuyến
Đây là lệnh phổ biến nhất. Gõ route print hoặc route print -4 (chỉ IPv4) hoặc route print -6 (IPv6). Kết quả hiển thị danh sách các tuyến với các cột:
Ví dụ đầu ra:
IPv4 Route Table =========================================================================== Active Routes: Network Destination Netmask Gateway Interface Metric 0.0.0.0 0.0.0.0 10.0.0.1 10.0.0.2 25 10.0.0.0 255.0.0.0 On-link 10.0.0.2 25 127.0.0.0 255.0.0.0 On-link 127.0.0.1 331 192.168.1.0 255.255.255.0 On-link 192.168.1.5 281 ===========================================================================
Giải thích:
Lệnh route add: Thêm tuyến tĩnh
Cú pháp: route add destination mask netmask gateway [metric] [if interface] Ví dụ thêm tuyến đến mạng 192.168.2.0/24 qua gateway 192.168.1.1:
route add 192.168.2.0 mask 255.255.255.0 192.168.1.1 metric 2
Nếu muốn tuyến tồn tại qua reboot, thêm tham số -p:
route add -p 192.168.2.0 mask 255.255.255.0 192.168.1.1
Lưu ý: Khi thêm tuyến, đích và gateway phải cùng một mạng con với giao diện của máy tính, nếu không lệnh sẽ báo lỗi.
Lệnh route delete: Xóa tuyến
Cú pháp: route delete destination [mask netmask] [gateway] Xóa tuyến đến mạng 192.168.2.0:
route delete 192.168.2.0 mask 255.255.255.0
Nếu chỉ định gateway, lệnh sẽ xóa tuyến khớp chính xác.
Lệnh route change: Sửa tuyến hiện có
Cú pháp: route change destination mask netmask gateway [metric] Ví dụ thay đổi gateway của tuyến 192.168.2.0 thành 192.168.1.254:
route change 192.168.2.0 mask 255.255.255.0 192.168.1.254
Lưu ý: Lệnh này không thể thay đổi mặt nạ hoặc đích; chỉ có thể thay đổi gateway và metric.
Phân loại tuyến trong bảng định tuyến

Bảng định tuyến có thể phân loại thành:
- Tuyến mặc định (default route): Destination 0.0.0.0 netmask 0.0.0.0, dùng cho tất cả lưu lượng không khớp.
- Tuyến mạng trực tiếp (directly attached network): Khi máy tính có địa chỉ IP trong mạng con, gateway là On-link, gói tin được gửi trực tiếp qua ARP.
- Tuyến tĩnh (static route): Do người dùng thêm thủ công bằng lệnh route add, có thể là persistent (với -p) hoặc tạm thời.
- Tuyến động (dynamic route): Được thêm tự động bởi các giao thức như RIP, OSPF (thường thấy trong máy chủ chạy dịch vụ định tuyến).
Lợi ích và hạn chế khi sử dụng lệnh route trong cmd
Lợi ích
- Kiểm soát chi tiết luồng dữ liệu: Có thể chỉ định đường đi cho từng mạng con, đặc biệt hữu ích trong mạng doanh nghiệp có nhiều VLAN hoặc VPN.
- Khả năng chịu lỗi (failover) thủ công: Thay đổi gateway tạm thời khi router chính bị lỗi.
- Không phụ thuộc vào giao diện đồ họa: Có thể dùng trong script hoặc remote qua PowerShell/SSH.
- Chẩn đoán sự cố mạng: Xem bảng định tuyến giúp phát hiện tuyến trùng lặp, metric sai, hoặc thiếu default gateway.
- Tuyến tĩnh tồn tại sau khởi động: Tham số -p giúp tự động hóa cấu hình mạng.
Hạn chế
- Không động: Tuyến tĩnh không tự cập nhật khi mạng thay đổi, phải can thiệp thủ công.
- Yêu cầu quyền Administrator: Người dùng thường không thể chạy route add/delete.
- Dễ gây nhầm lẫn: Nếu thêm sai gateway hoặc mặt nạ, mạng có thể mất kết nối.
- Giới hạn số lượng tuyến: Bảng định tuyến có kích thước giới hạn tùy hệ điều hành.
So sánh lệnh route với các công cụ tương tự

| Lệnh/Công cụ | Mục đích | Ưu điểm | Nhược điểm |
|---|---|---|---|
| route | Xem, thêm, xóa tuyến tĩnh IPv4/IPv6 | Đơn giản, có sẵn, hỗ trợ persistent (-p) | Không tự động, không đồng bộ với giao thức động |
| netsh interface ipv4 | Cấu hình IP, DNS, route nâng cao (ví dụ: netsh int ipv4 add route) | Nhiều tùy chọn hơn, có thể dùng trong scripts | Cú pháp phức tạp, dài dòng |
| tracert / pathping | Chẩn đoán đường đi gói tin | Cho biết đường đi thực tế qua các hop | Không thay đổi được bảng định tuyến |
| PowerShell: Get-NetRoute / New-NetRoute | Quản lý route qua PowerShell | Dễ viết script, hỗ trợ pipeline, object-oriented | Yêu cầu PowerShell phiên bản mới, cần học thêm |
Ứng dụng thực tế và hướng dẫn từng bước
1. Chẩn đoán mất kết nối Internet do thiếu default gateway
Khi máy tính không truy cập được Internet, kiểm tra bảng định tuyến xem có tuyến 0.0.0.0 không. Nếu không, thêm thủ công:
- Mở cmd với quyền Administrator.
- Gõ
ipconfigđể biết địa chỉ gateway mặc định (ví dụ 192.168.1.1). - Thêm default route:
route add 0.0.0.0 mask 0.0.0.0 192.168.1.1 - Kiểm tra lại bằng
route print.
2. Kết nối đến mạng VPN nội bộ
Sau khi kết nối VPN, máy tính có thể nhận thêm một giao diện mới với địa chỉ IP 10.10.10.2. Tuy nhiên, muốn truy cập mạng 172.16.0.0/16 qua VPN mà không qua default gateway:
route add 172.16.0.0 mask 255.255.0.0 10.10.10.1 metric 1 if 2
Trong đó if 2 là chỉ số interface của kết nối VPN (xem bằng route print).
3. Phân chia lưu lượng (load balancing thô sơ)
Giả sử máy tính có hai card mạng: card chính kết nối Internet (gateway 192.168.1.1) và card phụ kết nối server nội bộ (gateway 10.0.0.1). Để lưu lượng đến server nội bộ 10.10.0.0/16 đi qua card phụ:
route add 10.10.0.0 mask 255.255.0.0 10.0.0.1 metric 10
(Card chính vẫn dùng default route cho Internet.)
4. Sử dụng tuyến tĩnh để truy cập mạng con khi có nhiều router
Trong mạng LAN có router chính A (192.168.1.1) kết nối Internet, và router B (192.168.1.2) quản lý mạng con 192.168.2.0/24. Để máy tính truy cập được mạng con B:
route add 192.168.2.0 mask 255.255.255.0 192.168.1.2
Sai lầm thường gặp và cách tránh khi dùng lệnh route

- Sai mặt nạ mạng: Dùng mặt nạ 255.255.255.0 cho đích 192.168.2.0 (đúng) nhưng nếu nhập 192.168.2.1 (địa chỉ máy) sẽ không khớp. Luôn kiểm tra mặt nạ bằng công thức: đích AND mặt nạ = mạng.
- Thêm tuyến mà gateway không cùng mạng với interface: Ví dụ gateway 10.0.0.1 trong khi interface có IP 192.168.1.5 sẽ báo lỗi. Giải pháp: dùng đúng gateway thuộc cùng subnet với interface.
- Quên tham số -p: Tuyến thêm sẽ mất sau reboot. Nếu cần vĩnh viễn, nhớ thêm -p.
- Xóa nhầm default gateway: Dùng lệnh
route delete 0.0.0.0dẫn đến mất Internet ngay lập tức. Có thể khôi phục bằng cách thêm lại. - Không chạy với quyền Admin: Lệnh route add/delete sẽ hiển thị lỗi “The requested operation requires elevation”. Luôn chạy cmd “Run as administrator”.
Lưu ý quan trọng khi quản lý bảng định tuyến
- Sao lưu bảng định tuyến trước khi thay đổi: Dùng
route print > C:route_backup.txtđể dễ dàng khôi phục. - Kiểm tra tuyến trùng lặp: Bảng định tuyến có thể có nhiều tuyến đến cùng một đích. Windows chọn tuyến có metric thấp nhất. Nếu metric bằng nhau, có thể gây ra định tuyến ngẫu nhiên.
- Chỉ số interface: Có thể xem bằng
route printhoặcnetsh int ipv4 show interfaces. Dùng chỉ số đúng để áp tuyến vào card mạng cụ thể. - Tuyến IPv6: Lệnh route cũng hỗ trợ IPv6 với các tham số tương tự nhưng thay mask bằng prefix length (ví dụ:
route add 2001:db8::/32 2001:db8::1). - Tác động của firewall: Một số firewall có thể chặn các gói tin theo tuyến mới thêm. Cần kiểm tra quy tắc firewall nếu kết nối không hoạt động.
Câu hỏi thường gặp (FAQ)

Lệnh route print không hiển thị gì? Có thể do thiếu quyền?
Nguyên nhân thường là do bạn không chạy cmd với quyền Administrator. Mặc dù lệnh print có thể chạy với quyền thường, nhưng trong một số trường hợp Windows hạn chế hiển thị. Hãy thử mở cmd với quyền Administrator, hoặc dùng route print -4 để ép chỉ IPv4.
Làm thế nào để xóa tất cả tuyến tĩnh đã thêm bằng lệnh route?
Không có lệnh xóa tất cả một lần.
Không, lệnh route chỉ chấp nhận địa chỉ IP. Bạn phải phân giải tên miền thành địa chỉ IP trước (dùng ping hoặc nslookup) rồi mới thêm tuyến.
Lệnh route change có đổi được đích không?
Không, lệnh change chỉ cho phép thay đổi gateway và metric, không thay đổi destination hoặc netmask. Muốn thay đổi đích, bạn phải xóa tuyến cũ và thêm tuyến mới.
Sự khác biệt giữa route add với -p và không -p?
Không -p: tuyến chỉ tồn tại đến khi khởi động lại máy. -p: tuyến được lưu vào registry và tồn tại vĩnh viễn. Lưu ý -p chỉ hoạt động với lệnh add, không áp dụng cho delete hay change.
Kết luận
Lệnh route trong cmd là một công cụ mạnh mẽ, đơn giản nhưng hiệu quả để quản lý bảng định tuyến IP trên Windows. Hiểu rõ cách sử dụng các lệnh print, add, delete, change cùng các tham số -p, -f, mask, metric và if giúp bạn kiểm soát hoàn toàn luồng dữ liệu mạng, khắc phục sự cố kết nối và cấu hình mạng phức tạp. Đối với quản trị viên mạng, thành thạo lệnh route là bước cơ bản trước khi tiếp cận các công cụ như netsh, PowerShell hay giao thức định tuyến động. Thực hành thường xuyên trên môi trường thử nghiệm sẽ giúp bạn tự tin áp dụng vào thực tế mà không gây gián đoạn hệ thống.







