Thông tin đăng nhập máy thực hành CSAI 2026 #1

Open
opened 2026-10-11 09:29:41 +07:00 by mikrotik · 6 comments
Owner

Các bạn, các anh chị học viên,

Mỗi buổi thực hành mình sẽ đăng thông tin máy ở bình luận mới nhất của issue này (máy thay đổi theo từng buổi, nên luôn xem bình luận mới nhất).

Cách đăng nhập

  1. Windows: mở PowerShell · macOS/Linux: mở Terminal.
  2. Gõ lệnh trong bình luận mới nhất, thay userNN bằng tài khoản mình phân cho bạn (user01 … user20).
  3. Lần đầu máy hỏi Are you sure you want to continue connecting → gõ yes rồi Enter.
  4. Nhập mật khẩu (khi gõ sẽ không hiện ký tự gì — bình thường), Enter.
  5. Vào được rồi thì gõ: cd ~/lab && ls

Gặp lỗi

  • Permission denied → sai mật khẩu, gõ lại cẩn thận.
  • REMOTE HOST IDENTIFICATION HAS CHANGED → gõ ssh-keygen -R "[HOST]:PORT" (HOST, PORT lấy ở bình luận mới nhất) rồi đăng nhập lại.
  • Máy không có lệnh ssh → giơ tay, mình hỗ trợ.

Mỗi bạn dùng đúng tài khoản của mình, không đăng nhập tài khoản người khác — bài làm được thu theo tài khoản.

Các bạn, các anh chị học viên, Mỗi buổi thực hành mình sẽ đăng thông tin máy ở **bình luận mới nhất** của issue này (máy thay đổi theo từng buổi, nên luôn xem bình luận mới nhất). **Cách đăng nhập** 1. Windows: mở **PowerShell** · macOS/Linux: mở **Terminal**. 2. Gõ lệnh trong bình luận mới nhất, thay `userNN` bằng tài khoản mình phân cho bạn (`user01` … `user20`). 3. Lần đầu máy hỏi `Are you sure you want to continue connecting` → gõ `yes` rồi Enter. 4. Nhập mật khẩu (khi gõ sẽ không hiện ký tự gì — bình thường), Enter. 5. Vào được rồi thì gõ: `cd ~/lab && ls` **Gặp lỗi** - `Permission denied` → sai mật khẩu, gõ lại cẩn thận. - `REMOTE HOST IDENTIFICATION HAS CHANGED` → gõ `ssh-keygen -R "[HOST]:PORT"` (HOST, PORT lấy ở bình luận mới nhất) rồi đăng nhập lại. - Máy không có lệnh `ssh` → giơ tay, mình hỗ trợ. Mỗi bạn dùng **đúng tài khoản của mình**, không đăng nhập tài khoản người khác — bài làm được thu theo tài khoản.
Author
Owner

Buổi thực hành 12/10/2026

ssh -p 10908 userNN@171.239.253.185
  • Tài khoản: user01 … user20 (theo số mình phân)
  • Mật khẩu: bkacad2026

Vào được rồi thì "khám" máy một chút (gõ từng dòng, xem kết quả):

Xem gì Lệnh
Mình là ai whoami
CPU của bạn nproc → ra 2: máy có nhiều nhân hơn nhưng chia cho cả lớp, mỗi bạn 2 nhân
Loại CPU lscpu | grep "Model name"
RAM free -h (cột total, available)
Ổ đĩa df -h ~
GPU nvidia-smi (tên card, bộ nhớ GPU, đang dùng bao nhiêu %)
Theo dõi trực tiếp htop (CPU/RAM) · nvtop (GPU) — bấm q để thoát
Thư viện Python đang có pip list

Phiên bản các thư viện chính:

python -c 'import numpy, pandas, sklearn, xgboost, matplotlib; [print(f"{m.__name__:12} {m.__version__}") for m in (numpy, pandas, sklearn, xgboost, matplotlib)]'

Thử chạy 1 mô hình nhỏ trên GPU (thấy GPU OK là được):

python -c 'import numpy as np, xgboost as xgb; X=np.random.rand(2000,10); y=(X[:,0]>0.5).astype(int); xgb.XGBClassifier(device="cuda", n_estimators=20).fit(X,y); print("GPU OK")'

Mẹo: mở 2 cửa sổ, một bên chạy nvtop, bên kia chạy lệnh GPU ở trên — xem GPU nhảy lên.

**Buổi thực hành 12/10/2026** ``` ssh -p 10908 userNN@171.239.253.185 ``` - Tài khoản: `user01` … `user20` (theo số mình phân) - Mật khẩu: `bkacad2026` --- **Vào được rồi thì "khám" máy một chút** (gõ từng dòng, xem kết quả): | Xem gì | Lệnh | |---|---| | Mình là ai | `whoami` | | CPU của bạn | `nproc` → ra **2**: máy có nhiều nhân hơn nhưng chia cho cả lớp, mỗi bạn 2 nhân | | Loại CPU | `lscpu \| grep "Model name"` | | RAM | `free -h` (cột `total`, `available`) | | Ổ đĩa | `df -h ~` | | GPU | `nvidia-smi` (tên card, bộ nhớ GPU, đang dùng bao nhiêu %) | | Theo dõi trực tiếp | `htop` (CPU/RAM) · `nvtop` (GPU) — bấm `q` để thoát | | Thư viện Python đang có | `pip list` | Phiên bản các thư viện chính: ``` python -c 'import numpy, pandas, sklearn, xgboost, matplotlib; [print(f"{m.__name__:12} {m.__version__}") for m in (numpy, pandas, sklearn, xgboost, matplotlib)]' ``` Thử chạy 1 mô hình nhỏ trên GPU (thấy `GPU OK` là được): ``` python -c 'import numpy as np, xgboost as xgb; X=np.random.rand(2000,10); y=(X[:,0]>0.5).astype(int); xgb.XGBClassifier(device="cuda", n_estimators=20).fit(X,y); print("GPU OK")' ``` Mẹo: mở 2 cửa sổ, một bên chạy `nvtop`, bên kia chạy lệnh GPU ở trên — xem GPU nhảy lên.
Author
Owner

Buổi thực hành 13/10/2026

  • Máy: 124.60.192.12, cổng SSH 50552
  • Tài khoản: user01 … user20 (theo số mình phân)
  • Mật khẩu: bkacad2026

Làm bài bằng Jupyter (cách mặc định)

Mỗi bước là một ô: bấm chạy là thấy kết quả ngay dưới ô, sửa số rồi chạy lại để thử.

Bước 1 — Vào máy bằng SSH có "đường hầm" tới Jupyter của bạn

Cổng Jupyter của bạn = 8800 + số tài khoản: user05 → 8805, user12 → 8812, user20 → 8820.

Trên laptop, mở Windows Terminal / PowerShell (hoặc Terminal trên macOS/Linux), gõ (thay NN bằng số tài khoản của bạn):

ssh -L 8888:127.0.0.1:88NN -p 50552 userNN@124.60.192.12

Ví dụ tài khoản user05:

ssh -L 8888:127.0.0.1:8805 -p 50552 user05@124.60.192.12

Dùng PuTTY: Host 124.60.192.12, Port 50552; trước khi bấm Open, vào Connection → SSH → Tunnels: Source port 8888, Destination 127.0.0.1:88NN → bấm Add → rồi Open và đăng nhập như bình thường.

Bước 2 — Bật Jupyter của bạn

Trong cửa sổ SSH vừa vào, gõ:

lab-jupyter

Máy in ra một đường link dạng http://localhost:8888/lab?token=... — giữ nguyên cửa sổ này mở suốt lúc làm bài (đóng cửa sổ là Jupyter tắt).

