Với quyền truy cập SSH được phép tới máy chủ, OpenSSH có thể tạo listener SOCKS trên máy tính của bạn. Kết nối SSH mang lưu lượng chuyển tiếp và máy chủ từ xa kết nối tới đích.

Listener chỉ ở loopback

ssh -N -T -o ControlPath=none -o ForkAfterAuthentication=no -o ExitOnForwardFailure=yes -D 127.0.0.1:1080 [email protected]

Thay tài khoản và tên máy chủ. Máy chủ SSH phải cho phép chuyển tiếp; quản trị viên có thể hạn chế chuyển tiếp và đích độc lập với đăng nhập tài khoản.

-D tạo chuyển tiếp động và địa chỉ loopback tường minh giới hạn listener ở máy này. -N bỏ lệnh từ xa; -T bỏ thiết bị đầu cuối giả. ControlPath=none tránh dùng master chia sẻ sẵn có, còn ForkAfterAuthentication=no giữ lần gọi này ở tiền cảnh.

Giữ tiến trình chạy khi dùng proxy. Nếu cổng 1080 bị chiếm, chọn cổng cao khác còn trống và cập nhật máy khách. ExitOnForwardFailure=yes khiến SSH thoát nếu không tạo được listener.

Dùng endpoint SOCKS

curl --proxy socks5h://127.0.0.1:1080 --noproxy '' --connect-timeout 5 --max-time 15 https://example.com/

Yêu cầu này ủy quyền xử lý tên đích qua SOCKS5. Ứng dụng khác cần cấu hình SOCKS riêng; trường proxy HTTP không thể nói SOCKS với listener này.

Kiểm tra tiến trình sở hữu cổng:

ss -ltnp 'sport = :1080'

Tiến trình SSH dự kiến phải sở hữu listener loopback. Yêu cầu qua nó kiểm tra máy chủ từ xa có tới được đích không. Dùng đích do bạn kiểm soát khi cần xem đầu ra quan sát được.

Thời gian sống của phiên

Ctrl-C đóng tiến trình SSH, listener và kết nối chuyển tiếp. SSH bị ngắt cũng làm proxy không truy cập được.

ExitOnForwardFailure kiểm tra giai đoạn thiết lập. Nó không kết thúc SSH mỗi khi kết nối đích sau đó lỗi; hãy chẩn đoán riêng phiên, cổng cục bộ và yêu cầu tới đích.

Bài viết liên quan