Danh mục sản phẩm
Giao diện quản trị FortiGate: cấu trúc lệnh CLI và 4 nhóm lệnh cốt lõi (show/get/diagnose/execute)
1. Liên hệ thực tế
Anh Nam vừa nhận bàn giao một FortiGate 60F từ đối tác triển khai. Sếp anh yêu cầu kiểm tra nhanh xem thiết bị đã lên internet chưa, phiên bản FortiOS là gì, và interface WAN đã có IP hay chưa — tất cả trong vòng 5 phút, không có sẵn tài liệu bàn giao GUI chi tiết.
Anh Nam mở SSH, gõ liền một mạch: get system status, get system interface physical, diagnose sys top. Chị Lan đứng cạnh, dân tư vấn chính hãng, thắc mắc: "Sao lúc thì get, lúc thì diagnose, sao không xài show cho thống nhất?"
Anh Nam cười: "Ba lệnh đó trả lời ba câu hỏi khác nhau đấy chị. Đây là thứ đầu tiên em học khi mới vào nghề FortiGate — không nắm được cái này thì gõ CLI như đoán mò."
Đây chính là chủ đề bài này: cấu trúc lệnh cấu hình config/edit/set/end, và 4 nhóm lệnh show/get/diagnose/execute — nền tảng bắt buộc trước khi đụng vào bất kỳ bài thực hành CLI nào phía sau.
2. Kiến thức cốt lõi
2.1 Vì sao cần hiểu CLI trước GUI
FortiOS có hai giao diện quản trị: GUI (giao diện web) và CLI (command line, qua console, SSH hoặc Telnet). GUI trực quan cho tác vụ hàng ngày, nhưng CLI là bắt buộc trong nhiều tình huống: cấu hình hàng loạt, debug sự cố, script tự động hóa, hoặc khi GUI không truy cập được (mất mạng quản lý, lỗi giao diện web...).
⚠️ Lưu ý: Một số lệnh chẩn đoán chuyên sâu (ví dụ
diagnose debug,diagnose sniffer) chỉ tồn tại trên CLI, GUI không có tương đương.⚠️ Lưu ý kỹ thuật quan trọng: "Nhiều bạn quen làm Cisco hay nhầm thông số Baud Rate khi cắm cáp Console vào FortiGate. Cisco dùng
9600, nhưng FortiGate thường dùng Baud Rate là115200thì màn hình CLI mới nhận diện đúng phím — đặt sai sẽ thấy toàn ký tự rác hoặc gõ phím không phản hồi. Cấu hình đầy đủ cho cổng Serial Console: 115200, 8-N-1 (Data bits: 8, Parity: None, Stop bits: 1, Flow control: None)."
2.2 Cấu trúc lệnh cấu hình: config → edit → set → next → end
Phần lớn lệnh thay đổi cấu hình trên FortiGate theo một khuôn mẫu phân cấp cố định:
config— mở một khối cấu hình (ví dụconfig system interface).edit— chỉ dùng trong khối dạng bảng (table), để tạo mới hoặc sửa một entry cụ thể (ví dụedit "port1").set— gán giá trị cho một tham số bên trong entry đang chỉnh.next— lưu entry hiện tại lại và quay về mức bảng, sẵn sàngeditentry tiếp theo.end— đóng toàn bộ khốiconfig, lưu lại toàn bộ bảng.
abort— hủy toàn bộ thao tác vừa gõ trong khốiconfighiện tại và thoát ra ngoài, không lưu bất kỳ thay đổi nào.
⚠️ Lưu ý kỹ thuật quan trọng từ chị Lan: "Khi thao tác trong các cấp
config, các bạn cần phân biệt rõ: gõnextđể lưu bảng cấu hình hiện tại và chuyển sang tạo bảng tiếp theo (vẫn ở trongconfig); gõendđể lưu toàn bộ và thoát hoàn toàn ra màn hình chính; gõabortđể thoát ra ngay lập tức và KHÔNG lưu các lệnh vừa gõ. Nhiều bạn hay lẫnnextvớiendnên bị sót cấu hình khi thoát ra giữa chừng."
Ví dụ cấu hình IP cho hai cổng mạng:
config system interface
edit "port1"
set ip 10.0.0.1 255.255.255.0
set allowaccess ping https
next
edit "port2"
set ip 10.0.1.1 255.255.255.0
set allowaccess ping
next
end
⚠️ Lưu ý quan trọng về
settrên danh sách (list): nếu một tham số đang chứa nhiều giá trị (ví dụ nhóm thành viên user group gồm A, B, C), lệnhset member Dsẽ thay thế toàn bộ bằng D chứ không phải thêm vào. Muốn giữ lại A, B, C và thêm D, phải gõ đầy đủ:set member A B C D.
Một vài lệnh điều hướng và tiện ích hữu dụng khi làm việc trong CLI:
?— hiển thị các lựa chọn/tham số khả dụng tại vị trí hiện tại (tương tự autocomplete gợi ý).- Gõ tắt được, miễn không gây nhập nhằng — ví dụ
get system statuscó thể gõ tắt thànhg sy stat. tree— hiển thị toàn bộ cây lệnh;tree systemxem riêng nhánhsystem;tree diagnosehoặctree executexem riêng hai nhánh tương ứng.| grep <từ khóa>— lọc output dài, ví dụget hardware nic internal | grep Current_HWaddrchỉ để xem MAC address.
2.3 Bốn nhóm lệnh xem & thao tác: show, get, diagnose, execute
Ngoài nhóm lệnh cấu hình, FortiOS CLI chia các lệnh còn lại thành 4 nhóm chức năng riêng biệt — đây là điểm dễ gây nhầm lẫn nhất với người quen CLI kiểu Cisco (chỉ có show).
show — hiển thị cấu hình hiện tại của một khối, nhưng chỉ những tham số đã bị đổi khác giá trị mặc định. Muốn xem toàn bộ kể cả giá trị mặc định, dùng show full-configuration.
get — hiển thị trạng thái/thông tin runtime của hệ thống hoặc một cấu hình cụ thể, ví dụ get system status (phiên bản FortiOS, model, uptime), get system interface physical (trạng thái interface vật lý), get system performance status (CPU/RAM hiện tại).
diagnose — nhóm lệnh chẩn đoán/debug chuyên sâu, dùng để soi log, bắt gói tin, xem tiến trình hệ thống... mà không làm thay đổi cấu hình đang chạy. Ví dụ diagnose sys top (xem tiến trình ngốn CPU), diagnose sniffer packet any (bắt gói tin).
execute — nhóm lệnh thực thi một hành động thay vì chỉ xem thông tin: khởi động lại thiết bị, sao lưu/khôi phục cấu hình, ping/traceroute, cập nhật firmware... Ví dụ execute reboot, execute backup config flash, execute ping 8.8.8.8.
🔄 Khác biệt version FortiOS: cấu trúc 4 nhóm lệnh này ổn định qua các phiên bản FortiOS gần đây (7.0 trở lên). Một số lệnh con cụ thể trong
diagnose/executecó thể được thêm/đổi tên giữa các bản 7.0 → 7.2 → 7.4, nên khi thao tác trên thiết bị thật, luôn dùng?hoặctreeđể xác nhận lệnh còn tồn tại đúng như tài liệu.
2.4 Bảng tổng hợp nhanh
| Nhóm lệnh | Mục đích | Có đổi cấu hình không? | Ví dụ |
|---|---|---|---|
config...end |
Tạo/sửa cấu hình | Có | config system interface |
show |
Xem cấu hình khác mặc định | Không | show system interface |
get |
Xem trạng thái/runtime | Không | get system status |
diagnose |
Chẩn đoán, debug, sniffer | Không | diagnose sys top |
execute |
Thực thi hành động | Có (hành động, không phải config) | execute ping 8.8.8.8 |
3. Hỏi & Đáp
Sao không dùng show để xem luôn trạng thái CPU/RAM cho tiện, cần gì phải nhớ thêm lệnh get?
Vì show chỉ đọc phần cấu hình đã lưu (running-config), còn CPU/RAM là số liệu runtime thay đổi liên tục theo từng giây — thuộc phạm vi của get/diagnose, không nằm trong cấu hình. Đây là ranh giới cố định của FortiOS CLI: cấu hình (show) và trạng thái sống (get, diagnose) tách biệt nhau.
Nếu gõ nhầm edit một entry chưa tồn tại thì sao?
FortiGate sẽ tự tạo mới entry đó với tên vừa gõ. Đây là hành vi "tạo hoặc sửa" (create-or-edit) mặc định của lệnh edit trong khối bảng — cần cẩn thận gõ đúng chính tả tên interface/policy, nếu không sẽ vô tình tạo ra entry rác.
diagnose có an toàn để chạy trên thiết bị đang chạy production không?
Phần lớn lệnh diagnose chỉ đọc thông tin nên an toàn, nhưng một số lệnh debug (như diagnose debug application <daemon> mức cao) có thể sinh log lớn ảnh hưởng hiệu năng tạm thời. Nên tránh chạy sniffer bắt gói tin với bộ lọc quá rộng trên thiết bị đang tải cao, và luôn tắt debug (diagnose debug disable) sau khi xong việc.
Có bắt buộc phải gõ full câu lệnh không, hay được viết tắt?
Được viết tắt miễn không gây nhập nhằng với lệnh khác — CLI sẽ tự nhận diện phần đủ để phân biệt. Tuy vậy, trong bài viết và tài liệu chia sẻ nội bộ, nên viết đầy đủ để người đọc sau dễ hiểu, chỉ gõ tắt khi thao tác trực tiếp cho nhanh.
4. Quiz
Câu 1: Lệnh nào dùng để đóng và lưu toàn bộ một khối config trên FortiGate CLI?
- A.
next - B.
end - C.
exit - D.
save
Câu 2: Muốn xem toàn bộ cấu hình hiện tại của một khối, kể cả các tham số đang ở giá trị mặc định, dùng lệnh nào?
- A.
show - B.
show full-configuration - C.
get full-configuration - D.
diagnose config full
Câu 3: Lệnh nào thuộc nhóm "thực thi hành động" (không chỉ xem thông tin) trên FortiGate CLI?
- A.
get system status - B.
show system interface - C.
execute backup config flash - D.
diagnose sys top
Câu 4: Trong một user group đang có 3 thành viên A, B, C, lệnh set member D sẽ gây ra kết quả gì?
- A. Thêm D vào, nhóm còn A, B, C, D
- B. Thay thế toàn bộ nhóm chỉ còn lại D
- C. Báo lỗi vì D đã tồn tại
- D. Không có gì thay đổi
Câu 5: Muốn xem toàn bộ nhánh lệnh con thuộc nhóm diagnose, nên gõ lệnh nào?
- A.
get diagnose list - B.
show diagnose - C.
tree diagnose - D.
diagnose tree
👉 Đáp án
Câu 1: B — end đóng khối config hiện tại và lưu lại toàn bộ thay đổi bên trong, trong khi next chỉ lưu một entry và chuyển sang entry kế tiếp trong cùng bảng.
Câu 2: B — show mặc định chỉ hiện tham số khác mặc định; thêm full-configuration để thấy toàn bộ, kể cả giá trị mặc định.
Câu 3: C — execute backup config flash thực thi hành động sao lưu, khác với get/show/diagnose vốn chỉ đọc thông tin.
Câu 4: B — Lệnh set trên một danh sách sẽ ghi đè toàn bộ giá trị cũ; muốn giữ A, B, C và thêm D phải gõ đầy đủ set member A B C D.
Câu 5: C — tree diagnose liệt kê toàn bộ cây lệnh con thuộc nhóm diagnose, tương tự tree execute cho nhóm execute.
📚 Bài viết thuộc khóa học FortiGate của VNExperts
🧭 Điều hướng
| ⬅️ Bài trước | 🏠 Mục lục khóa học | Bài kế tiếp ➡️ |
|---|---|---|
| Cài đặt ban đầu, đăng ký FortiCare & FortiGuard | Mục lục khóa học FortiGate | Quản lý Admin: profile, quyền hạn, Trusted Hosts, 2FA |
