
Estoy intentando migrar un sitio web de un servidor a otro y tengo un problema de FTP en el nuevo servidor. El sitio tiene contenido enviado por FTP mediante un software interno. Sé que se desaconseja encarecidamente el uso de FTP, pero por el momento no tengo otra opción al respecto. He configurado FTP aparentemente bastante bien y puedo transferir archivos exitosamente usando FileZilla, CyberDuck y clientes de terminal ftp, pero usando nuestro software iniciará sesión, creará el archivo de 0 bytes y expirará el tiempo de espera (ETIMEDOUT) cada vez, excepto cuando use la red en Mi oficina. He ejecutado esto desde dongles 4G, a través de VPN, en casa, etc. y fallará.
El cliente ftp utilizado en nuestro software esjsftp, que sólo funciona en modo pasivo, por lo que cambiar a activo no es una posibilidad. El software se ejecuta en macOS.
El servidor anterior funciona bastante bien desde cualquier ubicación, es una máquina Debian compartida de MediaTemple que usaba ftpd puro. El nuevo servidor al que estoy migrando ejecuta Ubuntu 16.04 y está alojado en Google Cloud Platform. He usado vsftpd y pure-ftpd. Intenté usar otro servidor de Google Cloud configurado en mi cuenta personal y ocurren los mismos problemas.
No puedo entender dónde radica el problema, el software funciona totalmente bien en el servidor antiguo y cuando se usa en la oficina también funciona perfectamente en los servidores de Google. Muchos otros clientes también pueden acceder a los servidores de Google y funcionan independientemente de si se encuentran en la oficina o no. No puedo encontrar nada en línea sobre esta situación específica, por lo que cualquier idea es bienvenida.
Respuesta1
Mencionaste que el archivo tiene 0 bytes y se agota el tiempo de espera. ¿Ha verificado los permisos de archivo del directorio en el que escribe su software?
Respuesta2
He solucionado este problema del lado del servidor. Me di cuenta de que en las conexiones en las que no podía cargar a través del software si usaba FileZilla, regresaba con "El servidor envió una respuesta pasiva con una dirección no enrutable. En su lugar, usaba la dirección del servidor". pero no obtendría esto con conexiones donde funcionaba el software.
Así que configuré la dirección IP del servidor para el modo pasivo (ForcePassiveIP en ftpd puro) y ahora funciona según lo previsto.
Respuesta3
Cuando abres la VM en GCP, debes actualizar las reglas del firewall:
- EN: TCP 20,21,60000-65535
- SALIDA: TCP 20,21,60000-65535
Luego actualice FTP para usar el rango de puerto pasivo 60000-65535. Luego, en el lado del gabinete, use el modo Pasivo. Detalles e instrucciones -http://sysadm.pp.ua/linux/proftpd-ubuntu-16-04.html