Bước 3 — Mở trình duyệt

Copy nguyên đường link đó, dán vào trình duyệt (Chrome / Edge / Firefox) trên laptop của bạn. Lần đầu mở có thể mất 1–2 phút mới hiện xong trang, cứ chờ.

Bước 4 — Làm bài

  • Bên trái: mở thư mục notebooks → bấm đúp vào bài mình chỉ định (ví dụ Lab_Python_Honeypot.ipynb).
  • Góc trên bên phải phải ghi Python (lớp CSAI).
  • Bấm vào một ô code → nhấn Shift + Enter: ô đó chạy, kết quả hiện ngay bên dưới, con trỏ nhảy sang ô kế tiếp.
  • Chạy lần lượt từ trên xuống (bước sau dùng kết quả của bước trước). Ô đang chạy hiện [*], chạy xong hiện số [1], [2]…
  • Ô có dòng ✏️ SỬA: đổi số / chữ ở đó rồi Shift + Enter lại để thử.
  • Sửa hỏng hoặc muốn chạy lại từ đầu cho sạch: menu Kernel → Restart Kernel and Run All Cells.

Gặp lỗi?

Hiện tượng Cách xử lý
Trình duyệt báo không kết nối được localhost:8888 cửa sổ SSH đã đóng, hoặc lệnh ssh thiếu phần -L 8888:127.0.0.1:88NN → vào lại SSH đúng lệnh ở Bước 1 rồi chạy lab-jupyter
Cửa sổ SSH hiện liên tục channel 3: open failed: connect failed: Connection refused Jupyter chưa chạy (hoặc đã tắt) → gõ lab-jupyter trong cửa sổ đó, mở link mới nó in ra
lab-jupyter báo "đã chạy rồi" đóng cửa sổ SSH cũ, vào lại theo Bước 1 rồi chạy lab-jupyter
Laptop báo cổng 8888 đang bận đổi 8888 thành 8889 ở cả lệnh ssh và đường link
Link báo sai token / bắt nhập mật khẩu mỗi lần chạy lab-jupyter là một token mới → dùng link của lần chạy gần nhất

Làm xong: bấm Ctrl + C trong cửa sổ SSH để tắt Jupyter.


Chỉ dùng terminal (không cần Jupyter)

ssh -p 50552 userNN@124.60.192.12

(Tuỳ chọn) "Khám" máy một chút (gõ từng dòng, xem kết quả):

Xem gì Lệnh
Mình là ai whoami
CPU của bạn nproc → ra 2: máy có nhiều nhân hơn nhưng chia cho cả lớp, mỗi bạn 2 nhân
Loại CPU lscpu | grep "Model name"
RAM free -h (cột total, available)
Ổ đĩa df -h ~
GPU nvidia-smi (tên card, bộ nhớ GPU, đang dùng bao nhiêu %)
Theo dõi trực tiếp htop (CPU/RAM) · nvtop (GPU) — bấm q để thoát
Thư viện Python đang có pip list

Phiên bản các thư viện chính:

python -c 'import numpy, pandas, sklearn, xgboost, matplotlib; [print(f"{m.__name__:12} {m.__version__}") for m in (numpy, pandas, sklearn, xgboost, matplotlib)]'

Thử chạy 1 mô hình nhỏ trên GPU (thấy GPU OK là được):

python -c 'import numpy as np, xgboost as xgb; X=np.random.rand(2000,10); y=(X[:,0]>0.5).astype(int); xgb.XGBClassifier(device="cuda", n_estimators=20).fit(X,y); print("GPU OK")'

Mẹo: mở 2 cửa sổ, một bên chạy nvtop, bên kia chạy lệnh GPU ở trên — xem GPU nhảy lên.

**Buổi thực hành 13/10/2026** - Máy: `124.60.192.12`, cổng SSH `50552` - Tài khoản: `user01` … `user20` (theo số mình phân) - Mật khẩu: `bkacad2026` --- ## Làm bài bằng Jupyter (cách mặc định) Mỗi bước là **một ô**: bấm chạy là thấy kết quả ngay dưới ô, sửa số rồi chạy lại để thử. ### Bước 1 — Vào máy bằng SSH có "đường hầm" tới Jupyter của bạn Cổng Jupyter của bạn = **8800 + số tài khoản**: `user05` → `8805`, `user12` → `8812`, `user20` → `8820`. Trên laptop, mở **Windows Terminal / PowerShell** (hoặc Terminal trên macOS/Linux), gõ (thay `NN` bằng số tài khoản của bạn): ``` ssh -L 8888:127.0.0.1:88NN -p 50552 userNN@124.60.192.12 ``` Ví dụ tài khoản `user05`: ``` ssh -L 8888:127.0.0.1:8805 -p 50552 user05@124.60.192.12 ``` Dùng **PuTTY**: Host `124.60.192.12`, Port `50552`; trước khi bấm Open, vào *Connection → SSH → Tunnels*: **Source port** `8888`, **Destination** `127.0.0.1:88NN` → bấm **Add** → rồi Open và đăng nhập như bình thường. ### Bước 2 — Bật Jupyter của bạn Trong cửa sổ SSH vừa vào, gõ: ``` lab-jupyter ``` Máy in ra một đường link dạng `http://localhost:8888/lab?token=...` — **giữ nguyên cửa sổ này mở** suốt lúc làm bài (đóng cửa sổ là Jupyter tắt). ### Bước 3 — Mở trình duyệt Copy **nguyên đường link** đó, dán vào trình duyệt (Chrome / Edge / Firefox) **trên laptop của bạn**. Lần đầu mở có thể mất **1–2 phút** mới hiện xong trang, cứ chờ. ### Bước 4 — Làm bài - Bên trái: mở thư mục **`notebooks`** → bấm đúp vào bài mình chỉ định (ví dụ **`Lab_Python_Honeypot.ipynb`**). - Góc trên bên phải phải ghi **Python (lớp CSAI)**. - Bấm vào một ô code → nhấn **Shift + Enter**: ô đó chạy, kết quả hiện ngay bên dưới, con trỏ nhảy sang ô kế tiếp. - Chạy **lần lượt từ trên xuống** (bước sau dùng kết quả của bước trước). Ô đang chạy hiện `[*]`, chạy xong hiện số `[1]`, `[2]`… - Ô có dòng **✏️ SỬA**: đổi số / chữ ở đó rồi Shift + Enter lại để thử. - Sửa hỏng hoặc muốn chạy lại từ đầu cho sạch: menu **Kernel → Restart Kernel and Run All Cells**. ### Gặp lỗi? | Hiện tượng | Cách xử lý | |---|---| | Trình duyệt báo không kết nối được `localhost:8888` | cửa sổ SSH đã đóng, hoặc lệnh `ssh` thiếu phần `-L 8888:127.0.0.1:88NN` → vào lại SSH đúng lệnh ở Bước 1 rồi chạy `lab-jupyter` | | Cửa sổ SSH hiện liên tục `channel 3: open failed: connect failed: Connection refused` | Jupyter chưa chạy (hoặc đã tắt) → gõ `lab-jupyter` trong cửa sổ đó, mở **link mới** nó in ra | | `lab-jupyter` báo "đã chạy rồi" | đóng cửa sổ SSH cũ, vào lại theo Bước 1 rồi chạy `lab-jupyter` | | Laptop báo cổng 8888 đang bận | đổi `8888` thành `8889` ở **cả** lệnh `ssh` và đường link | | Link báo sai token / bắt nhập mật khẩu | mỗi lần chạy `lab-jupyter` là một token mới → dùng link của **lần chạy gần nhất** | Làm xong: bấm **Ctrl + C** trong cửa sổ SSH để tắt Jupyter. --- ## Chỉ dùng terminal (không cần Jupyter) ``` ssh -p 50552 userNN@124.60.192.12 ``` **(Tuỳ chọn) "Khám" máy một chút** (gõ từng dòng, xem kết quả): | Xem gì | Lệnh | |---|---| | Mình là ai | `whoami` | | CPU của bạn | `nproc` → ra **2**: máy có nhiều nhân hơn nhưng chia cho cả lớp, mỗi bạn 2 nhân | | Loại CPU | `lscpu \| grep "Model name"` | | RAM | `free -h` (cột `total`, `available`) | | Ổ đĩa | `df -h ~` | | GPU | `nvidia-smi` (tên card, bộ nhớ GPU, đang dùng bao nhiêu %) | | Theo dõi trực tiếp | `htop` (CPU/RAM) · `nvtop` (GPU) — bấm `q` để thoát | | Thư viện Python đang có | `pip list` | Phiên bản các thư viện chính: ``` python -c 'import numpy, pandas, sklearn, xgboost, matplotlib; [print(f"{m.__name__:12} {m.__version__}") for m in (numpy, pandas, sklearn, xgboost, matplotlib)]' ``` Thử chạy 1 mô hình nhỏ trên GPU (thấy `GPU OK` là được): ``` python -c 'import numpy as np, xgboost as xgb; X=np.random.rand(2000,10); y=(X[:,0]>0.5).astype(int); xgb.XGBClassifier(device="cuda", n_estimators=20).fit(X,y); print("GPU OK")' ``` Mẹo: mở 2 cửa sổ, một bên chạy `nvtop`, bên kia chạy lệnh GPU ở trên — xem GPU nhảy lên.
Author
Owner

