Ngiêm cấm sử đụng PROXY và VPS vào mục đích trái pháp luật bạn sẽ phải chịu toàn bộ trách nhiệm trước pháp luật khi sử dụng dịch vụ của chúng tôi tks!
WinSCP proxy: cấu hình SFTP, FTP qua HTTP và SOCKS5

WinSCP proxy: cấu hình SFTP, FTP qua HTTP và SOCKS5

Chuyên viên Kỹ thuật ProxyVN 02-04-2026 Đang tính... phút đọc

WinSCP proxy là phần cấu hình mà nhiều anh em bỏ sót khi máy làm việc phải đi qua một máy chủ trung gian mới ra được Internet. ProxyVN tổng hợp lại cách đặt proxy cho từng site trong WinSCP, cách phân biệt proxy với SSH tunnel và cách đưa cùng cấu hình đó vào script tự động. Bài viết bám theo tài liệu chính thức của WinSCP 6.7.

WinSCP proxy dùng khi nào và giới hạn cần biết

Trường hợp hay gặp nhất là máy trong văn phòng không được phép kết nối thẳng tới cổng 22 hay cổng 21 của máy chủ bên ngoài. Mọi kết nối ra ngoài phải qua một proxy do bộ phận mạng cấp. Một tình huống khác là anh em cần máy chủ SFTP nhìn thấy kết nối đến từ một IP cố định, vì phía máy chủ chỉ mở tường lửa cho danh sách IP đã đăng ký.

Ở cả hai trường hợp, WinSCP chỉ đóng vai trò client. Nó gửi kết nối tới proxy, proxy mở tiếp đường tới máy chủ đích, rồi phiên SFTP, SCP hay FTP chạy bên trong đường đó. Dữ liệu truyền tệp vẫn được giao thức gốc xử lý như khi kết nối trực tiếp.

WinSCP không tự dò proxy như trình duyệt

Điểm cần nhớ đầu tiên: WinSCP không tự động lấy proxy của Windows hay của trình duyệt. Trang Proxy trong tài liệu WinSCP ghi rõ phần mềm không cố tự xác định có cần proxy hay không. Muốn dùng proxy thì phải khai báo cho từng site.

Vì vậy, chuyện Chrome vào web được còn WinSCP báo timeout là bình thường. Chrome có thể đang đọc cấu hình proxy hệ thống hoặc file PAC, còn WinSCP vẫn cố kết nối thẳng. Nút Autodetect trên trang Proxy chỉ giúp dò cấu hình HTTP proxy, không dò SOCKS.

Những giao thức và kiểu proxy được hỗ trợ

WinSCP hỗ trợ sáu lựa chọn ở mục Proxy type: None, HTTP, SOCKS4, SOCKS5, Telnet và Local. Kiểu HTTP dùng lệnh CONNECT, nên proxy phía trước phải cho phép mở đường hầm tới cổng đích. Rất nhiều proxy web chỉ cho CONNECT tới cổng 443, lúc đó SFTP ở cổng 22 sẽ bị từ chối dù cấu hình phía WinSCP đúng.

Hai kiểu Telnet và Local không dùng được với FTP, WebDAV và S3. Với FTP, WinSCP có bộ phương thức riêng dành cho FTP proxy, phần này mình nói kỹ ở một mục bên dưới. Biết trước giới hạn này giúp anh em không mất công thử một tổ hợp mà phần mềm không hỗ trợ.

Chuẩn bị thông tin trước khi cấu hình WinSCP proxy

Trước khi mở WinSCP, anh em nên gom đủ hai nhóm thông tin và ghi ra một chỗ. Nhóm thứ nhất là thông tin máy chủ đích. Nhóm thứ hai là thông tin proxy. Lẫn hai nhóm này với nhau là nguyên nhân của phần lớn lỗi đăng nhập mình gặp khi hỗ trợ.

