WinSCP FTPS loguje się przez proxy, ale nie może wylistować plików
Sprawdź zarówno pasywne połączenie danych, jak i połączenie sterujące, gdy używasz HTTP CONNECT dla FTPS.
Zalogowanie przez FTPS dowodzi, że połączenie sterujące działało. Lista katalogu wymaga innego połączenia, więc proxy może zezwolić na logowanie i zablokować następny krok.
Dla serwera z jawnym FTPS skonfiguruj trasę sterującą i tryb pasywny za pomocą WinSCP .NET:
var options = new WinSCP.SessionOptions
{
Protocol = WinSCP.Protocol.Ftp,
HostName = "ftp.example.net",
PortNumber = 21,
UserName = ftpUser,
Password = ftpPassword,
FtpSecure = WinSCP.FtpSecure.Explicit,
FtpMode = WinSCP.FtpMode.Passive
};
options.AddRawSettings("ProxyMethod", "3");
options.AddRawSettings("ProxyHost", "proxy.example.net");
options.AddRawSettings("ProxyPort", "8080");Ustawienie ProxyMethod o wartości 3 wybiera HTTP CONNECT. Otwieraj te opcje przez zwykły cykl życia Session w aplikacji WinSCP i dodaj surowe ustawienia ProxyUsername oraz ProxyPassword, gdy pośrednik wymaga uwierzytelnienia.
Prześledź błąd listowania
Sprawdź w dzienniku sesji wynegocjowany pasywny punkt końcowy danych i jego błąd połączenia. Proxy musi zezwalać na ten cel i port oraz na punkt końcowy sterowania FTP. Dlatego reguła zezwalająca na CONNECT tylko do portu sterującego może przyjąć logowanie i odrzucić listę.
Zmiana samego portu sterującego nie naprawi zablokowanej ścieżki danych. Sprawdzając politykę sieci, użyj punktu końcowego danych zapisanego w dzienniku.
Ten przykład uruchamia jawny FTPS na porcie 21 i negocjuje TLS. Dla niejawnego punktu końcowego FTPS użyj odpowiedniego trybu FtpSecure i portu serwera. W obu przypadkach użyj rzeczywistej nazwy hosta TLS serwera i konfiguracji weryfikacji certyfikatów.