Buổi thực hành 14/10/2026

  • Máy: 122.59.250.166, cổng SSH 41659
  • Tài khoản: user01 … user20 (theo số mình phân)
  • Mật khẩu: bkacad2026

Làm bài bằng Jupyter (cách mặc định)

Mỗi bước là một ô: bấm chạy là thấy kết quả ngay dưới ô, sửa số rồi chạy lại để thử.

Bước 1 — Vào máy bằng SSH có "đường hầm" tới Jupyter của bạn

Cổng Jupyter của bạn = 8800 + số tài khoản: user05 → 8805, user12 → 8812, user20 → 8820.

Trên laptop, mở Windows Terminal / PowerShell (hoặc Terminal trên macOS/Linux), gõ (thay NN bằng số tài khoản của bạn):

ssh -L 8888:127.0.0.1:88NN -p 41659 userNN@122.59.250.166

Ví dụ tài khoản user05:

ssh -L 8888:127.0.0.1:8805 -p 41659 user05@122.59.250.166

Dùng PuTTY: Host 122.59.250.166, Port 41659; trước khi bấm Open, vào Connection → SSH → Tunnels: Source port 8888, Destination 127.0.0.1:88NN → bấm Add → rồi Open và đăng nhập như bình thường.

Bước 2 — Bật Jupyter của bạn

Trong cửa sổ SSH vừa vào, gõ:

lab-jupyter

Máy in ra một đường link dạng http://localhost:8888/lab?token=... — giữ nguyên cửa sổ này mở suốt lúc làm bài (đóng cửa sổ là Jupyter tắt).

Bước 3 — Mở trình duyệt

Copy nguyên đường link đó, dán vào trình duyệt (Chrome / Edge / Firefox) trên laptop của bạn. Lần đầu mở có thể mất 1–2 phút mới hiện xong trang, cứ chờ.

Bước 4 — Làm bài

  • Bên trái: mở thư mục notebooks → bấm đúp vào bài mình chỉ định (ví dụ Lab_Python_Honeypot.ipynb).
  • Góc trên bên phải phải ghi Python (lớp CSAI).
  • Bấm vào một ô code → nhấn Shift + Enter: ô đó chạy, kết quả hiện ngay bên dưới, con trỏ nhảy sang ô kế tiếp.
  • Chạy lần lượt từ trên xuống (bước sau dùng kết quả của bước trước). Ô đang chạy hiện [*], chạy xong hiện số [1], [2]…
  • Ô có dòng ✏️ SỬA: đổi số / chữ ở đó rồi Shift + Enter lại để thử.
  • Sửa hỏng hoặc muốn chạy lại từ đầu cho sạch: menu Kernel → Restart Kernel and Run All Cells.

Gặp lỗi?

Hiện tượng Cách xử lý
Trình duyệt báo không kết nối được localhost:8888 cửa sổ SSH đã đóng, hoặc lệnh ssh thiếu phần -L 8888:127.0.0.1:88NN → vào lại SSH đúng lệnh ở Bước 1 rồi chạy lab-jupyter
Cửa sổ SSH hiện liên tục channel 3: open failed: connect failed: Connection refused Jupyter chưa chạy (hoặc đã tắt) → gõ lab-jupyter trong cửa sổ đó, mở link mới nó in ra
lab-jupyter báo "đã chạy rồi" đóng cửa sổ SSH cũ, vào lại theo Bước 1 rồi chạy lab-jupyter
Laptop báo cổng 8888 đang bận đổi 8888 thành 8889 ở cả lệnh ssh và đường link
Link báo sai token / bắt nhập mật khẩu mỗi lần chạy lab-jupyter là một token mới → dùng link của lần chạy gần nhất

Làm xong: bấm Ctrl + C trong cửa sổ SSH để tắt Jupyter.


Chỉ dùng terminal (không cần Jupyter)

ssh -p 41659 userNN@122.59.250.166

(Tuỳ chọn) "Khám" máy một chút (gõ từng dòng, xem kết quả):

Xem gì Lệnh
Mình là ai whoami
CPU của bạn nproc → ra 2: máy có nhiều nhân hơn nhưng chia cho cả lớp, mỗi bạn 2 nhân
Loại CPU lscpu | grep "Model name"
RAM free -h (cột total, available)
Ổ đĩa df -h ~
GPU nvidia-smi (tên card, bộ nhớ GPU, đang dùng bao nhiêu %)
Theo dõi trực tiếp htop (CPU/RAM) · nvtop (GPU) — bấm q để thoát
Thư viện Python đang có pip list

Phiên bản các thư viện chính:

python -c 'import numpy, pandas, sklearn, xgboost, matplotlib; [print(f"{m.__name__:12} {m.__version__}") for m in (numpy, pandas, sklearn, xgboost, matplotlib)]'

Thử chạy 1 mô hình nhỏ trên GPU (thấy GPU OK là được):

python -c 'import numpy as np, xgboost as xgb; X=np.random.rand(2000,10); y=(X[:,0]>0.5).astype(int); xgb.XGBClassifier(device="cuda", n_estimators=20).fit(X,y); print("GPU OK")'

Mẹo: mở 2 cửa sổ, một bên chạy nvtop, bên kia chạy lệnh GPU ở trên — xem GPU nhảy lên.