Thông tin máy chủ đích

  • Giao thức: SFTP, SCP, FTP, FTPS, WebDAV hay S3. WinSCP mặc định chọn SFTP, trong khi nhiều phần mềm khác mặc định FTP.
  • Host name và Port number của máy chủ. SSH dùng cổng 22, FTP dùng 21, FTPS ngầm định dùng 990 nếu không ghi khác.
  • Tài khoản đăng nhập máy chủ và cách xác thực: mật khẩu hay khóa riêng dạng .ppk.
  • Dấu vân tay host key nếu bên quản trị máy chủ đã gửi trước, để đối chiếu ở lần kết nối đầu.

Thông tin proxy

  • Loại proxy: HTTP hay SOCKS5. Đây là loại do nhà cung cấp quy định, không phải chọn theo sở thích.
  • Proxy host name và Port number của proxy.
  • Username và Password của proxy nếu proxy xác thực bằng tài khoản. Nếu proxy xác thực bằng IP whitelist thì để trống, nhưng IP của máy chạy WinSCP phải nằm trong danh sách cho phép.
  • Giới hạn cổng đích, nếu có. Hỏi thẳng nhà cung cấp proxy có cho CONNECT tới cổng 22 hay 21 không.

Nếu nhà cung cấp gửi proxy dưới dạng một chuỗi gộp, anh em tách ra từng phần trước khi nhập. Các kiểu viết gộp phổ biến được giải thích trong bài định dạng proxy. Cách xác thực nào hợp với máy văn phòng có IP thay đổi thì xem thêm bài xác thực proxy bằng IP whitelist hay user password.

Phiên bản WinSCP nên dùng

Các thao tác trong bài viết dựa trên giao diện WinSCP 6.x. Bản cũ hơn vẫn có trang Proxy ở vị trí tương tự, nhưng một số tên mục và tùy chọn có thể khác. Máy chủ doanh nghiệp đôi khi còn cài bản rất cũ, nên ghi lại số phiên bản trong mục Help > About trước khi so với hướng dẫn.

Nếu nhóm dùng bản portable, cấu hình site có thể nằm trong file WinSCP.ini cạnh file chạy thay vì trong registry. Khi chép thư mục portable sang máy khác, cấu hình proxy đi theo luôn. Đó là điều tiện, nhưng cũng là lý do không nên lưu mật khẩu proxy trong bản portable dùng chung.

Hai nhóm thông tin cần tách riêng

Hai nhóm thông tin cần tách riêng

Cấu hình WinSCP proxy trong Advanced Site Settings

Proxy trong WinSCP được đặt theo từng site, không có một ô proxy chung cho mọi kết nối. Cách làm dưới đây áp dụng cho site mới lẫn site đã lưu. Anh em làm đúng thứ tự để khỏi lưu nhầm một site chưa có proxy.

Các bước trên giao diện

  • Bước 1: Mở WinSCP. Ở hộp thoại Login, chọn New Site nếu tạo mới, hoặc chọn site đã lưu rồi bấm Edit.
  • Bước 2: Chọn File protocol, nhập Host name, Port number và User name của máy chủ đích. Theo khuyến nghị của WinSCP, không nhập Password máy chủ nếu định lưu site.
  • Bước 3: Bấm nút Advanced để mở hộp thoại Advanced Site Settings.
  • Bước 4: Ở cây bên trái, chọn Connection rồi chọn Proxy.
  • Bước 5: Ở Proxy type, chọn HTTP hoặc SOCKS5 đúng theo loại nhà cung cấp cấp.
  • Bước 6: Nhập Proxy host name và Port number của proxy vào nhóm Proxy, không nhập lại host máy chủ ở đây.
  • Bước 7: Nhập Username và Password của proxy nếu proxy xác thực bằng tài khoản.
  • Bước 8: Ở mục Do DNS name lookup at proxy end, để Auto trừ khi có lý do đổi. Bấm OK, rồi Save để lưu site.
  • Bước 9: Bấm Login và quan sát hộp thoại Authentication. Nếu WinSCP cần tài khoản proxy mà anh em chưa nhập, nó sẽ hỏi trực tiếp trong cửa sổ này.

