Ruby Net::FTP a través de SOCKS: o inicio de sesión funciona, as descargas colgan
Segue as conexións de control e de datos de Ruby FTP pola mesma ruta de proxy prevista.
O inicio de sesión FTP usa unha conexión de control. Despois, unha listaxe de directorio ou unha descarga necesita unha conexión de datos, que pode fallar aínda que o inicio de sesión por SOCKS funcionase.
Identifica primeiro o modo pasivo ou activo. En modo pasivo o cliente abre unha conexión nova ao enderezo e ao porto que indica o servidor FTP. Esa conexión tamén necesita a ruta de proxy prevista.
Integración de sockets en Ruby
A API Net::FTP de Ruby documenta o seu comportamento de conexión e de modo pasivo. Unha integración SOCKS debe cubrir a creación do socket que usan tanto a ruta de control como a de datos; a configuración de proxy dun cliente HTTP noutro sitio non as configura.
Se a integración cambia o comportamento do socket de forma global, revisa o seu alcance de concorrencia. Un bloque arredor dunha transferencia non pode illar outros fíos dos cambios no estado compartido.
Un provedor pode ofrecer un extremo estático, pero iso é unha característica do servizo, non un requisito xeral de SOCKS. Cando conexións separadas poden usar saídas distintas, comproba como o servidor FTP asocia a súa conexión de datos coa conexión de control autenticada.
Anota a etapa acadada, o modo e o extremo de datos, sen credenciais. Iso distingue unha ruta de datos bloqueada dun fallo de inicio de sesión no proxy.