**Buổi thực hành 14/10/2026** - Máy: `122.59.250.166`, cổng SSH `41659` - Tài khoản: `user01` … `user20` (theo số mình phân) - Mật khẩu: `bkacad2026` --- ## Làm bài bằng Jupyter (cách mặc định) Mỗi bước là **một ô**: bấm chạy là thấy kết quả ngay dưới ô, sửa số rồi chạy lại để thử. ### Bước 1 — Vào máy bằng SSH có "đường hầm" tới Jupyter của bạn Cổng Jupyter của bạn = **8800 + số tài khoản**: `user05` → `8805`, `user12` → `8812`, `user20` → `8820`. Trên laptop, mở **Windows Terminal / PowerShell** (hoặc Terminal trên macOS/Linux), gõ (thay `NN` bằng số tài khoản của bạn): ``` ssh -L 8888:127.0.0.1:88NN -p 41659 userNN@122.59.250.166 ``` Ví dụ tài khoản `user05`: ``` ssh -L 8888:127.0.0.1:8805 -p 41659 user05@122.59.250.166 ``` Dùng **PuTTY**: Host `122.59.250.166`, Port `41659`; trước khi bấm Open, vào *Connection → SSH → Tunnels*: **Source port** `8888`, **Destination** `127.0.0.1:88NN` → bấm **Add** → rồi Open và đăng nhập như bình thường. ### Bước 2 — Bật Jupyter của bạn Trong cửa sổ SSH vừa vào, gõ: ``` lab-jupyter ``` Máy in ra một đường link dạng `http://localhost:8888/lab?token=...` — **giữ nguyên cửa sổ này mở** suốt lúc làm bài (đóng cửa sổ là Jupyter tắt). ### Bước 3 — Mở trình duyệt Copy **nguyên đường link** đó, dán vào trình duyệt (Chrome / Edge / Firefox) **trên laptop của bạn**. Lần đầu mở có thể mất **1–2 phút** mới hiện xong trang, cứ chờ. ### Bước 4 — Làm bài - Bên trái: mở thư mục **`notebooks`** → bấm đúp vào bài mình chỉ định (ví dụ **`Lab_Python_Honeypot.ipynb`**). - Góc trên bên phải phải ghi **Python (lớp CSAI)**. - Bấm vào một ô code → nhấn **Shift + Enter**: ô đó chạy, kết quả hiện ngay bên dưới, con trỏ nhảy sang ô kế tiếp. - Chạy **lần lượt từ trên xuống** (bước sau dùng kết quả của bước trước). Ô đang chạy hiện `[*]`, chạy xong hiện số `[1]`, `[2]`… - Ô có dòng **✏️ SỬA**: đổi số / chữ ở đó rồi Shift + Enter lại để thử. - Sửa hỏng hoặc muốn chạy lại từ đầu cho sạch: menu **Kernel → Restart Kernel and Run All Cells**. ### Gặp lỗi? | Hiện tượng | Cách xử lý | |---|---| | Trình duyệt báo không kết nối được `localhost:8888` | cửa sổ SSH đã đóng, hoặc lệnh `ssh` thiếu phần `-L 8888:127.0.0.1:88NN` → vào lại SSH đúng lệnh ở Bước 1 rồi chạy `lab-jupyter` | | Cửa sổ SSH hiện liên tục `channel 3: open failed: connect failed: Connection refused` | Jupyter chưa chạy (hoặc đã tắt) → gõ `lab-jupyter` trong cửa sổ đó, mở **link mới** nó in ra | | `lab-jupyter` báo "đã chạy rồi" | đóng cửa sổ SSH cũ, vào lại theo Bước 1 rồi chạy `lab-jupyter` | | Laptop báo cổng 8888 đang bận | đổi `8888` thành `8889` ở **cả** lệnh `ssh` và đường link | | Link báo sai token / bắt nhập mật khẩu | mỗi lần chạy `lab-jupyter` là một token mới → dùng link của **lần chạy gần nhất** | Làm xong: bấm **Ctrl + C** trong cửa sổ SSH để tắt Jupyter. --- ## Chỉ dùng terminal (không cần Jupyter) ``` ssh -p 41659 userNN@122.59.250.166 ``` **(Tuỳ chọn) "Khám" máy một chút** (gõ từng dòng, xem kết quả): | Xem gì | Lệnh | |---|---| | Mình là ai | `whoami` | | CPU của bạn | `nproc` → ra **2**: máy có nhiều nhân hơn nhưng chia cho cả lớp, mỗi bạn 2 nhân | | Loại CPU | `lscpu \| grep "Model name"` | | RAM | `free -h` (cột `total`, `available`) | | Ổ đĩa | `df -h ~` | | GPU | `nvidia-smi` (tên card, bộ nhớ GPU, đang dùng bao nhiêu %) | | Theo dõi trực tiếp | `htop` (CPU/RAM) · `nvtop` (GPU) — bấm `q` để thoát | | Thư viện Python đang có | `pip list` | Phiên bản các thư viện chính: ``` python -c 'import numpy, pandas, sklearn, xgboost, matplotlib; [print(f"{m.__name__:12} {m.__version__}") for m in (numpy, pandas, sklearn, xgboost, matplotlib)]' ``` Thử chạy 1 mô hình nhỏ trên GPU (thấy `GPU OK` là được): ``` python -c 'import numpy as np, xgboost as xgb; X=np.random.rand(2000,10); y=(X[:,0]>0.5).astype(int); xgb.XGBClassifier(device="cuda", n_estimators=20).fit(X,y); print("GPU OK")' ``` Mẹo: mở 2 cửa sổ, một bên chạy `nvtop`, bên kia chạy lệnh GPU ở trên — xem GPU nhảy lên.
Author
Owner

Buổi thực hành 15/10/2026

  • Máy: 1.208.108.242, cổng SSH 58470
  • Tài khoản: user01 … user20 (theo số mình phân)
  • Mật khẩu: bkacad2026

Làm bài bằng Jupyter (cách mặc định)

Mỗi bước là một ô: bấm chạy là thấy kết quả ngay dưới ô, sửa số rồi chạy lại để thử.

Bước 1 — Vào máy bằng SSH có "đường hầm" tới Jupyter của bạn

Cổng Jupyter của bạn = 8800 + số tài khoản: user05 → 8805, user12 → 8812, user20 → 8820.

Trên laptop, mở Windows Terminal / PowerShell (hoặc Terminal trên macOS/Linux), gõ (thay NN bằng số tài khoản của bạn):

ssh -L 8888:127.0.0.1:88NN -p 58470 userNN@1.208.108.242

Ví dụ tài khoản user05:

ssh -L 8888:127.0.0.1:8805 -p 58470 user05@1.208.108.242

Dùng PuTTY: Host 1.208.108.242, Port 58470; trước khi bấm Open, vào Connection → SSH → Tunnels: Source port 8888, Destination 127.0.0.1:88NN → bấm Add → rồi Open và đăng nhập như bình thường.

Bước 2 — Bật Jupyter của bạn

Trong cửa sổ SSH vừa vào, gõ:

lab-jupyter

Máy in ra một đường link dạng http://localhost:8888/lab?token=... — giữ nguyên cửa sổ này mở suốt lúc làm bài (đóng cửa sổ là Jupyter tắt).

Bước 3 — Mở trình duyệt

Copy nguyên đường link đó, dán vào trình duyệt (Chrome / Edge / Firefox) trên laptop của bạn. Lần đầu mở có thể mất 1–2 phút mới hiện xong trang, cứ chờ.

Bước 4 — Làm bài

  • Bên trái: mở thư mục notebooks → bấm đúp vào bài mình chỉ định (ví dụ Lab_Python_Honeypot.ipynb).
  • Góc trên bên phải phải ghi Python (lớp CSAI).
  • Bấm vào một ô code → nhấn Shift + Enter: ô đó chạy, kết quả hiện ngay bên dưới, con trỏ nhảy sang ô kế tiếp.
  • Chạy lần lượt từ trên xuống (bước sau dùng kết quả của bước trước). Ô đang chạy hiện [*], chạy xong hiện số [1], [2]…
  • Ô có dòng ✏️ SỬA: đổi số / chữ ở đó rồi Shift + Enter lại để thử.
  • Sửa hỏng hoặc muốn chạy lại từ đầu cho sạch: menu Kernel → Restart Kernel and Run All Cells.