Sau lần đăng nhập đầu, WinSCP thường hỏi xác nhận host key của máy chủ. Đây là host key của máy chủ SFTP đích, không phải của proxy. Proxy kiểu HTTP CONNECT hay SOCKS5 chỉ chuyển byte qua lại, nó không tham gia vào bước bắt tay SSH.

Xác thực proxy được hỗ trợ tới đâu

Tài liệu WinSCP nêu rõ username và password chỉ được hỗ trợ đầy đủ với HTTP proxy và SOCKS5. SOCKS4 dùng được trường Username nhưng không có mật khẩu. Với các kiểu Telnet và Local, anh em đưa tài khoản vào câu lệnh bằng biến %user và %pass.

Có một chi tiết bảo mật đáng ghi lại. Với HTTP proxy, WinSCP dùng HTTP Digest nếu proxy hỗ trợ, còn không thì dùng HTTP Basic. Ở chế độ Basic, mật khẩu proxy đi qua mạng dạng gần như văn bản thường. SOCKS5 cũng tương tự: dùng CHAP nếu proxy hỗ trợ, nếu không thì gửi mật khẩu dạng thường. Mật khẩu proxy nên là mật khẩu riêng, không dùng lại mật khẩu máy chủ hay email.

Bảng giá trị theo từng loại proxy

Bảng dưới gom các lựa chọn hay dùng, kèm giá trị tương ứng trong raw settings mà mình sẽ dùng ở phần script. Anh em có thể in ra để đối chiếu khi cấu hình nhiều site.

Bảng: Bảng giá trị theo từng loại proxy

Proxy type

Giá trị ProxyMethod

Xác thực tài khoản

Dùng với FTP

None

0

Không áp dụng

Có

SOCKS4

1

Chỉ username

Có

SOCKS5

2

Username và password

Có

HTTP

3

Username và password

Có

Telnet

4

Qua biến trong lệnh

Không

Local

5

Qua biến trong lệnh

Không

Con số ở cột thứ hai lấy từ danh sách raw settings của WinSCP. Khi đọc file cấu hình hoặc log của người khác, gặp ProxyMethod=2 thì anh em biết ngay site đó đang dùng SOCKS5.

WinSCP proxy với SFTP qua SSH và với HTTP CONNECT

Đây là chỗ nhiều người nhầm nhất, vì cả SSH tunnel lẫn HTTP proxy đều được gọi chung là "đi qua máy trung gian". Hai cơ chế này khác nhau ở chỗ ai giữ khóa, ai thấy dữ liệu và cổng nào phải mở. Hiểu đúng giúp anh em chọn được cấu hình hợp với chính sách mạng.

Proxy chuyển tiếp kết nối TCP

Khi chọn HTTP ở Proxy type, WinSCP gửi lệnh CONNECT tới proxy, yêu cầu mở đường tới host và cổng của máy chủ. Proxy đồng ý thì từ đó trở đi nó chỉ chuyển dữ liệu. Phiên SSH vẫn được mã hóa từ máy anh em tới máy chủ, proxy không đọc được nội dung tệp.

SOCKS5 hoạt động theo cùng tinh thần, chỉ khác giao thức điều khiển. Với SFTP, cả hai đều dùng được, miễn là proxy cho phép tới cổng đích. Nếu chưa rõ khác biệt giữa hai loại, bài proxy HTTP và SOCKS5 giải thích kỹ hơn.

SSH tunnel là một phiên SSH khác

Trang Tunnel trong Advanced Site Settings chỉ hiện khi chọn SFTP hoặc SCP. Bật Connect through SSH tunnel nghĩa là WinSCP đăng nhập SSH vào một máy trung gian trước, rồi mở cổng chuyển tiếp từ máy đó tới máy chủ đích. Máy trung gian này cần tài khoản SSH riêng, không phải tài khoản proxy.

