MXterm Pro

Panel port forwarding của MXterm Pro: chỉ forward -L tới localhost trên máy chủ

Henry AGI
5 phút đọc
Terminal ở tab SSH của bảng port forwarding: một local forward tới cổng 5432, sau đó là psql, kèm ghi chú đóng bảng không dừng forward

MXterm Pro có SSH port forwarding GUI trên Mac, nhưng khá hẹp: một panel trên tab SSH đang mở, dùng để thêm và hủy forward local (-L) tới 127.0.0.1 trên máy chủ. Panel không có tùy chọn remote (-R) hay SOCKS và không lưu rule nào. Nó hợp với forward tới database hay admin UI, không hợp với tunnel bạn muốn giữ lâu. Trang này nói về các giới hạn đó, không dạy SSH tunneling từ đầu.

Panel port forwarding trong MXterm Pro làm được gì?

Panel của MXterm Pro thêm và hủy local port forward trên kết nối SSH mà tab của bạn đã mở sẵn. Panel không mở kết nối thứ hai và không bắt bạn đăng nhập lại. Mỗi rule được gửi tới tiến trình ssh đang chạy dưới dạng một control command, nên forward đi trên chính phiên bạn đang gõ.

Bạn mở panel từ panel SFTP nằm cạnh tab SSH, chính là panel file từ xa dùng để duyệt và sửa file. Nút trên header có tooltip Quản lý SSH Port Forwarding & Tunnels và mở một cửa sổ tên Quản Lý SSH Port Forwarding & Tunnels. Pane shell thường không có panel SFTP, nên cũng không có nút forwarding.

Mỗi tab SSH chạy ssh của hệ thống với ControlMaster=auto và một ControlPath dùng chung. Nút Kích Hoạt gửi ssh -O forward -L <spec> tới master đó. Nút Dừng gửi ssh -O cancel -L <spec>.

Chú thích cuối panel ghi "Mã hóa bảo mật toàn bộ luồng kết nối SSH". Câu này đúng theo nghĩa thông thường: đây là forward OpenSSH giống ssh -L, cùng cách mã hóa, không phải một kiểu vận chuyển khác.

Thêm ssh local port forwarding thế nào, và nó thành lệnh gì?

Trong MXterm Pro, ba trường Tên, Local Port và Remote Port tạo thành một forward -L trên kết nối đang mở, ví dụ ssh -O forward -L 127.0.0.1:5432:127.0.0.1:5432. Không có trường host đích và không có công tắc đổi hướng. Các bước dưới đây giả định host đã được lưu trong SSH manager (xem tài liệu SSH và SFTP).

1. Mở host thành một tab SSH. Shift+Cmd+H mở SSH manager, và Kết Nối mở một tab chạy ssh của hệ thống. Đăng nhập trong terminal như bình thường. Phiên đăng nhập đó chính là kết nối mà forward sẽ dùng.

2. Bấm nút forwarding trên header của panel SFTP. Trong Thêm Port Forward Mới, điền tên (placeholder gợi ý Postgres 5432), một local port và một remote port, rồi bấm Thêm Quy Tắc. Port phải nằm trong khoảng từ 1 đến 65535. Port ngoài khoảng này bị từ chối kèm lỗi trước khi ssh kịp nhận.

3. Bấm Kích Hoạt trên rule. Badge đổi từ ĐÃ DỪNG sang ĐANG CHẠY chỉ sau khi ssh chấp nhận forward.

Nếu ssh từ chối, thông báo lỗi của chính nó hiện màu đỏ phía trên danh sách và badge vẫn là ĐÃ DỪNG. Dừng hủy forward. Xóa một rule đang chạy cũng gửi lệnh hủy như vậy, nhưng nếu lệnh hủy thất bại thì dòng vẫn biến mất và không có lỗi nào hiện ra.

Với Local Port 5432 và Remote Port 5432, app gửi ssh -O forward -L 127.0.0.1:5432:127.0.0.1:5432 tới kết nối của tab, gọi theo dạng <user>@<host>. Trỏ psql hoặc client database của bạn tới 127.0.0.1:5432 trên Mac, lưu lượng sẽ ra ở port 5432 trên máy chủ.

Dạng tổng quát là 127.0.0.1:<local>:127.0.0.1:<remote>.

Bài liên quanCách quản lý 50+ server Linux và VM cloud từ một máy Mac

Forward database qua ssh trỏ được tới đâu? Chỉ tới localhost trên máy chủ

Mọi rule mà panel của MXterm Pro tạo ra đều nhắm tới 127.0.0.1 theo góc nhìn của máy chủ SSH. Nhờ vậy panel dùng được cho Postgres, Redis hay một admin UI chạy ngay trên máy chủ. Panel không tới được máy thứ ba phía sau máy chủ, như db.internal:5432, vì form không có trường host đích và code tự điền 127.0.0.1.