Gặp lỗi?

Hiện tượng Cách xử lý
Trình duyệt báo không kết nối được localhost:8888 cửa sổ SSH đã đóng, hoặc lệnh ssh thiếu phần -L 8888:127.0.0.1:88NN → vào lại SSH đúng lệnh ở Bước 1 rồi chạy lab-jupyter
Cửa sổ SSH hiện liên tục channel 3: open failed: connect failed: Connection refused Jupyter chưa chạy (hoặc đã tắt) → gõ lab-jupyter trong cửa sổ đó, mở link mới nó in ra
lab-jupyter báo "đã chạy rồi" đóng cửa sổ SSH cũ, vào lại theo Bước 1 rồi chạy lab-jupyter
Laptop báo cổng 8888 đang bận đổi 8888 thành 8889 ở cả lệnh ssh và đường link
Link báo sai token / bắt nhập mật khẩu mỗi lần chạy lab-jupyter là một token mới → dùng link của lần chạy gần nhất

Làm xong: bấm Ctrl + C trong cửa sổ SSH để tắt Jupyter.


Chỉ dùng terminal (không cần Jupyter)

ssh -p 58470 userNN@1.208.108.242

(Tuỳ chọn) "Khám" máy một chút (gõ từng dòng, xem kết quả):

Xem gì Lệnh
Mình là ai whoami
CPU của bạn nproc → ra 2: máy có nhiều nhân hơn nhưng chia cho cả lớp, mỗi bạn 2 nhân
Loại CPU lscpu | grep "Model name"
RAM free -h (cột total, available)
Ổ đĩa df -h ~
GPU nvidia-smi (tên card, bộ nhớ GPU, đang dùng bao nhiêu %)
Theo dõi trực tiếp htop (CPU/RAM) · nvtop (GPU) — bấm q để thoát
Thư viện Python đang có pip list

Phiên bản các thư viện chính:

python -c 'import numpy, pandas, sklearn, xgboost, matplotlib; [print(f"{m.__name__:12} {m.__version__}") for m in (numpy, pandas, sklearn, xgboost, matplotlib)]'

Thử chạy 1 mô hình nhỏ trên GPU (thấy GPU OK là được):

python -c 'import numpy as np, xgboost as xgb; X=np.random.rand(2000,10); y=(X[:,0]>0.5).astype(int); xgb.XGBClassifier(device="cuda", n_estimators=20).fit(X,y); print("GPU OK")'

Mẹo: mở 2 cửa sổ, một bên chạy nvtop, bên kia chạy lệnh GPU ở trên — xem GPU nhảy lên.

**Buổi thực hành 15/10/2026** - Máy: `1.208.108.242`, cổng SSH `58470` - Tài khoản: `user01` … `user20` (theo số mình phân) - Mật khẩu: `bkacad2026` --- ## Làm bài bằng Jupyter (cách mặc định) Mỗi bước là **một ô**: bấm chạy là thấy kết quả ngay dưới ô, sửa số rồi chạy lại để thử. ### Bước 1 — Vào máy bằng SSH có "đường hầm" tới Jupyter của bạn Cổng Jupyter của bạn = **8800 + số tài khoản**: `user05` → `8805`, `user12` → `8812`, `user20` → `8820`. Trên laptop, mở **Windows Terminal / PowerShell** (hoặc Terminal trên macOS/Linux), gõ (thay `NN` bằng số tài khoản của bạn): ``` ssh -L 8888:127.0.0.1:88NN -p 58470 userNN@1.208.108.242 ``` Ví dụ tài khoản `user05`: ``` ssh -L 8888:127.0.0.1:8805 -p 58470 user05@1.208.108.242 ``` Dùng **PuTTY**: Host `1.208.108.242`, Port `58470`; trước khi bấm Open, vào *Connection → SSH → Tunnels*: **Source port** `8888`, **Destination** `127.0.0.1:88NN` → bấm **Add** → rồi Open và đăng nhập như bình thường. ### Bước 2 — Bật Jupyter của bạn Trong cửa sổ SSH vừa vào, gõ: ``` lab-jupyter ``` Máy in ra một đường link dạng `http://localhost:8888/lab?token=...` — **giữ nguyên cửa sổ này mở** suốt lúc làm bài (đóng cửa sổ là Jupyter tắt). ### Bước 3 — Mở trình duyệt Copy **nguyên đường link** đó, dán vào trình duyệt (Chrome / Edge / Firefox) **trên laptop của bạn**. Lần đầu mở có thể mất **1–2 phút** mới hiện xong trang, cứ chờ. ### Bước 4 — Làm bài - Bên trái: mở thư mục **`notebooks`** → bấm đúp vào bài mình chỉ định (ví dụ **`Lab_Python_Honeypot.ipynb`**). - Góc trên bên phải phải ghi **Python (lớp CSAI)**. - Bấm vào một ô code → nhấn **Shift + Enter**: ô đó chạy, kết quả hiện ngay bên dưới, con trỏ nhảy sang ô kế tiếp. - Chạy **lần lượt từ trên xuống** (bước sau dùng kết quả của bước trước). Ô đang chạy hiện `[*]`, chạy xong hiện số `[1]`, `[2]`… - Ô có dòng **✏️ SỬA**: đổi số / chữ ở đó rồi Shift + Enter lại để thử. - Sửa hỏng hoặc muốn chạy lại từ đầu cho sạch: menu **Kernel → Restart Kernel and Run All Cells**. ### Gặp lỗi? | Hiện tượng | Cách xử lý | |---|---| | Trình duyệt báo không kết nối được `localhost:8888` | cửa sổ SSH đã đóng, hoặc lệnh `ssh` thiếu phần `-L 8888:127.0.0.1:88NN` → vào lại SSH đúng lệnh ở Bước 1 rồi chạy `lab-jupyter` | | Cửa sổ SSH hiện liên tục `channel 3: open failed: connect failed: Connection refused` | Jupyter chưa chạy (hoặc đã tắt) → gõ `lab-jupyter` trong cửa sổ đó, mở **link mới** nó in ra | | `lab-jupyter` báo "đã chạy rồi" | đóng cửa sổ SSH cũ, vào lại theo Bước 1 rồi chạy `lab-jupyter` | | Laptop báo cổng 8888 đang bận | đổi `8888` thành `8889` ở **cả** lệnh `ssh` và đường link | | Link báo sai token / bắt nhập mật khẩu | mỗi lần chạy `lab-jupyter` là một token mới → dùng link của **lần chạy gần nhất** | Làm xong: bấm **Ctrl + C** trong cửa sổ SSH để tắt Jupyter. --- ## Chỉ dùng terminal (không cần Jupyter) ``` ssh -p 58470 userNN@1.208.108.242 ``` **(Tuỳ chọn) "Khám" máy một chút** (gõ từng dòng, xem kết quả): | Xem gì | Lệnh | |---|---| | Mình là ai | `whoami` | | CPU của bạn | `nproc` → ra **2**: máy có nhiều nhân hơn nhưng chia cho cả lớp, mỗi bạn 2 nhân | | Loại CPU | `lscpu \| grep "Model name"` | | RAM | `free -h` (cột `total`, `available`) | | Ổ đĩa | `df -h ~` | | GPU | `nvidia-smi` (tên card, bộ nhớ GPU, đang dùng bao nhiêu %) | | Theo dõi trực tiếp | `htop` (CPU/RAM) · `nvtop` (GPU) — bấm `q` để thoát | | Thư viện Python đang có | `pip list` | Phiên bản các thư viện chính: ``` python -c 'import numpy, pandas, sklearn, xgboost, matplotlib; [print(f"{m.__name__:12} {m.__version__}") for m in (numpy, pandas, sklearn, xgboost, matplotlib)]' ``` Thử chạy 1 mô hình nhỏ trên GPU (thấy `GPU OK` là được): ``` python -c 'import numpy as np, xgboost as xgb; X=np.random.rand(2000,10); y=(X[:,0]>0.5).astype(int); xgb.XGBClassifier(device="cuda", n_estimators=20).fit(X,y); print("GPU OK")' ``` Mẹo: mở 2 cửa sổ, một bên chạy `nvtop`, bên kia chạy lệnh GPU ở trên — xem GPU nhảy lên.
Author
Owner

Buổi thực hành 15/10/2026

  • Máy: 1.208.108.242, cổng SSH 40094
  • Tài khoản: user01 … user20 (theo số mình phân)
  • Mật khẩu: bkacad2026

Làm bài bằng Jupyter (cách mặc định)

Mỗi bước là một ô: bấm chạy là thấy kết quả ngay dưới ô, sửa số rồi chạy lại để thử.

Bước 1 — Vào máy bằng SSH có "đường hầm" tới Jupyter của bạn

Cổng Jupyter của bạn = 8800 + số tài khoản: user05 → 8805, user12 → 8812, user20 → 8820.

Trên laptop, mở Windows Terminal / PowerShell (hoặc Terminal trên macOS/Linux), gõ (thay NN bằng số tài khoản của bạn):

ssh -L 8888:127.0.0.1:88NN -p 40094 userNN@1.208.108.242

Ví dụ tài khoản user05:

ssh -L 8888:127.0.0.1:8805 -p 40094 user05@1.208.108.242

Dùng PuTTY: Host 1.208.108.242, Port 40094; trước khi bấm Open, vào Connection → SSH → Tunnels: Source port 8888, Destination 127.0.0.1:88NN → bấm Add → rồi Open và đăng nhập như bình thường.

Bước 2 — Bật Jupyter của bạn

Trong cửa sổ SSH vừa vào, gõ:

lab-jupyter

Máy in ra một đường link dạng http://localhost:8888/lab?token=... — giữ nguyên cửa sổ này mở suốt lúc làm bài (đóng cửa sổ là Jupyter tắt).

Bước 3 — Mở trình duyệt

Copy nguyên đường link đó, dán vào trình duyệt (Chrome / Edge / Firefox) trên laptop của bạn. Lần đầu mở có thể mất 1–2 phút mới hiện xong trang, cứ chờ.

Bước 4 — Làm bài

  • Bên trái: mở thư mục notebooks → bấm đúp vào bài mình chỉ định (ví dụ Lab_Python_Honeypot.ipynb).
  • Góc trên bên phải phải ghi Python (lớp CSAI).
  • Bấm vào một ô code → nhấn Shift + Enter: ô đó chạy, kết quả hiện ngay bên dưới, con trỏ nhảy sang ô kế tiếp.
  • Chạy lần lượt từ trên xuống (bước sau dùng kết quả của bước trước). Ô đang chạy hiện [*], chạy xong hiện số [1], [2]…
  • Ô có dòng ✏️ SỬA: đổi số / chữ ở đó rồi Shift + Enter lại để thử.
  • Sửa hỏng hoặc muốn chạy lại từ đầu cho sạch: menu Kernel → Restart Kernel and Run All Cells.

Gặp lỗi?

Hiện tượng Cách xử lý
Trình duyệt báo không kết nối được localhost:8888 cửa sổ SSH đã đóng, hoặc lệnh ssh thiếu phần -L 8888:127.0.0.1:88NN → vào lại SSH đúng lệnh ở Bước 1 rồi chạy lab-jupyter
Cửa sổ SSH hiện liên tục channel 3: open failed: connect failed: Connection refused Jupyter chưa chạy (hoặc đã tắt) → gõ lab-jupyter trong cửa sổ đó, mở link mới nó in ra
lab-jupyter báo "đã chạy rồi" đóng cửa sổ SSH cũ, vào lại theo Bước 1 rồi chạy lab-jupyter
Laptop báo cổng 8888 đang bận đổi 8888 thành 8889 ở cả lệnh ssh và đường link
Link báo sai token / bắt nhập mật khẩu mỗi lần chạy lab-jupyter là một token mới → dùng link của lần chạy gần nhất

Làm xong: bấm Ctrl + C trong cửa sổ SSH để tắt Jupyter.


Chỉ dùng terminal (không cần Jupyter)

ssh -p 40094 userNN@1.208.108.242

(Tuỳ chọn) "Khám" máy một chút (gõ từng dòng, xem kết quả):

Xem gì Lệnh
Mình là ai whoami
CPU của bạn nproc → ra 2: máy có nhiều nhân hơn nhưng chia cho cả lớp, mỗi bạn 2 nhân
Loại CPU lscpu | grep "Model name"
RAM free -h (cột total, available)
Ổ đĩa df -h ~
GPU nvidia-smi (tên card, bộ nhớ GPU, đang dùng bao nhiêu %)
Theo dõi trực tiếp htop (CPU/RAM) · nvtop (GPU) — bấm q để thoát
Thư viện Python đang có pip list

Phiên bản các thư viện chính:

python -c 'import numpy, pandas, sklearn, xgboost, matplotlib; [print(f"{m.__name__:12} {m.__version__}") for m in (numpy, pandas, sklearn, xgboost, matplotlib)]'

Thử chạy 1 mô hình nhỏ trên GPU (thấy GPU OK là được):

python -c 'import numpy as np, xgboost as xgb; X=np.random.rand(2000,10); y=(X[:,0]>0.5).astype(int); xgb.XGBClassifier(device="cuda", n_estimators=20).fit(X,y); print("GPU OK")'

Mẹo: mở 2 cửa sổ, một bên chạy nvtop, bên kia chạy lệnh GPU ở trên — xem GPU nhảy lên.

**Buổi thực hành 15/10/2026** - Máy: `1.208.108.242`, cổng SSH `40094` - Tài khoản: `user01` … `user20` (theo số mình phân) - Mật khẩu: `bkacad2026` --- ## Làm bài bằng Jupyter (cách mặc định) Mỗi bước là **một ô**: bấm chạy là thấy kết quả ngay dưới ô, sửa số rồi chạy lại để thử. ### Bước 1 — Vào máy bằng SSH có "đường hầm" tới Jupyter của bạn Cổng Jupyter của bạn = **8800 + số tài khoản**: `user05` → `8805`, `user12` → `8812`, `user20` → `8820`. Trên laptop, mở **Windows Terminal / PowerShell** (hoặc Terminal trên macOS/Linux), gõ (thay `NN` bằng số tài khoản của bạn): ``` ssh -L 8888:127.0.0.1:88NN -p 40094 userNN@1.208.108.242 ``` Ví dụ tài khoản `user05`: ``` ssh -L 8888:127.0.0.1:8805 -p 40094 user05@1.208.108.242 ``` Dùng **PuTTY**: Host `1.208.108.242`, Port `40094`; trước khi bấm Open, vào *Connection → SSH → Tunnels*: **Source port** `8888`, **Destination** `127.0.0.1:88NN` → bấm **Add** → rồi Open và đăng nhập như bình thường. ### Bước 2 — Bật Jupyter của bạn Trong cửa sổ SSH vừa vào, gõ: ``` lab-jupyter ``` Máy in ra một đường link dạng `http://localhost:8888/lab?token=...` — **giữ nguyên cửa sổ này mở** suốt lúc làm bài (đóng cửa sổ là Jupyter tắt). ### Bước 3 — Mở trình duyệt Copy **nguyên đường link** đó, dán vào trình duyệt (Chrome / Edge / Firefox) **trên laptop của bạn**. Lần đầu mở có thể mất **1–2 phút** mới hiện xong trang, cứ chờ. ### Bước 4 — Làm bài - Bên trái: mở thư mục **`notebooks`** → bấm đúp vào bài mình chỉ định (ví dụ **`Lab_Python_Honeypot.ipynb`**). - Góc trên bên phải phải ghi **Python (lớp CSAI)**. - Bấm vào một ô code → nhấn **Shift + Enter**: ô đó chạy, kết quả hiện ngay bên dưới, con trỏ nhảy sang ô kế tiếp. - Chạy **lần lượt từ trên xuống** (bước sau dùng kết quả của bước trước). Ô đang chạy hiện `[*]`, chạy xong hiện số `[1]`, `[2]`… - Ô có dòng **✏️ SỬA**: đổi số / chữ ở đó rồi Shift + Enter lại để thử. - Sửa hỏng hoặc muốn chạy lại từ đầu cho sạch: menu **Kernel → Restart Kernel and Run All Cells**. ### Gặp lỗi? | Hiện tượng | Cách xử lý | |---|---| | Trình duyệt báo không kết nối được `localhost:8888` | cửa sổ SSH đã đóng, hoặc lệnh `ssh` thiếu phần `-L 8888:127.0.0.1:88NN` → vào lại SSH đúng lệnh ở Bước 1 rồi chạy `lab-jupyter` | | Cửa sổ SSH hiện liên tục `channel 3: open failed: connect failed: Connection refused` | Jupyter chưa chạy (hoặc đã tắt) → gõ `lab-jupyter` trong cửa sổ đó, mở **link mới** nó in ra | | `lab-jupyter` báo "đã chạy rồi" | đóng cửa sổ SSH cũ, vào lại theo Bước 1 rồi chạy `lab-jupyter` | | Laptop báo cổng 8888 đang bận | đổi `8888` thành `8889` ở **cả** lệnh `ssh` và đường link | | Link báo sai token / bắt nhập mật khẩu | mỗi lần chạy `lab-jupyter` là một token mới → dùng link của **lần chạy gần nhất** | Làm xong: bấm **Ctrl + C** trong cửa sổ SSH để tắt Jupyter. --- ## Chỉ dùng terminal (không cần Jupyter) ``` ssh -p 40094 userNN@1.208.108.242 ``` **(Tuỳ chọn) "Khám" máy một chút** (gõ từng dòng, xem kết quả): | Xem gì | Lệnh | |---|---| | Mình là ai | `whoami` | | CPU của bạn | `nproc` → ra **2**: máy có nhiều nhân hơn nhưng chia cho cả lớp, mỗi bạn 2 nhân | | Loại CPU | `lscpu \| grep "Model name"` | | RAM | `free -h` (cột `total`, `available`) | | Ổ đĩa | `df -h ~` | | GPU | `nvidia-smi` (tên card, bộ nhớ GPU, đang dùng bao nhiêu %) | | Theo dõi trực tiếp | `htop` (CPU/RAM) · `nvtop` (GPU) — bấm `q` để thoát | | Thư viện Python đang có | `pip list` | Phiên bản các thư viện chính: ``` python -c 'import numpy, pandas, sklearn, xgboost, matplotlib; [print(f"{m.__name__:12} {m.__version__}") for m in (numpy, pandas, sklearn, xgboost, matplotlib)]' ``` Thử chạy 1 mô hình nhỏ trên GPU (thấy `GPU OK` là được): ``` python -c 'import numpy as np, xgboost as xgb; X=np.random.rand(2000,10); y=(X[:,0]>0.5).astype(int); xgb.XGBClassifier(device="cuda", n_estimators=20).fit(X,y); print("GPU OK")' ``` Mẹo: mở 2 cửa sổ, một bên chạy `nvtop`, bên kia chạy lệnh GPU ở trên — xem GPU nhảy lên.
Author
Owner

Buổi thực hành 16/10/2026

  • Máy: 202.122.49.242, cổng SSH 40508
  • Tài khoản: user01 … user20 (theo số mình phân)
  • Mật khẩu: bkacad2026

Làm bài bằng Jupyter (cách mặc định)

Mỗi bước là một ô: bấm chạy là thấy kết quả ngay dưới ô, sửa số rồi chạy lại để thử.

Bước 1 — Vào máy bằng SSH có "đường hầm" tới Jupyter của bạn

Cổng Jupyter của bạn = 8800 + số tài khoản: user05 → 8805, user12 → 8812, user20 → 8820.

Trên laptop, mở Windows Terminal / PowerShell (hoặc Terminal trên macOS/Linux), gõ (thay NN bằng số tài khoản của bạn):

ssh -L 8888:127.0.0.1:88NN -p 40508 userNN@202.122.49.242

Ví dụ tài khoản user05:

ssh -L 8888:127.0.0.1:8805 -p 40508 user05@202.122.49.242

Dùng PuTTY: Host 202.122.49.242, Port 40508; trước khi bấm Open, vào Connection → SSH → Tunnels: Source port 8888, Destination 127.0.0.1:88NN → bấm Add → rồi Open và đăng nhập như bình thường.

Bước 2 — Bật Jupyter của bạn

Trong cửa sổ SSH vừa vào, gõ:

lab-jupyter

Máy in ra một đường link dạng http://localhost:8888/lab?token=... — giữ nguyên cửa sổ này mở suốt lúc làm bài (đóng cửa sổ là Jupyter tắt).

Bước 3 — Mở trình duyệt

Copy nguyên đường link đó, dán vào trình duyệt (Chrome / Edge / Firefox) trên laptop của bạn. Lần đầu mở có thể mất 1–2 phút mới hiện xong trang, cứ chờ.

Bước 4 — Làm bài

  • Bên trái: mở thư mục notebooks → bấm đúp vào bài mình chỉ định (ví dụ Lab_Python_Honeypot.ipynb).
  • Góc trên bên phải phải ghi Python (lớp CSAI).
  • Bấm vào một ô code → nhấn Shift + Enter: ô đó chạy, kết quả hiện ngay bên dưới, con trỏ nhảy sang ô kế tiếp.
  • Chạy lần lượt từ trên xuống (bước sau dùng kết quả của bước trước). Ô đang chạy hiện [*], chạy xong hiện số [1], [2]…
  • Ô có dòng ✏️ SỬA: đổi số / chữ ở đó rồi Shift + Enter lại để thử.
  • Sửa hỏng hoặc muốn chạy lại từ đầu cho sạch: menu Kernel → Restart Kernel and Run All Cells.

Gặp lỗi?

Hiện tượng Cách xử lý
Trình duyệt báo không kết nối được localhost:8888 cửa sổ SSH đã đóng, hoặc lệnh ssh thiếu phần -L 8888:127.0.0.1:88NN → vào lại SSH đúng lệnh ở Bước 1 rồi chạy lab-jupyter
Cửa sổ SSH hiện liên tục channel 3: open failed: connect failed: Connection refused Jupyter chưa chạy (hoặc đã tắt) → gõ lab-jupyter trong cửa sổ đó, mở link mới nó in ra
lab-jupyter báo "đã chạy rồi" đóng cửa sổ SSH cũ, vào lại theo Bước 1 rồi chạy lab-jupyter
Laptop báo cổng 8888 đang bận đổi 8888 thành 8889 ở cả lệnh ssh và đường link
Link báo sai token / bắt nhập mật khẩu mỗi lần chạy lab-jupyter là một token mới → dùng link của lần chạy gần nhất

Làm xong: bấm Ctrl + C trong cửa sổ SSH để tắt Jupyter.


Chỉ dùng terminal (không cần Jupyter)

ssh -p 40508 userNN@202.122.49.242

(Tuỳ chọn) "Khám" máy một chút (gõ từng dòng, xem kết quả):

Xem gì Lệnh
Mình là ai whoami
CPU của bạn nproc → ra 2: máy có nhiều nhân hơn nhưng chia cho cả lớp, mỗi bạn 2 nhân
Loại CPU lscpu | grep "Model name"
RAM free -h (cột total, available)
Ổ đĩa df -h ~
GPU nvidia-smi (tên card, bộ nhớ GPU, đang dùng bao nhiêu %)
Theo dõi trực tiếp htop (CPU/RAM) · nvtop (GPU) — bấm q để thoát
Thư viện Python đang có pip list

Phiên bản các thư viện chính:

python -c 'import numpy, pandas, sklearn, xgboost, matplotlib; [print(f"{m.__name__:12} {m.__version__}") for m in (numpy, pandas, sklearn, xgboost, matplotlib)]'

Thử chạy 1 mô hình nhỏ trên GPU (thấy GPU OK là được):

python -c 'import numpy as np, xgboost as xgb; X=np.random.rand(2000,10); y=(X[:,0]>0.5).astype(int); xgb.XGBClassifier(device="cuda", n_estimators=20).fit(X,y); print("GPU OK")'

Mẹo: mở 2 cửa sổ, một bên chạy nvtop, bên kia chạy lệnh GPU ở trên — xem GPU nhảy lên.

**Buổi thực hành 16/10/2026** - Máy: `202.122.49.242`, cổng SSH `40508` - Tài khoản: `user01` … `user20` (theo số mình phân) - Mật khẩu: `bkacad2026` --- ## Làm bài bằng Jupyter (cách mặc định) Mỗi bước là **một ô**: bấm chạy là thấy kết quả ngay dưới ô, sửa số rồi chạy lại để thử. ### Bước 1 — Vào máy bằng SSH có "đường hầm" tới Jupyter của bạn Cổng Jupyter của bạn = **8800 + số tài khoản**: `user05` → `8805`, `user12` → `8812`, `user20` → `8820`. Trên laptop, mở **Windows Terminal / PowerShell** (hoặc Terminal trên macOS/Linux), gõ (thay `NN` bằng số tài khoản của bạn): ``` ssh -L 8888:127.0.0.1:88NN -p 40508 userNN@202.122.49.242 ``` Ví dụ tài khoản `user05`: ``` ssh -L 8888:127.0.0.1:8805 -p 40508 user05@202.122.49.242 ``` Dùng **PuTTY**: Host `202.122.49.242`, Port `40508`; trước khi bấm Open, vào *Connection → SSH → Tunnels*: **Source port** `8888`, **Destination** `127.0.0.1:88NN` → bấm **Add** → rồi Open và đăng nhập như bình thường. ### Bước 2 — Bật Jupyter của bạn Trong cửa sổ SSH vừa vào, gõ: ``` lab-jupyter ``` Máy in ra một đường link dạng `http://localhost:8888/lab?token=...` — **giữ nguyên cửa sổ này mở** suốt lúc làm bài (đóng cửa sổ là Jupyter tắt). ### Bước 3 — Mở trình duyệt Copy **nguyên đường link** đó, dán vào trình duyệt (Chrome / Edge / Firefox) **trên laptop của bạn**. Lần đầu mở có thể mất **1–2 phút** mới hiện xong trang, cứ chờ. ### Bước 4 — Làm bài - Bên trái: mở thư mục **`notebooks`** → bấm đúp vào bài mình chỉ định (ví dụ **`Lab_Python_Honeypot.ipynb`**). - Góc trên bên phải phải ghi **Python (lớp CSAI)**. - Bấm vào một ô code → nhấn **Shift + Enter**: ô đó chạy, kết quả hiện ngay bên dưới, con trỏ nhảy sang ô kế tiếp. - Chạy **lần lượt từ trên xuống** (bước sau dùng kết quả của bước trước). Ô đang chạy hiện `[*]`, chạy xong hiện số `[1]`, `[2]`… - Ô có dòng **✏️ SỬA**: đổi số / chữ ở đó rồi Shift + Enter lại để thử. - Sửa hỏng hoặc muốn chạy lại từ đầu cho sạch: menu **Kernel → Restart Kernel and Run All Cells**. ### Gặp lỗi? | Hiện tượng | Cách xử lý | |---|---| | Trình duyệt báo không kết nối được `localhost:8888` | cửa sổ SSH đã đóng, hoặc lệnh `ssh` thiếu phần `-L 8888:127.0.0.1:88NN` → vào lại SSH đúng lệnh ở Bước 1 rồi chạy `lab-jupyter` | | Cửa sổ SSH hiện liên tục `channel 3: open failed: connect failed: Connection refused` | Jupyter chưa chạy (hoặc đã tắt) → gõ `lab-jupyter` trong cửa sổ đó, mở **link mới** nó in ra | | `lab-jupyter` báo "đã chạy rồi" | đóng cửa sổ SSH cũ, vào lại theo Bước 1 rồi chạy `lab-jupyter` | | Laptop báo cổng 8888 đang bận | đổi `8888` thành `8889` ở **cả** lệnh `ssh` và đường link | | Link báo sai token / bắt nhập mật khẩu | mỗi lần chạy `lab-jupyter` là một token mới → dùng link của **lần chạy gần nhất** | Làm xong: bấm **Ctrl + C** trong cửa sổ SSH để tắt Jupyter. --- ## Chỉ dùng terminal (không cần Jupyter) ``` ssh -p 40508 userNN@202.122.49.242 ``` **(Tuỳ chọn) "Khám" máy một chút** (gõ từng dòng, xem kết quả): | Xem gì | Lệnh | |---|---| | Mình là ai | `whoami` | | CPU của bạn | `nproc` → ra **2**: máy có nhiều nhân hơn nhưng chia cho cả lớp, mỗi bạn 2 nhân | | Loại CPU | `lscpu \| grep "Model name"` | | RAM | `free -h` (cột `total`, `available`) | | Ổ đĩa | `df -h ~` | | GPU | `nvidia-smi` (tên card, bộ nhớ GPU, đang dùng bao nhiêu %) | | Theo dõi trực tiếp | `htop` (CPU/RAM) · `nvtop` (GPU) — bấm `q` để thoát | | Thư viện Python đang có | `pip list` | Phiên bản các thư viện chính: ``` python -c 'import numpy, pandas, sklearn, xgboost, matplotlib; [print(f"{m.__name__:12} {m.__version__}") for m in (numpy, pandas, sklearn, xgboost, matplotlib)]' ``` Thử chạy 1 mô hình nhỏ trên GPU (thấy `GPU OK` là được): ``` python -c 'import numpy as np, xgboost as xgb; X=np.random.rand(2000,10); y=(X[:,0]>0.5).astype(int); xgb.XGBClassifier(device="cuda", n_estimators=20).fit(X,y); print("GPU OK")' ``` Mẹo: mở 2 cửa sổ, một bên chạy `nvtop`, bên kia chạy lệnh GPU ở trên — xem GPU nhảy lên.
Sign in to join this conversation.
No labels
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: mikrotik/labs#1