Theo tài liệu trang Tunnel, phiên tunnel thừa hưởng cấu hình proxy của phiên chính. Nói cách khác, nếu vừa bật proxy vừa bật tunnel, proxy được dùng cho kết nối tới máy tunnel chứ không phải cho phiên chính. Cổng cục bộ của tunnel được tự chọn trong dải 50000 đến 50099 nếu để Autoselect.

Mô hình nhảy qua máy trung gian bằng SSH giống tinh thần của ProxyJump bên OpenSSH. Ai muốn so sánh thêm có thể đọc bài SSH ProxyJump.

Chọn cơ chế nào cho tình huống nào

  • Văn phòng chỉ cho ra Internet qua proxy công ty: dùng HTTP hoặc SOCKS5 trên trang Proxy.
  • Máy chủ đích chỉ nhận kết nối từ IP của một bastion trong cùng mạng: dùng trang Tunnel với tài khoản SSH của bastion.
  • Máy chủ đích chỉ mở tường lửa cho một IP tĩnh bên ngoài: dùng proxy có IP tĩnh và đưa IP đó cho bên quản trị máy chủ.
  • Cần nhiều chặng phức tạp, cấu hình SSH khác mặc định: tài liệu WinSCP khuyên dựng tunnel bằng công cụ ngoài như PuTTY rồi trỏ WinSCP vào cổng cục bộ.

WinSCP không tự đọc proxy của Windows. Trình duyệt vào web được chưa nói lên điều gì về site SFTP cho tới khi anh em mở trang Proxy của chính site đó.

WinSCP proxy cho FTP và các kiểu đăng nhập qua FTP proxy

FTP khác SFTP ở chỗ dùng hai kết nối: kênh lệnh và kênh dữ liệu. Proxy phải xử lý được cả hai, nên WinSCP có phần cấu hình riêng cho FTP. Nếu máy chủ của anh em là SFTP thì có thể đọc lướt mục này.

Proxy kiểu SOCKS và HTTP với FTP

Với FTP, anh em vẫn chọn được SOCKS4, SOCKS5 hay HTTP như bình thường. Chế độ Passive mode trên trang Connection được bật sẵn và thường là lựa chọn hợp nhất khi đi qua proxy, vì client là bên chủ động mở kênh dữ liệu. WinSCP tự thử chế độ còn lại nếu chế độ đang chọn không chạy.

Một số proxy HTTP chỉ cho CONNECT tới cổng 443. FTP cần thêm các cổng dữ liệu do máy chủ cấp, nên tổ hợp FTP qua proxy HTTP dễ gặp lỗi ở bước liệt kê thư mục dù đăng nhập đã qua. Gặp hiện tượng đăng nhập được mà danh sách tệp trống hoặc treo, nghi tới kênh dữ liệu trước.

Các phương thức FTP proxy

Nhiều tường lửa doanh nghiệp có một loại FTP proxy riêng: client đăng nhập vào proxy bằng một cú pháp đặc biệt và proxy tự mở tiếp tới máy chủ. Theo tài liệu, phương thức phổ biến nhất là USER %user@%host. Trong raw settings, lựa chọn này nằm ở FtpProxyLogonType với tám giá trị từ 1 tới 8.

  • 1: SITE %host
  • 2: USER %proxyuser, USER %user@%host
  • 3: OPEN %host
  • 4: USER %proxyuser, USER %user
  • 5: USER %user@%host
  • 6: USER %proxyuser@%host
  • 7: USER %user@%host %proxyuser
  • 8: USER %user@%proxyuser@%host

Phương thức nào đúng là do loại tường lửa quyết định, anh em hỏi bộ phận mạng thay vì thử lần lượt cả tám. Thử bừa nhiều lần với tài khoản thật có thể khiến tài khoản bị khóa tạm vì đăng nhập sai liên tiếp.

