Saltar al contenido

Cómo configurar FTP en una máquina virtual de Azure

Posteriormente a buscar en varios repositorios y sitios webs de internet finalmente nos encontramos con la solución que te mostramos a continuación.

Solución:

Hay un gran tutorial de julio de 2012 ‘Hosting FTP on IIS 7.5 in a Windows Azure VM’ por Ronald Wildenberg sobre esto. Se hace eco de la respuesta de David. Estas son las etapas por las que atraviesa:

  1. En primer lugar, necesita una máquina virtual. Necesitaba una máquina Windows con una base de datos SQL Server, así que elegí ‘Microsoft SQL Server 2012 Evaluation Edition’ de las plantillas disponibles.
  2. Una vez que la máquina se haya iniciado, puede acceder mediante RDP a través de la opción de conexión en la parte inferior del portal de administración.
  3. Cuando esté dentro, debe configurar IIS. Un resumen de los pasos necesarios:
    • Agregue la función ‘Servidor web (IIS)’ al servidor.
    • Agregue las funciones de IIS que necesita.
    • Agregue un punto final TCP a su VM en el portal de administración con el puerto público y privado 80.
  4. Para habilitar FTP, asegúrese de habilitar los servicios de la función ‘Servidor FTP’ para su función IIS:
  5. El siguiente paso es crear el sitio FTP real en IIS. Haga clic con el botón derecho en ‘Sitios’ en el Administrador de IIS y seleccione ‘Agregar sitio FTP …’
  6. Especifique el nombre y la ruta local del sitio:
  7. Especifique la información de enlace y SSL:
  8. Y finalmente especifique quién debería tener acceso al sitio FTP.
  9. Ahora debería poder acceder al sitio FTP desde la máquina virtual. Abra un símbolo del sistema, escriba ftp 127.0.0.1 e iniciar sesión
  10. Para FTP activo, debe permitir el acceso a los puertos 21 (puerto de comando FTP) y 20 (puerto de datos FTP), por lo que debe agregar dos puntos finales a su VM
  11. para configurar FTP pasivo. Para que esto funcione, necesitamos decirle al servidor FTP de IIS el rango de puertos que puede usar para las conexiones de datos y necesitamos agregar puntos finales a la VM que correspondan a este rango de puertos.
  12. Configure el rango de puertos y la dirección IP externa para conexiones de datos pasivas. Esto se puede encontrar en el Administrador de IIS
  13. La dirección IP externa debe ser la dirección IP virtual que puede encontrar en el portal de administración de Azure.
  14. Si no puede especificar el rango de puertos del canal de datos en el Administrador de IIS, use la utilidad appcmd, que se puede encontrar en %windir%system32inetsrv: appcmd set config /section:system.ftpServer/firewallSupport /lowDataChannelPort:7000 /highDataChannelPort:7014
  15. Puede especificar los 15 nuevos puntos de conexión en Azure Portal, pero eso llevaría años, así que use los cmdlets de Windows Azure Powershell.
  16. descargue el archivo de configuración de publicación. Una forma es iniciar Windows Azure Powershell y usar el cmdlet ‘Get-AzurePublishSettingsFile’. Abre un navegador y le permite descargar el archivo de configuración de publicación que corresponde a su identificación de Windows Live.
  17. Cuando haya descargado el archivo de configuración de publicación, puede importarlo mediante el cmdlet ‘Import-AzurePublishSettingsFile’ y estamos listos para comenzar a agregar puntos de conexión.
  18. Simplemente creé un archivo de texto que contenía la lista de comandos que quería ejecutar y lo copié en la ventana de Powershell: Get-AzureVM -ServiceName 'myServiceName' -Name 'ftpportal' | Add-AzureEndpoint -Name 'FTPPassive00' -Protocol 'TCP' -LocalPort 7000 -PublicPort 7000 | Update-AzureVM donde ‘myServiceName’ es el nombre de mi servicio en la nube y ‘ftpportal’ es el nombre de mi máquina virtual.
  19. Aunque el firewall de Windows parece permitir todo el tráfico necesario, también debe habilitar el filtrado FTP con estado en el firewall: netsh advfirewall set global StatefulFtp enable
  20. reiniciamos el servicio FTP de Windows y deberíamos estar en funcionamiento:
    • net stop ftpsvc
    • net start ftpsvc

Vale la pena seguir estos pasos en el artículo original, sobre todo porque incluye capturas de pantalla útiles para cada paso, pero pensé que valía la pena citarlo extensamente aquí por si acaso. El artículo también menciona FTP activo frente a FTP pasivo, una explicación definitiva que vale la pena leer.

Sería genial si pudiera informar que después de seguir estos pasos, su servidor FTP basado en Azure VM estará funcionando y será accesible. Pero, desafortunadamente, los pasos anteriores no me solucionaron 🙁

Si no le importa usar FileZilla FTP Server,

Esto es lo que hice para habilitar la conexión FTP a mi VM.

  1. Vaya a Azure VM (manage.windowsazure.com) y agregue 2 puntos de conexión:
    1. Nombre: FTP (Protocolo TCP, Puerto público 21, Puerto privado 21)
    2. Nombre: FTP pasivo (protocolo TCP, puerto público 60000, puerto privado 60000)
  2. Vuelva a VM (a través de RDP), abra la conexión para el puerto 21 y 60000 en la regla de entrada del Firewall de Windows.
  3. Descargue y abra FileZilla Server.
  4. Haga clic en Editar -> Usuarios y agregue el usuario y el directorio compartido según sea necesario.
  5. Haga clic en Editar -> Configuración. En la barra lateral, haga clic en Configuración del modo pasivo.
  6. Marque “usar rango de puerto personalizado” e ingrese 60000-60000
  7. En la parte específica de ip4, seleccione el botón de radio “usar la siguiente ip” e ingrese su xxxx.cloudapp.net.
  8. Guarde y ejecute el servidor. Eso es todo, ahora puede conectarse a FTP desde fuera de la VM.

Espero que ayude a alguien.

Salud

Después de regatear por un tiempo con la lista de 15 puntos anterior, recibí el mensaje que MS está tratando de pasar: “No (fácil) FTP para usted” …

Así que volví al viejo y abierto mundo de Linux: configuré un servidor SCP usando Cygwin. Incluso obtienes un caparazón remoto como bonificación …

1) Ejecute el instalador de Cygwin: https://cygwin.com/setup-x86.exe

2) En ‘Seleccionar paquetes’, busque

  • cygrunsrv (seleccione el que está debajo de ‘Admin’)
  • openssh (seleccione el que está debajo de ‘Red)

3) Cuando termine, inicie Cygwin Terminal y escriba:

  • ssh-host-config -y -pwd S0me-Str0ng-pa55w0rd

  • cygrunsrv -S sshd

4) Desde la máquina virtual de Azure, agregue un punto de conexión SSH

5) En Windows FireWall, agregue la regla de entrada para el puerto TCP 22

Y viola: puedes conectarte usando WinSCP, Notepad ++ y Putty, por supuesto …

Notas:

  • Unix distingue entre mayúsculas y minúsculas, así que escriba su usuario en mayúsculas y minúsculas, por ejemplo, Administrador con A mayúscula
  • Sus unidades están bajo / cygdrive (c: está en / cygdrive / c, etc.)

¡Buena suerte!

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *