Chạy Ollama trong terminal cạnh phiên SSH

Để chạy Ollama trong terminal cùng lúc với SSH, hãy đặt ollama serve ở một pane của MXterm Pro và kết nối SSH ở pane bên cạnh. Cả hai là PTY độc lập trong cùng một workspace chia pane. Chuyển từ output của model sang log của máy chủ từ xa chỉ cần một cú click hoặc một phím tắt, không phải đổi app. Phần cần cẩn thận là gọi Ollama qua kết nối SSH, việc này cần một Ollama SSH tunnel.
Chia workspace: ollama serve ở một pane, SSH ở pane kia
Mở một workspace, chia thành hai pane và chạy ollama serve ở một pane. Muốn chat tương tác thì dùng ollama run llama3. Để đưa SSH vào workspace, kết nối từ SSH Manager (⇧⌘H), nó mở một tab riêng, rồi chia tab đó để chạy Ollama. Hoặc gõ ssh user@host ngay trong một pane.
Cả hai là PTY thật, chạy như hai tiến trình hệ điều hành độc lập. Đổi kích thước, focus hay đóng pane này không ảnh hưởng pane kia.
Khi làm việc trên máy chủ từ xa, output của Ollama rất đáng theo dõi: tiến trình nạp model, log request, cảnh báo bộ nhớ. Bạn không cần alt-tab sang một app terminal khác để xem Ollama còn phản hồi không hay model đã nạp xong chưa. Nó ở ngay pane bên cạnh.
Bài liên quanChạy Cursor Agent trong terminal nhiều pane trên MacOllama SSH tunnel: gọi Ollama trên máy bạn từ máy chủ từ xa
Mặc định Ollama lắng nghe ở 127.0.0.1:11434, nên chỉ nhận kết nối từ chính máy đang chạy nó. Giả sử một script trên máy chủ từ xa gọi Ollama API của Mac bạn tại /api/generate. Localhost trên máy chủ đó không phải localhost của Mac bạn, nên nếu không có tunnel thì request thất bại.
Nếu bind Ollama với OLLAMA_HOST=0.0.0.0 thì bạn mở ra một API không có xác thực, nên tunnel là lựa chọn mặc định an toàn hơn.
Cách xử lý là một reverse SSH tunnel chuẩn, không phải thứ MXterm Pro thêm vào: ssh -R 11434:localhost:11434 user@remote-host. Lệnh này chuyển port 11434 của máy chủ từ xa về Ollama trên Mac của bạn. Sau đó curl http://localhost:11434/api/generate chạy trên máy chủ từ xa sẽ gọi tới model local của bạn.
sshd trên máy chủ từ xa phải cho phép TCP forwarding, và port chỉ bind vào loopback của máy chủ đó. Trình quản lý SSH tunnel của MXterm Pro chỉ thêm được forward cục bộ (-L), nên bạn tự gõ lệnh ssh này trong một pane local trên Mac. Đây là SSH port forwarding thuần, nên dùng được từ bất kỳ app nào bạn SSH.
Với chiều ngược lại, khi Ollama chạy trên một máy GPU từ xa và bạn muốn gọi nó từ Mac, hãy dùng một forward tunnel thông thường: ssh -L 11434:localhost:11434 user@gpu-host. Sau đó curl http://localhost:11434/... chạy trên máy local sẽ gọi tới model từ xa.
RAM, GPU và tranh chấp tài nguyên giữa các pane
ollama ps liệt kê các model đang nạp và lượng bộ nhớ mỗi model chiếm, nên đây là cách kiểm tra nhanh từ một pane khác. Model đã nạp vẫn nằm trong RAM cho đến khi Ollama giải phóng nó, mặc định là năm phút sau request cuối. Nếu model dùng tăng tốc Metal hoặc CUDA thì nó cũng nằm trong bộ nhớ GPU. OLLAMA_KEEP_ALIVE=10m ollama serve thay đổi khoảng thời gian này.
Tranh chấp tài nguyên là chỗ các pane có thể gây rắc rối. MXterm Pro không sandbox hay giới hạn những gì tiến trình của pane được dùng, nên một pane terminal tốn tài nguyên đúng bằng shell phía sau nó.
Thêm pane thứ ba chạy một coding agent đang biên dịch một dự án lớn, và cả ba pane cùng lấy RAM, CPU và GPU của một chiếc Mac. Trên máy ít bộ nhớ, trần dùng chung đó mới là giới hạn thực tế, chứ không phải do riêng pane hay SSH.
Nếu ollama serve không chịu khởi động và báo lỗi "address already in use", nghĩa là có thứ gì đó đã bind vào port 11434. Thường đó là một pane trước đó, hoặc một app Ollama riêng trên menu bar nếu bạn đã cài. Chạy lsof -i :11434 để xem cái gì đang giữ port, rồi mới quyết định tắt nó hay dùng luôn instance đang chạy.
Thêm Command Recipes và một coding agent vào cùng workspace
Kho lệnh mẫu (Cmd+J) của MXterm Pro không liên quan gì đến model mà Ollama đang phục vụ. Nó không dùng model nào cả, chỉ là một bộ lệnh Linux dựng sẵn được khớp theo từ khóa. Không có cài đặt nào để trỏ nó tới Ollama.
Ở đây nó hữu ích vì một lý do hẹp hơn, chủ yếu trong pane đang SSH vào máy chủ Linux. Bạn gọi ra được một lệnh dựng sẵn mà không phải tra flag: tiến trình nào dùng nhiều RAM nhất, 50 dòng cuối của log hệ thống, cái gì đang bind vào port 11434. Đó là lệnh Linux, nên các recipe về RAM và log sẽ không chạy nguyên văn trong một pane macOS local. Không có recipe nào cho bộ nhớ GPU.
Nếu một coding agent (Claude Code, Codex, Cursor) đang sinh code gọi API của model local, hãy chạy nó ở pane thứ ba. Agent, model và máy chủ bạn đang deploy tới đều hiện trong cùng một workspace.
Bật Tách biệt tính năng bằng Git Worktree trong composer để mỗi agent pane có checkout riêng tại <repo>/.worktrees/<slug> trên một nhánh riêng, khi thư mục là một git repo. Tùy chọn này mặc định tắt. Nó giảm khả năng hai agent đụng nhau trên cùng file khi đang sửa.
Chi phí: gói Free và gói Pro
Không thứ nào ở trên cần Pro. Mặc định, gói Free của MXterm Pro không giới hạn terminal pane, có tối đa 5 host SSH đã lưu và 1 Machine đã lưu, kèm quản lý file SFTP đầy đủ bằng giao diện. Một pane Ollama và một pane SSH chỉ là hai pane, còn popup Command Recipes không tốn pane nào: còn xa mới chạm giới hạn cho quy trình này.
Giới hạn này chỉ đáng kể khi bạn quản lý hơn 5 host từ xa cùng lúc. Pro bỏ giới hạn host SSH: không giới hạn host SSH đã lưu.
Ollama trên iTerm2 + tmux, Warp và các client chỉ dành cho SSH
iTerm2 đã có split pane thật, và nhiều developer chạy ollama serve ở một pane iTerm2, SSH ở pane kia. Bạn cũng có thể giữ Ollama sống trong một phiên tmux trên máy chủ từ xa để nó không mất khi SSH bị ngắt. Cách này đủ vững nếu bạn chỉ cần split pane.
iTerm2 trưởng thành, viết script được và miễn phí. Tính năng Snippets của nó gửi lại các chuỗi do bạn tự lưu, còn Command Recipes là một bộ lệnh Linux dựng sẵn cho các bước kiểm tra quanh phiên đó. iTerm2 cũng không có cách tích hợp sẵn để cô lập thư mục làm việc của một AI coding agent thứ hai nếu bạn chạy nó trên cùng repo.
Warp có tính năng AI riêng và xoay quanh command block, nên đó là một quy trình khác chứ không phải thiếu sót. Termius và MobaXterm là các client SSH/SFTP mạnh, lâu đời, có quản lý host đã lưu thực sự, phù hợp nếu phần SSH là toàn bộ công việc.
MXterm Pro gộp Ollama, SSH và một pane agent vào một workspace, cùng Command Recipes và worktree riêng cho từng agent.
Terminal đa pane, Command Recipes (Cmd+J), và Control Room (trước đây là War Room) đa agent: miễn phí để bắt đầu.
Đã có MXterm Pro? Đọc hướng dẫn cài đặt →
Chưa dùng MXterm Pro? Xem bảng giá →
Câu hỏi thường gặp
Không. MXterm Pro không gọi trực tiếp Ollama API. Nó chạy ollama như bất kỳ lệnh nào khác trong một pane terminal. Lợi ích là pane đó nằm cạnh các pane SSH và agent của bạn, chứ không phải một tính năng Ollama riêng.
Mở một reverse SSH tunnel: ssh -R 11434:localhost:11434 user@remote-host. Lệnh này chuyển port 11434 của máy từ xa về Mac của bạn, nên curl http://localhost:11434/api/generate trên máy từ xa sẽ gọi tới model local. Tính năng forward có sẵn của MXterm Pro chỉ hỗ trợ local (-L), nên hãy gõ lệnh này trong pane. sshd trên máy từ xa phải cho phép TCP forwarding, và port chỉ bind vào loopback của máy từ xa.
Không trực tiếp. SSH là I/O mạng chứ không phải tính toán, nên một pane SSH đang rảnh không lấy bộ nhớ hay GPU của model Ollama đã nạp. Tuy nhiên mọi pane đều dùng chung RAM, CPU và GPU của chiếc Mac, vì MXterm Pro không sandbox tiến trình trong pane. Một pane thứ ba nặng, như coding agent đang biên dịch thứ gì đó, vẫn có thể làm mọi thứ chậm đi.
Có thứ gì đó đã bind vào port 11434, thường là một pane trước đó hoặc một app Ollama riêng trên menu bar nếu bạn đã cài. Chạy lsof -i :11434 để xem cái gì đang giữ port. Sau đó dùng lại instance đó, hoặc dừng nó trước khi khởi động instance mới.
Có. Các pane độc lập với nhau. Đóng một phiên SSH hay một pane agent không ảnh hưởng tới pane khác đang chạy Ollama.