WinSCP proxy trong script và thư viện .NET

Khi đã chạy được trên giao diện, bước tiếp theo thường là đưa vào script đồng bộ tệp hằng đêm. Cấu hình proxy không có tham số riêng trong lệnh open, mà đi qua tham số chung -rawsettings. Tham số này phải đặt sau URL của phiên.

Script winscp.com với -rawsettings

Ví dụ dưới mở phiên SFTP qua proxy SOCKS5. Tên máy chủ và proxy là tên minh họa thuộc miền .invalid, không kết nối được. Khi dùng thật, thay bằng thông tin của anh em và giữ đúng host key đã xác minh.

open sftp://deploy@files.example.invalid/ -hostkey="ssh-ed25519 255 THAY_BANG_HOST_KEY_DA_XAC_MINH" -rawsettings ProxyMethod=2 ProxyHost=proxy.example.invalid ProxyPort=1080 ProxyUsername=TAI_KHOAN_PROXY ProxyPassword=MAT_KHAU_PROXY ProxyDNS=2
cd /data/inbox
put C:\export\bao-cao.csv
exit

Lưu đoạn trên thành file sync.txt rồi chạy bằng winscp.com kèm tham số log. Log giúp anh em đọc lại được chuyện gì đã xảy ra khi script chạy lúc không ai ngồi trước máy.

& "C:\Program Files (x86)\WinSCP\WinSCP.com" /log="C:\logs\winscp-proxy.log" /ini=nul /script="C:\jobs\sync.txt"

Tham số /ini=nul giúp script không đọc cấu hình đã lưu trên máy, nên kết quả chỉ phụ thuộc vào những gì ghi trong script. Đường dẫn cài đặt có thể khác trên máy của anh em, kiểm tra lại trước khi lên lịch chạy.

Thư viện WinSCP .NET qua PowerShell

Với thư viện .NET, cấu hình proxy được thêm bằng phương thức AddRawSettings trên SessionOptions. Đoạn dưới viết theo tài liệu AddRawSettings, dùng proxy HTTP và đọc mật khẩu từ biến môi trường thay vì ghi cứng.

Add-Type -Path "C:\Program Files (x86)\WinSCP\WinSCPnet.dll"
 
$opt = New-Object WinSCP.SessionOptions -Property @{
    Protocol              = [WinSCP.Protocol]::Sftp
    HostName              = "files.example.invalid"
    UserName              = "deploy"
    SshPrivateKeyPath     = "C:\keys\deploy.ppk"
    SshHostKeyFingerprint = "ssh-ed25519 255 THAY_BANG_HOST_KEY_DA_XAC_MINH"
}
$opt.AddRawSettings("ProxyMethod", "3")
$opt.AddRawSettings("ProxyHost", "proxy.example.invalid")
$opt.AddRawSettings("ProxyPort", "8080")
$opt.AddRawSettings("ProxyUsername", $env:PROXY_USER)
$opt.AddRawSettings("ProxyPassword", $env:PROXY_PASS)
 
$session = New-Object WinSCP.Session
$session.SessionLogPath = "C:\logs\winscp-net.log"
try {
    $session.Open($opt)
    $session.ListDirectory("/data/inbox").Files | Select-Object Name, Length
}
finally {
    $session.Dispose()
}

Đoạn mã là ví dụ triển khai dựa trên tài liệu, mình chưa chạy với một proxy thật trong lúc viết. Trước khi đưa vào lịch chạy, anh em chạy tay một lần và đọc file log. Chạy bằng tài khoản dịch vụ thì nhớ đặt biến môi trường cho đúng tài khoản đó.

Lấy cấu hình từ giao diện sang script

Cách nhanh nhất để khỏi gõ sai là cấu hình xong trên giao diện, rồi dùng tính năng tạo mã sẵn. Ở hộp thoại Login, chọn site rồi vào Manage > Generate Session URL/Code. Theo tài liệu hộp thoại này, có tab Script và tab .NET Assembly Code để chép mẫu.