Dòng rule hiển thị 127.0.0.1:<local> → <server>:<remote>, với địa chỉ máy chủ của bạn ở bên phải. Hãy đọc là "port <remote> trên chính máy chủ". Forward vẫn kết thúc ở địa chỉ loopback của máy chủ, không phải một interface khác.

Đầu phía Mac cũng cố định. Spec gán rõ local port vào 127.0.0.1, nên dòng GatewayPorts yes trong ~/.ssh/config không thể công khai một port database đã forward ra mạng của bạn. Chỉ các chương trình trên Mac này mới kết nối được.

Với host thứ ba, hãy tự gõ forward trong một pane shell bình thường: ssh -L <local>:db.internal:5432 <user>@<bastion>. Đó là OpenSSH thuần chạy trong terminal thật.

Đóng panel không dừng forward

Đóng panel của MXterm Pro không hủy forward đang chạy. Forward thuộc về kết nối SSH phía sau tab, không thuộc danh sách của panel. Panel chỉ được mount khi đang mở, nút đóng chỉ đóng panel, và không có bước dọn dẹp nào gửi -O cancel. Chỉ Dừng và nút xóa mới hủy được một forward.

Đóng cả kết nối dùng chung cũng kết thúc mọi forward trên nó: nút Đặt lại kết nối của panel file (chỉ hiện khi server từ chối đăng nhập hoặc bắt đổi mật khẩu) làm việc này, và sửa cài đặt kết nối của host, xóa hoặc thêm lại host trong SSH manager cũng vậy.

Nếu bạn đóng panel khi rule còn ĐANG CHẠY rồi mở lại, danh sách sẽ trống trong khi port vẫn có thể đang lắng nghe.

OpenSSH, không phải app, quyết định forward đang chạy được giữ lắng nghe bao lâu. -O forward và -O cancel là các lệnh gửi tới master multiplexing. Man page ssh_config nói ControlPersist giữ master chạy nền sau khi phiên cuối cùng đóng. Master kết thúc khi đã rảnh, không còn kết nối client nào, trong khoảng thời gian đã đặt.

Mọi tab SSH ở đây đều khởi động với ControlPersist=10m, tức là 10 phút.

Vì master giữ kết nối, một forward thêm theo cách này có thể sống lâu hơn tab, nên đóng tab SSH có thể không kết thúc nó ngay. Cách này hoạt động thế nào trên Windows thì chưa được kiểm tra.

Để kiểm tra forward còn sót, lsof -iTCP:<port> -sTCP:LISTEN cho biết có gì còn lắng nghe trên port đó không.

Để bỏ nó, hãy hủy trên đúng master mà app dùng: ssh -o ControlPath=$HOME/.mxterm/sockets/%r@%h:%p -p <port> -O cancel -L 127.0.0.1:<local>:127.0.0.1:<remote> <user>@<host>. Dùng port, user và host đúng như đã lưu trong SSH manager (port là 22 nếu bạn chưa đổi).

Nếu kết nối đã mất, Kích Hoạt thất bại với thông báo của chính ssh, thường là Control socket connect(...): No such file or directory. Hãy mở host trong một tab SSH rồi bấm Kích Hoạt lần nữa. Panel không tự kết nối lại forward, và không có đoạn code nào kiểm tra lại badge ĐANG CHẠY sau khi ssh nhận forward lần đầu. Phát hiện phiên bị rớt là chuyện keepalive, đã nói trong hướng dẫn SSH timeout.

MXterm Pro không làm gì trong port forwarding

Giao diện của MXterm Pro chỉ có forward local (-L): không có tùy chọn forward remote, không có SOCKS proxy động, không có trường host đích. Rule không được lưu, nên không có gì quay lại sau khi kết nối lại.

Panel cũng cần một tab SSH đang mở. Nút nằm trong panel SFTP, mà panel này chỉ có cạnh tab SSH, và forward cần kết nối do tab đó mở. Một pane shell local, hoặc một host đã lưu mà bạn chưa kết nối, không có gì để forward qua.

Trên Windows, hãy coi tunnel là chưa được kiểm thử. Code SSH, SFTP và tunnel của MXterm Pro phụ thuộc vào biến HOME và ControlMaster của OpenSSH, và tài liệu của app đánh dấu tổ hợp này là chưa xác minh trên Windows. Code tunnel dựng đường dẫn socket từ HOME. Thiếu biến này, Kích Hoạt báo không tìm thấy ssh master.

Forwarding không có giới hạn theo gói trong code: panel không kiểm tra Pro và không giới hạn số rule. Giới hạn Free có liên quan là danh sách SSH host, chứa 5 host đã lưu ở gói Free theo mặc định.

Khi nào dùng panel, khi nào tự gõ ssh?

Dùng panel cho một forward nhanh tới thứ gì đó ngay trên máy chủ, như database, Redis hay một trang web nội bộ. Bạn bật và tắt được mà không rời phiên. Hãy tự gõ ssh khi cần đích ở host thứ ba, forward ngược, SOCKS proxy, hoặc một rule muốn giữ cho lần sau.

