90 lines
2.0 KiB
Markdown
90 lines
2.0 KiB
Markdown
# 🖥️ Cisco Telnet CLI Streaming
|
|
|
|
Stream CLI của thiết bị Cisco (qua Telnet) lên trình duyệt theo thời gian thực.
|
|
Cho phép người dùng thao tác trực tiếp từ giao diện web với thiết bị như một terminal thật — hỗ trợ cả phím `TAB`, `ENTER`, `CTRL+C`, mũi tên,…
|
|
|
|
---
|
|
|
|
## 📦 Tính năng
|
|
|
|
- ✅ Kết nối trực tiếp tới thiết bị Cisco qua Telnet
|
|
- ✅ Stream CLI real-time bằng Socket.IO
|
|
- ✅ Giao diện terminal tương tác bằng [xterm.js](https://xtermjs.org/)
|
|
- ✅ Gửi từng phím người dùng gõ (raw input)
|
|
- ✅ Nhận toàn bộ phản hồi từ thiết bị Cisco và hiển thị trực tiếp
|
|
- ✅ Không cần giả lập từng lệnh hay phân tích kết quả
|
|
|
|
---
|
|
|
|
## 🧩 Kiến trúc hệ thống
|
|
|
|
```
|
|
Frontend (React + xterm.js)
|
|
│
|
|
▼
|
|
Socket.IO (real-time)
|
|
│
|
|
▼
|
|
Backend (Node.js + net.Socket)
|
|
│
|
|
▼
|
|
Cisco Device (Telnet)
|
|
```
|
|
|
|
---
|
|
|
|
## 🚀 Hướng dẫn sử dụng
|
|
|
|
### 1. Backend (Node.js)
|
|
|
|
```bash
|
|
git clone https://github.com/your-org/cisco-telnet-cli-stream.git
|
|
cd cisco-telnet-cli-stream
|
|
npm install
|
|
node server.js
|
|
```
|
|
|
|
> ⚙️ Mặc định kết nối đến thiết bị tại `172.18.8.20:23`.
|
|
> Bạn có thể sửa địa chỉ này trong file `server.js` dòng:
|
|
|
|
```js
|
|
const telnet = net.createConnection({ host: "172.18.8.20", port: 23 });
|
|
```
|
|
|
|
---
|
|
|
|
### 2. Frontend (React)
|
|
|
|
> Sử dụng Vite, CRA hoặc Next.js đều được.
|
|
|
|
```bash
|
|
cd frontend
|
|
npm install
|
|
npm run dev
|
|
```
|
|
|
|
Mặc định kết nối socket đến `http://localhost:3000`.
|
|
|
|
---
|
|
|
|
## 🛠 Cấu hình thêm
|
|
|
|
Bạn có thể mở rộng thêm:
|
|
|
|
- Gửi username/password tự động nếu gặp dòng `Username:` hoặc `Password:`
|
|
- Tạo mỗi phiên `Socket.IO` một `Telnet session` riêng
|
|
- Lưu log toàn bộ thao tác
|
|
- Phân quyền user và giới hạn thao tác
|
|
|
|
---
|
|
|
|
## 🖼 Screenshot
|
|
|
|

|
|
|
|
---
|
|
|
|
## 📄 License
|
|
|
|
MIT License © 2025 [Your Name]
|