Khi tick tùy chọn Password trong hộp thoại, mật khẩu sẽ nằm ngay trong URL hoặc đoạn mã được tạo. Chỉ tick khi thật cần và cất mã đó ở chỗ có phân quyền. Trong script dùng chung, tách mật khẩu ra biến môi trường hoặc kho bí mật của nhóm.

Proxy chuyển tiếp và SSH tunnel

Proxy chuyển tiếp và SSH tunnel

WinSCP proxy và cách phân giải tên miền

Tùy chọn Do DNS name lookup at proxy end quyết định ai là người đổi tên miền máy chủ thành địa chỉ IP. Chọn sai, anh em có thể gặp lỗi không phân giải được tên dù tên đó đúng. Mục này quan trọng nhất khi máy chủ đích nằm trong mạng nội bộ mà chỉ proxy mới nhìn thấy.

Ba lựa chọn No, Auto và Yes

Chọn No, WinSCP luôn tự phân giải tên trên máy anh em rồi gửi địa chỉ IP cho proxy. Chọn Yes, WinSCP gửi nguyên tên miền cho proxy và không tự tra trước. Mặc định Auto: với HTTP, SOCKS5, Telnet và Local, tên miền được gửi thẳng cho proxy; riêng SOCKS4 thì không.

Giả sử máy chủ có tên sftp.noibo.local và chỉ DNS trong mạng của proxy biết tên này. Đặt No thì máy anh em không tra ra được và kết nối dừng ngay từ đầu. Đặt Yes hoặc Auto với SOCKS5 thì proxy tự tra và mở được đường.

SOCKS4 và GSSAPI

SOCKS4 nguyên bản không hỗ trợ phân giải tên phía proxy. Bản mở rộng SOCKS4A có hỗ trợ, nhưng không phải máy chủ SOCKS4 nào cũng có. Nếu anh em bật Yes với một proxy SOCKS4 đời cũ mà kết nối hỏng, đó có thể là lý do.

Tài liệu còn nêu một chi tiết ít người biết: xác thực GSSAPI của SSH cũng tự tra DNS tên máy chủ bằng thư viện riêng. Nếu cần tránh mọi truy vấn DNS cục bộ liên quan tới máy chủ đích, ngoài việc đặt Yes còn phải tắt GSSAPI authentication và GSSAPI key exchange trong phần SSH.

Kết nối tới localhost

Mặc định, kết nối tới localhost và địa chỉ loopback không đi qua proxy. Điều này hợp lý trong hầu hết trường hợp, chẳng hạn khi anh em đã tự mở một tunnel cục bộ rồi trỏ WinSCP vào 127.0.0.1. Nếu thật sự cần đẩy cả kết nối loopback qua proxy, bật Consider proxying local host connections.

Tùy chọn này và tùy chọn DNS ở trên không áp dụng cho FTP. Với FTP, WinSCP không cho chỉnh hai mục này.

Kiểm tra WinSCP proxy đã thực sự được dùng

Đăng nhập thành công chưa chứng minh kết nối đi qua proxy. Nếu máy có đường ra trực tiếp, một site cấu hình sai vẫn có thể vào được bằng đường thẳng. Cần ít nhất một bằng chứng cho thấy proxy đã được dùng.

Đọc session log

WinSCP có hai dạng log: session log cho việc gỡ lỗi kết nối và XML log cho tự động hóa. Theo tài liệu logging, session log mới chứa đủ chi tiết để chẩn đoán. Bật ở Preferences > Logging trên giao diện, hoặc dùng tham số /log khi chạy dòng lệnh.

Trong log, tìm các dòng nhắc tới proxy và địa chỉ đang kết nối ở bước mở phiên. Nếu log chỉ ghi kết nối thẳng tới host máy chủ mà không thấy proxy, site đó chưa được lưu cấu hình proxy. Với mức log mặc định Normal, mật khẩu không bị ghi vào log, nhưng anh em vẫn rà lại trước khi gửi cho người khác.