Pane trong MXterm Pro là terminal thật, nên lệnh ssh với -L, -R hoặc -D gõ vào pane thường hoạt động như ở bất kỳ nơi nào chạy OpenSSH. App không quản lý, liệt kê hay lưu các forward đó. Thông thường chúng sống đúng bằng thời gian tiến trình ssh đó chạy, trừ khi ~/.ssh/config của bạn tự bật ControlMaster cùng ControlPersist.

Để xem một ví dụ chạy qua kết nối SSH, đọc chạy Ollama cùng các phiên SSH.

Để thử, mở một host đã lưu thành tab SSH, mở panel forwarding từ header SFTP, và thêm một rule cho port bạn đang forward bằng tay. Nếu nó đủ cho trường hợp của bạn, cửa sổ ssh -L thừa có thể bỏ. Nếu bạn cần nhiều hơn một local forward tới chính máy chủ, cứ tiếp tục gõ ssh.

Trải nghiệm ngay

Terminal đa pane, Command Recipes (Cmd+J), và Control Room (trước đây là War Room) đa agent: miễn phí để bắt đầu.

Tải MXterm Pro Miễn Phí

Đã 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

SSH local port forwarding là gì, và panel của MXterm Pro có làm được không?

SSH local port forwarding là tùy chọn -L của OpenSSH: man page của ssh mô tả nó là chuyển tiếp các kết nối trên host local tới một host và port cho trước ở phía remote. Panel của MXterm Pro làm được điều này, nhưng chỉ local forward, trên một tab SSH đang mở. Đích luôn là 127.0.0.1 trên máy chủ, nên 127.0.0.1:<local> trên Mac của bạn tới được <remote> trên máy chủ.

MXterm Pro có hỗ trợ remote (-R) hoặc SOCKS (-D) không?

Không, panel của MXterm Pro không có. Giao diện chỉ tạo forward local (-L), luôn tới 127.0.0.1 trên máy chủ. Bạn vẫn gõ được lệnh ssh với -R hoặc -D trong pane shell thường, vì pane là terminal thật. Đó là OpenSSH thuần, và MXterm Pro không liệt kê, lưu hay dừng các forward này.

MXterm Pro có lưu rule port forwarding không?

Không. Danh sách rule của MXterm Pro chỉ tồn tại khi panel đang mở, nên mỗi lần mở đều trống và không có gì được khôi phục sau khi kết nối lại. Đóng panel không hủy forward đang chạy. Hãy kiểm tra bằng lsof hoặc hủy bằng ssh -O cancel nếu bạn cần lấy lại port.

Có forward được tới database trên máy khác phía sau server, như db.internal:5432, không?

Không qua panel của MXterm Pro. Host đích cố định là 127.0.0.1 theo góc nhìn của máy chủ, nên chỉ tới được dịch vụ chạy trên chính máy chủ. Với máy phía sau nó, hãy gõ forward trong pane shell thường, ví dụ ssh -L <local>:db.internal:5432 <user>@<bastion>.

Vì sao bấm Kích Hoạt báo "No such file or directory" trong panel port forwarding của MXterm Pro?

Đó là thông báo của chính ssh khi host không có kết nối nào đang mở, nên forward không có gì để bám vào. Hãy mở host trong một tab SSH, đăng nhập, rồi bấm Kích Hoạt lần nữa. Panel hiển thị nguyên văn lỗi của ssh thay vì che đi, và badge vẫn là ĐÃ DỪNG.

Máy khác trong mạng có truy cập được port đã forward bằng MXterm Pro không?

Không qua panel của MXterm Pro. Panel gán rõ đầu local vào 127.0.0.1, nên chỉ chương trình trên cùng Mac mới kết nối được, kể cả khi ~/.ssh/config của bạn đặt GatewayPorts hoặc bạn thường truyền -g. Forward do bạn tự gõ sẽ theo các tùy chọn bạn đưa vào.

SSH tunnel trong MXterm Pro có chạy trên Windows không?

Chưa xác minh. Các tính năng SSH, SFTP và tunnel phụ thuộc vào biến HOME và ControlMaster của OpenSSH, và tài liệu của chính app đánh dấu chúng là chưa xác minh trên Windows. Bản Windows x64 đã có nhưng chưa ký số Authenticode. Đừng dựa vào panel forwarding ở đó khi chưa tự kiểm tra.

Hỏi AI về MXterm Pro

Mở câu trả lời trực tiếp trong ChatGPT, Claude hoặc Perplexity, dựa trên trang này. Trợ lý AI tự viết, không phải chúng tôi, nên hãy kiểm tra nguồn nó trích dẫn.

Câu hỏi được gửiBảng SSH port forwarding của MXterm Pro làm được gì, và không làm được gì?