Hỏi phía máy chủ đích

Bằng chứng mạnh nhất là IP mà máy chủ SFTP nhìn thấy. Trên máy chủ Linux có OpenSSH, quản trị viên có thể xem log xác thực để biết IP nguồn của phiên đăng nhập. IP đó phải là IP đầu ra của proxy, không phải IP của văn phòng.

Nếu không có quyền xem log máy chủ, một cách thay thế là chạy lệnh cho biết IP của phiên SSH ngay trong WinSCP. Mở Commands > Open Terminal, chạy lệnh echo $SSH_CLIENT trên máy chủ Linux. Giá trị đầu tiên là IP nguồn mà máy chủ nhận được.

Thử đường proxy bằng công cụ khác

Muốn tách lỗi proxy khỏi lỗi WinSCP, anh em có thể thử cùng proxy bằng curl trên cùng máy. Lệnh dưới hỏi IP công khai qua proxy SOCKS5, dùng socks5h để tên miền được phân giải phía proxy.

curl.exe --proxy "socks5h://proxy.example.invalid:1080" --proxy-user "TAI_KHOAN_PROXY" --connect-timeout 10 "https://api.ipify.org"

Lệnh này chỉ chứng minh proxy cho đi tới cổng 443 của một trang web. Nó không chứng minh proxy cho đi tới cổng 22 của máy chủ SFTP. Nếu curl chạy được còn WinSCP không, nghi tới giới hạn cổng đích của proxy.

Xử lý lỗi WinSCP proxy thường gặp

Phần này gom các thông báo hay gặp nhất và cách đọc. Mỗi lỗi có thể đến từ proxy, từ máy chủ đích hoặc từ tường lửa trên chính máy anh em. Đọc đúng lớp thì sửa nhanh hơn nhiều so với đổi cấu hình liên tục.

Network error: Connection refused

Trang giải thích lỗi Connection refused liệt kê các nguyên nhân: máy chủ tắt, chọn sai giao thức, sai cổng, cần proxy mà chưa khai báo, hoặc tường lửa chặn. Khi đã có proxy, thêm một khả năng nữa: proxy đang từ chối kết nối tới cổng đích.

Cách tách lớp là đổi lần lượt từng thứ. Thử cùng site với Proxy type về None trên một mạng được phép kết nối thẳng. Chạy được thì phía máy chủ ổn, lỗi nằm ở đường proxy. Không chạy được thì kiểm tra lại giao thức và cổng trước.

Network error: Connection timed out

Theo tài liệu, mọi nguyên nhân của Connection refused đều áp dụng cho timeout. Khác biệt là với timeout, gói tin thường bị bỏ đi thay vì bị từ chối. Đây là dấu hiệu quen thuộc của tường lửa chặn lặng lẽ, hoặc của proxy host nhập sai thành một địa chỉ không phản hồi.

Nếu timeout xảy ra sau khi đã đăng nhập, trong lúc để phiên rảnh, xem trang Connection. Mục Keepalives cho phép WinSCP gửi dữ liệu giả định kỳ để tường lửa không cắt phiên. Tài liệu cũng lưu ý keepalive có thể làm tình hình tệ hơn nếu mạng hay chập chờn, nên chỉ bật khi thấy đúng kiểu lỗi cắt phiên rảnh.

Các mã lỗi phía proxy

  • Proxy trả 407: proxy cần tài khoản mà anh em chưa nhập hoặc nhập sai. Kiểm tra Username và Password trên trang Proxy, không phải tài khoản máy chủ. Cách đọc mã này có trong bài sửa lỗi 407 Proxy Authentication Required.
  • Proxy trả 403 cho lệnh CONNECT: proxy không cho mở đường tới cổng đích. Hỏi nhà cung cấp hoặc chuyển sang SOCKS5 nếu gói dịch vụ có.
  • Không phân giải được tên máy chủ: xem lại tùy chọn DNS ở mục trước, đặc biệt khi máy chủ là tên nội bộ.
  • Hỏi lại host key mỗi lần kết nối: nghĩa là máy chủ thật sự đổi key, hoặc anh em đang kết nối tới một máy khác. Proxy kiểu CONNECT hay SOCKS5 không làm đổi host key, nên đừng bấm chấp nhận khi chưa hỏi quản trị.

Lỗi do tường lửa trên máy

Tài liệu có một mục riêng cho trường hợp phần mềm khác kết nối được còn WinSCP thì không. Nguyên nhân hay gặp là tường lửa có luật theo từng ứng dụng, chỉ cho phép một số chương trình ra ngoài. Sau khi nâng cấp WinSCP, file chạy thay đổi nên luật cũ có thể không còn khớp.

Với tường lửa Windows, vào Control Panel > System and Security > Windows Defender Firewall > Allow an app or feature through Windows Defender Firewall để thêm winscp.exe. Phần mềm diệt virus có tường lửa riêng cũng cần kiểm tra. Khi có proxy, luật tường lửa phải cho WinSCP tới host và cổng của proxy.

Đọc lỗi theo từng lớp

Đọc lỗi theo từng lớp

Checklist WinSCP proxy trước khi bàn giao

Khi cấu hình cho cả nhóm, một danh sách kiểm tra ngắn giúp người nhận dùng được ngay mà không phải hỏi lại. Mình hay ghi theo thứ tự dưới đây. Mỗi dòng có người kiểm tra và ngày kiểm tra.

Danh sách kiểm tra

  • Site đã lưu đúng giao thức, host, cổng và tài khoản máy chủ.
  • Trang Proxy đã chọn đúng loại, đúng host và cổng proxy, đã lưu lại site.
  • Đã đăng nhập thử, đã xác minh host key với quản trị máy chủ.
  • Đã có bằng chứng IP nguồn: từ log máy chủ hoặc từ lệnh echo $SSH_CLIENT.
  • Đã thử tải lên và tải xuống một tệp nhỏ, đã liệt kê được thư mục làm việc.
  • Script tự động dùng /ini=nul, có log, mật khẩu đọc từ biến môi trường.
  • Đã ghi lại phiên bản WinSCP và loại proxy trong tài liệu bàn giao.

Chọn proxy cho kết nối truyền tệp

Proxy cho WinSCP có yêu cầu khác proxy để lướt web. Quan trọng nhất là proxy phải cho kết nối tới cổng đích của máy chủ, thường là 22 hoặc 21, và giữ IP ổn định nếu máy chủ lọc theo danh sách IP. Khi cần mua proxy để kết nối máy chủ SFTP lọc theo IP, anh em nên hỏi rõ giao thức hỗ trợ, cổng đích được phép và thời hạn giữ IP trước khi thanh toán.

ProxyVN có proxy tĩnh dùng HTTP và SOCKS5, cấp tài khoản user và password. Với proxy IP tĩnh, anh em đưa IP đầu ra cho bên quản trị máy chủ thêm vào danh sách cho phép, rồi kiểm tra lại bằng các bước ở mục trên. Nếu kết nối gặp lỗi, đội kỹ thuật hỗ trợ 24/24 để cùng đọc log.

Checklist trước khi bàn giao

Checklist trước khi bàn giao

WinSCP proxy và những điều cần nhớ

WinSCP proxy chỉ chạy khi được khai báo cho từng site, vì phần mềm không tự đọc proxy của Windows. Anh em chọn đúng HTTP hay SOCKS5, để DNS ở Auto, rồi kiểm tra IP mà máy chủ nhìn thấy trước khi bàn giao. Liên hệ Proxy.vn - Nhà cung cấp dịch vụ proxy chất lượng hàng đầu Việt Nam nếu cần proxy tĩnh cho WinSCP proxy.

TIN TỨC LIÊN QUAN