Lista de comandos FTP para la línea de comandos de Windows. Cómo crear un servidor FTP y acceder a él desde Internet

La mayoría de las veces, los usuarios no comparten archivos en línea. tallas grandes Utilice el correo electrónico o Skype. Sin embargo, cuando se necesita enviar un archivo de fotografías o una película de varios gigabytes de tamaño, estos servicios no se pueden utilizar. El intercambio público de archivos también crea algunas dificultades, por ejemplo, esperar un temporizador y limitar la velocidad. La mejor solución en este caso, cree su propio servidor FTP.

ftp ( Transferencia de archivos Protocolo) es un protocolo para transmitir información en Internet y local. redes informáticas. Este es un programa que hace conexión remota a una carpeta dedicada para ver y compartir archivos, incluidos los de gran tamaño. El intercambio de datos es posible desde una computadora a un servidor remoto y entre otros servidores FTP.

Los datos se transmiten sin cifrado de tráfico, por lo que los atacantes pueden acceder fácilmente a nombres de usuario y contraseñas. Para una transferencia segura de archivos, se recomienda utilizar un protocolo protegido por TLS: FTPS, que cifra los datos.

Tener tu propio servidor FTP tiene ciertas ventajas:

  • le permite administrar el servidor y sus recursos;
  • proporcionar a los usuarios diferentes derechos de acceso;
  • no requiere una dirección IP estática.
  • sin límites de velocidad;
  • falta de pago al proveedor de alojamiento por alojarlo;

Dependiendo de la dificultad de acceso, seleccionas software. Para crear un servidor FTP para uso privado con una configuración mínima, los paquetes de software gratuitos son muy adecuados.

Microsoft agregado a Windows 7 función de internet Servicios de Información (IIS), que proporciona acceso general de la red a una carpeta destinada a tal efecto. Por lo tanto, para crear un servidor FTP para Windows 7, no es necesario instalar ningún software adicional.

Instalación de un servidor FTP

Alguno características estándar, que no se utilizan con mucha frecuencia, están deshabilitados de forma predeterminada en Windows 7. Por tanto, para poder activarlos es necesario seguir una serie de pasos.

Para crear un servidor FTP en Windows 7 necesita:

  • Haga clic en "Inicio" y abra la sección "Panel de control". Para facilitar la visualización, puede seleccionar el modo "Iconos pequeños".

  • Vaya a la sección "Programas y características" y seleccione "Activar o desactivar las características de Windows".

  • En la lista del menú que se abre, debe seleccionar los componentes que deben activarse marcando la casilla junto a ellos. Esta es la carpeta "Servidor FTP", contiene dos elementos: "Extensibilidad FTP" y "Servicio FTP", así como la carpeta "Herramientas de administración de sitios web", y en ella está la "Consola de administración IIS". Para comenzar, haga clic en Aceptar.

Configurar un servidor FTP

  1. Ahora debe pasar de "Inicio" al "Panel de control" nuevamente.
  2. Busque la sección "Administración" y abra "Administrador de servicios IIS" en esta sección.
  3. Vaya a la pestaña "Sitios", haga clic derecho en el nombre, seleccione "Agregar sitios FTP" de la lista.
  4. En la nueva ventana deberá especificar el nombre del futuro servidor FTP y la ruta al directorio con sus datos. Puede pasar al siguiente paso de configuración haciendo clic en el botón "Siguiente".
  5. Ahora los parámetros del servidor están configurados. En el campo de dirección IP, seleccione la que necesita de la lista. Puedes vincularlo a dirección específica o ampliar el acceso seleccionando “Todo gratis”. En este caso, se debe marcar el puerto estándar 21. Si planea utilizar constantemente el servidor FTP, debe marcar la casilla de verificación "Iniciar sitio FTP automáticamente". Seleccione la opción "Sin SSL"; puede habilitarla más tarde si es necesario. Haga clic en "Siguiente" nuevamente.
  6. En una nueva ventana, se especifica el tipo de autorización. En el elemento "Autenticación", puede permitir el inicio de sesión para usuarios habituales o anónimos. Aquí puede configurar derechos para ellos. Haga clic en "Listo".

Una vez completada la instalación, aparecerá un nuevo servidor FTP en la sección "Sitios".

Configurar el firewall de Windows

Ahora es imperativo configurar el Firewall de Windows para abrir puertos y permitir el funcionamiento de los servicios.

Vuelva al “Panel de control”, luego “ Cortafuegos de Windows" Busque la sección "Configuración avanzada".

En él, seleccione "Reglas para conexiones entrantes". Se recomienda configurarlos en modo pasivo. Para hacer esto, haga clic derecho y habilite las reglas “ Servidor FTP Pasivo" y "Servidor FTP ( tráfico entrante)". De la misma forma, para conexiones salientes, habilite la regla "Servidor FTP" en la sección correspondiente.

Conectando usuarios

Para que los usuarios puedan acceder al servidor, deben estar conectados.

  • En la pestaña "Panel de control", abra la carpeta "Administración".

sección de administración

  • Busque la sección "Administración de computadoras", luego navegue hasta " Usuarios locales" Haga clic derecho en la línea "Grupos" y seleccione la función "Crear grupo". En la nueva ventana, especifique el nombre y una breve descripción del grupo y haga clic en "Crear".
  • Ahora puede conectar usuarios al grupo creado. En la carpeta "Usuarios locales", haga clic derecho en la línea "Usuarios" y seleccione "Nuevo" en la lista del menú. Complete los campos ingresando su nombre y contraseña, y aquí debe marcar la casilla de prohibición de cambiar la contraseña.
  • Para conectar a un usuario, haga clic derecho en su cuenta y seleccione el elemento "Propiedades" de la lista del menú, luego la pestaña "Membresía de grupo" y el botón "Agregar". Busque el grupo creado, agréguelo y haga clic en Aceptar. Este procedimiento debe realizarse para todos los usuarios del servidor.
  • En siguiente etapa Se determinan los derechos de acceso de los usuarios del grupo al directorio de trabajo. Para hacer esto, vaya al directorio "Sitio", haga clic derecho en el nombre y abra "Propiedades". A continuación, en la pestaña "Seguridad", en el elemento "Cambiar", especifique el nombre del grupo y haga clic en Aceptar. Entonces necesitas configurar los derechos de usuario.
  • Ingrese al "Administrador de servicios IIS" haciendo clic derecho en la línea "Reglas" autorización FTP", agregue una regla de permiso. Puede permitir que los usuarios escriban y eliminen datos, o solo puede leerlos.

La instalación y configuración del servidor está completa. Sin embargo, ahora necesita saber cómo iniciar sesión en el servidor FTP.

Estándar Características de Windows hazlo fácil. Simplemente abra la carpeta "Mi PC", luego en barra de direcciones especifique la ruta al servidor.

Otra forma es crear un acceso directo para conectarse a FTP en el escritorio de su computadora.

Para hacer esto, abra el "Panel de control", haga clic derecho en la sección "Entorno de red". En tareas, seleccione "Agregar" nuevo elemento a una ubicación de red”, luego haga clic en “Seleccionar otra ubicación de red” y “Siguiente”. Ahora aparecerá un acceso directo en la sección "Ubicación de red", que sólo tendrás que arrastrar y soltar en tu escritorio.

Hola administrador, Por favor explíqueme qué es un servidor FTP y ¿puedo crearlo yo mismo en mi computadora?

En fin, tengo uno normal en casa. unidad del sistema y tres computadoras portátiles, todas estas máquinas están conectadas a Internet a través de un enrutador, ¿puedo desde computadora de escritorio hacer uno real ¿Servidor FTP y descargar y cargar archivos directamente desde todas las computadoras portátiles? Recién instalado en una computadora normal disco duro 3 TB y resulta que nadie lo usa, todos los familiares prefieren portátiles que ya se están quedando sin espacio en disco.

¡Hola amigos! Nuestro Ro8 escribió un excelente artículo para usted sobre este tema, léalo.

En primer lugar, FTP es un protocolo para transferir archivos a través de Internet utilizando el principio cliente-servidor, y El servidor FTP es un almacenamiento de archivos en Internet, es decir: computadora normal Con ventanas instaladas 7, 8.1 o Servidor Windows 2012 y varios discos duros gran volumen, en el que se puede ubicar cualquiera de sus archivos. Esta computadora tiene un programa instalado, por ejemplo: Servidor FileZilla , cualquier otra persona puede conectarse a esta computadora usando: línea de comando , Explorador de Windows Y varios programas, consideraremos dos en nuestro artículo:Cliente FileZilla , Y comandante total . Después de conectarse a Usando un servidor FTP, puede cargar cualquier archivo (películas, música, etc.) y también descargarlos.

ControlEl servidor FTP será ejecutado por el administrador que instaló el programa. Servidor FileZilla. Aquí es donde puedes asignar diferentes derechos de acceso a cada usuario. (oportunidad cambios de archivos en el servidor): Agregar (la capacidad de cambiar archivos), Leer (solo lectura), Escribir (grabar), Eliminar (eliminar). Naturalmente, la mayoría de los usuarios no necesitan tener derechos de eliminación.

  • Nota: Desde casi cualquier computadora o laptop (incluso con una sola disco duro) se puede hacer Servidor FTP y conectarle otras computadoras para recibir archivos, y no es en absoluto necesario que todas las computadoras estén conectadas a un enrutador,Se puede crear un servidor FTP en Internet y darle acceso a cientos y miles de usuarios.

como sucede el trabajo

Como implementación de software Servidores FTP El artículo analizará el programa FileZilla Server, que se instalará en una máquina con Windows Server 2012.

Además, la máquina desde la que se realizará la conexión al servidor FTP creado es un ordenador con ventanas preinstaladas 8.1 Empresa (x64)

Para que una máquina con Windows 8.1 se conecte al servidor FTP, se instalará en ella el programa Cliente FileZilla (uno de los métodos para conectarse usando este programa)

Vaya a https://filezilla-project.org y descargue FileZilla Server y FileZilla Client

Archivo descargado Ejecutamos FileZilla Server en una máquina con Windows Server 2012, A Archivo de cliente FileZilla en una máquina con Windows 8.1. Ambos programas se instalan de la misma manera. Primero que nada, instalemos programa FileZilla Servidor.

Instalación del servidor FileZilla

Después de iniciar la descarga Archivo FileZilla Servidor en Windows Server 2012, haga clic en siguiente

Haga clic en Instalar

Instalar

Proceso de instalación del servidor FileZilla

Instalación completa

Después de la instalación se abrirá una ventana como esta en la que ingresamos la dirección local del servidor FTP y hacemos clic en Aceptar

Después de entrar dirección local Servidor FTP aparecerá la ventana principal del programa FileZilla Server

Hagamos algunas configuraciones seleccionando Editar-Usuarios

En la pestaña General, para agregar un nuevo usuario, haga clic en el botón Agregar

Ingrese su nombre de usuario. DE ACUERDO

Junto a Contraseña, marque la casilla e ingrese la contraseña del usuario agregado

Vaya a la pestaña Carpetas compartidas. En esta pestaña agregaremos la carpeta FTP01 que estará disponible para el usuario creado Ro8. Haga clic en Agregar

Especifique la carpeta FTP01 creada anteriormente. DE ACUERDO

Seleccione la carpeta agregada y especifique los derechos de acceso para ella: - Leer (solo lectura), Escribir (escribir), Eliminar (eliminar), Agregar (la capacidad de cambiar archivos en esta carpeta)

Determinar la dirección IP de una máquina que ejecuta Windows Server 2012 (192.168.1.4)

Instalación del cliente FileZilla

Pasamos a una máquina con Windows 8.1 e instalamos el programa FileZilla Client

Aceptamos el acuerdo de licencia.

Instalación

Instalación completa

Tenemos una red representada en el diagrama.

Conectémonos al servidor FTP de varias formas.

Conéctese al servidor FTP usando la línea de comando

En una máquina con Windows 8.1, inicie la línea de comando.

Especifique el nombre de usuario (Ro8) e ingrese la contraseña. La contraseña no se muestra al ingresar

Iniciar sesión significa que hemos iniciado sesión en el servidor FTP

Creemos una carpeta My_Backup_win8.1 en el servidor FTP, ingresando comando mkdir Mi_copia de seguridad_win8.1

Veamos la lista de carpetas en el servidor FTP ingresando el comando ls

Como puede ver, hay una carpeta My_Backup_win8.1 en el servidor FTP.

Cierre la conexión al servidor FTP ingresando el comando bye

Conexión a un servidor FTP utilizando el programa T comandante total

Ejecutemos el archivo en una máquina con Windows 8.1 gerente total Comandante. Para configurar una conexión al servidor FTP, haga clic en el botón que se muestra en la captura de pantalla

Haga clic en Agregar

Especificamos el nombre de la conexión (opcional), el servidor y el puerto (el servidor es la dirección IP del servidor FTP, puerto 21). También indicamos el usuario y contraseña. DE ACUERDO

Selecciona lo creado conexión FTP y haga clic en Conectar

Conexión al servidor FTP establecida

Para desconectarse del servidor FTP, haga clic en Desconectar

Desconexión del servidor FTP completada

Conexión a un servidor FTP usando el programa Cliente FileZilla

Iniciemos el programa FileZilla Client

Se abrirá la ventana principal del programa.

Los comandos FTP están diseñados para intercambiar archivos entre computadoras en red privada o a través de Internet.

Hay tres formas de acceder a FTP:

  • Clientes FTP de línea de comando.
  • Navegador.
  • Clientes FTP gráficos.

Los dos primeros son remedios simples, que le permiten utilizar un navegador o una aplicación cliente FTP, como FTP Voyager, para conectarse a un servidor FTP y compartir archivos. Usando la interfaz de línea de comando, ingresa un conjunto de comandos para enviar o recibir archivos desde otras computadoras.

Operante sistemas windows Macintosh X y Linux tienen clientes de línea de comandos integrados que pueden usarse para establecer una conexión FTP. Para iniciar una conexión en Windows, ingrese comandos cmd FTP y presione Entrar.

Comandos FTP para la línea de comandos de Windows

Equipo Descripción
! Este comando se utiliza para cambiar entre el sistema operativo y FTP. para regresar de Sistema operativo El comando de salida se utiliza para acceder a la línea de comando FTP.
? Mostrar ayuda para un comando.
añadir Agregar texto a un archivo local.
ascii Cambie al modo de transferencia de datos ASCII.
campana Activa/desactiva el modo de señal de sonido.
binario Configure el modo de transferencia de archivos binarios.
adiós Salga de FTP.
CD Cambiar el directorio actual.
cerca Salga de FTP.
borrar Eliminando un archivo.
depurar Activa/desactiva el modo de depuración.
directorio Muestra una lista de archivos.

dir -C = Archivos de salida en formato extendido.

dir -1 = Enumera los archivos en orden alfabético.

dir -r = Enumera los directorios en orden alfabético inverso.

dir -R = Enumera todos los archivos en el directorio y subdirectorios actuales.

dir -S = Enumera los archivos en orden alfabético.

desconectar salir del FTP.
conseguir Recibir un archivo desde una computadora remota.
globo Alterna la configuración de la extensión del archivo. Cuando está deshabilitado, los argumentos de nombre de archivo para los comandos put y get se toman literalmente y no se expanden.
picadillo Activa/desactiva la visualización del signo '#'. Cuando está habilitado, se muestra un carácter almohadilla (#) después de cada 1024 bytes de datos transferidos.
ayuda Muestra información del comando si el comando se ingresa después de la ayuda.
pantalla LCD Muestra el directorio local en el que se ejecutó el comando. Si se especifica una ruta después del comando lcd, cambia el directorio local actual.
literal Despacho cadena arbitraria personajes como un comando servidor remoto esperando un único código de respuesta.
es este ftp comando ejecutable muestra archivos en una computadora remota.
meliminar Eliminar varios archivos.
mdir Mostrar el contenido de directorios remotos.
obtener Recibir múltiples archivos.
mkdir Crear un directorio en una computadora remota.
mls Muestra el contenido de varios directorios en una computadora remota.
mputar Envío de múltiples archivos.
abierto Establece una conexión.
inmediato Activa/desactiva la información sobre herramientas.
poner Enviando un archivo.
persona con discapacidad Genere el directorio de trabajo.
abandonar Finalizando la sesión ftp.
cita Envío de un comando arbitrario.
recv Recibir un archivo.
ayuda remota Obtener ayuda sobre los comandos del sistema remoto.
rebautizar Cambia el nombre del archivo.
rmdir Elimina un directorio en una computadora remota.
enviar Enviando un archivo.
estado Muestra el estado actual de las opciones habilitadas y deshabilitadas.
rastro Habilita el seguimiento de paquetes.
Tipo Establece el tipo de transferencia de archivos.
usuario Envío de información del usuario para iniciar sesión en el servidor.
verboso Activa/desactiva el modo información.

Comandos FTP para Windows

Parámetros FTP para comando cadenas de windows

Las opciones CMD se utilizan para cambiar el funcionamiento de los comandos FTP. La opción de línea de comando generalmente sigue al comando FTP principal, separada por un espacio. Aquí hay una lista de opciones de línea de comandos FTP comúnmente utilizadas para Windows®:

Opción de línea de comando Descripción
-v Deshabilite la visualización de respuestas de un servidor remoto.
-norte Cerrar inicio de sesión automático tras la conexión inicial.
-i Deshabilitar solicitudes interactivas al enviar múltiples
-d Al habilitar el modo de depuración, se muestran todos los comandos FTP enviados entre el cliente y el servidor.
-gramo Deshabilitar extensiones de archivo que permiten comodines en los nombres archivos locales y maneras.
-s:nombre de archivo Ejercicio archivo de texto, que contiene comandos FTP que

se ejecutará automáticamente cuando inicie FTP. No se permiten espacios en este parámetro. Utilice esta opción en lugar de la redirección (>).

-a Uso interfaz local para unir la conexión.
-w: tamaño de ventana Anular tamaño estándar buffer de transmisión (65535).
computadora Especificar el nombre o la dirección IP del host remoto al que desea conectarse. Computadora, si se especifica, debe ser el último parámetro de la línea.


Opciones de línea de comando FTP para Windows

El cliente FTP de consola integrado en Windows y Mac OS X es herramienta confiable para pruebas y resolución de problemas. Aprender los comandos cmd ftp anteriores le ayudará a compartir archivos entre computadoras sin instalar software adicional.

FTP no es un método de intercambio confiable información confidencial. Debido a las limitaciones de este protocolo, las organizaciones tienden a utilizar los protocolos FTPS y SFTP para la transferencia de archivos. Tecnología de transferencia de archivos administrada ( MFT) admite estos protocolos de seguridad.

La transferencia de información en Internet se realiza de varias formas. Según las reglas del protocolo HTTP, los datos se representan mediante un lenguaje de marcado de hipertexto. Cualquier navegador recibe el contenido del sitio del servidor en forma de descripción de hipertexto y lo convierte en una imagen de páginas.

El protocolo FTP está diseñado para intercambio simple archivos entre nodos de red, cuando los archivos se transfieren sin ningún cambio o transformación. Cuando conecta una computadora remota a un servidor FTP, la copia de archivos entre ellos ocurre de manera similar a las operaciones en el Explorador de la PC local. Hubo un tiempo en que FTP se desarrolló específicamente para transferir archivos y, por lo tanto, este protocolo es la herramienta óptima para compartir archivos.

Usando World Wide Web(www), descargamos y enviamos datos a los servidores diariamente utilizando el protocolo http. También puede descargar archivos almacenados en numerosos servidores FTP a su PC. Miles de servidores FTP proporcionan acceso anónimo acceso libre hasta gigabytes de una amplia variedad de datos: distribuciones de software, imágenes, archivos de texto, audio y vídeo.

Además, en muchos servidores hay directorios grabables para almacenar archivos de usuario. Esto garantiza que las bibliotecas se repongan con información nueva. Estas secciones se pueden utilizar para respaldo o distribución adicional de archivos a través de la red. Por tanto, los archivos FTP son un depósito disperso de información almacenada en forma de archivos en varios servidores por todo el mundo. Popular hoy almacenamiento en la nube data es solo una alternativa moderna a los servicios de intercambio de archivos FTP.

Aunque FTP es uno de los más antiguos protocolos de red, para muchos usuarios, los recursos de Internet FTP siguen siendo un área inexplorada.

Existen muchas aplicaciones de escritorio para trabajar con hosts ftp. Uno de los clientes ftp más populares es el programa gratuito FileZilla.

Descargue FileZilla Client desde el sitio web oficial http://filezilla.ru/get/

Para que con la ayuda de este aplicación cliente Para conectarse a un servidor FTP necesita tener su dirección. Y definitivamente debes saber que el archivo que estás buscando está escrito en uno de sus directorios. Y necesita saber el nombre del archivo, o al menos parte de su nombre. De hecho, ya no se trata de buscar un archivo, sino de recuperarlo de forma precisa y específica.

Puede averiguar el nombre del archivo en las páginas con su descripción, después de buscar en Google, por ejemplo, el tema de interés. A continuación, una vez que tenga el nombre del archivo, puede recurrir a los motores de búsqueda ftp. Se han creado muchos motores de búsqueda especiales de este tipo. Puede encontrarlos en Internet buscando: “motor de búsqueda ftp”. También hay catálogos. abrir servidores ftp, como por ejemplo: https://goo.gl/U7e4us

Intentemos buscar y descargar desde un servidor ftp un pequeño programa útil para grabar una imagen de disco, ImgBurn.

Para buscar en archivos ftp utilizamos el servicio krasfs.ru. EN barra de búsqueda ingrese el nombre del archivo y busque solo en FTP:

Si lo solicita, se abren una docena de archivos con el paquete de distribución de la aplicación. clic derecho mouse desde el menú contextual con el comando: “Guardar enlace como...” abra el Explorador de PC y guarde el archivo en el directorio seleccionado:


Parece que esta búsqueda de archivos no es nada impresionante. Después de todo, descarga última versión similar programa gratuito más fácil desde el sitio web oficial del desarrollador.

Vale la pena acceder a los recursos ftp de la forma habitual en las páginas del sitio web. archivo requerido no está ubicado. O tendrá que copiar un archivo grande de la red: más de 100 MB. Porque, en igualdad de condiciones, un archivo de un archivo ftp se descargará más rápido.

Y ahora veamos cómo funciona. Administrador de FileZilla. Descargué, instalé y abrí el programa. Copie la dirección del enlace del motor de búsqueda krasfs.ru:

y pégalo en el campo del programa: “Host:”. No cumplimentamos el resto de campos, ya que el acceso al servidor es anónimo, y pulsamos el botón " Conexión rápida"Después de un tiempo, la aplicación se conecta al alojamiento. En el lado derecho de la ventana del programa, expanda la estructura de directorios del servidor ftp, vaya a la carpeta final según el enlace del motor de búsqueda: ftp://82.209. 233.14 /media/soft/Beloff/BWPI/Portable/ ImgBurn.exe y en el cuarto inferior derecho de la ventana encontramos el archivo que buscamos:


Haga clic derecho en el archivo y selecciónelo menú contextual haga clic en el comando "Descargar" y observe el proceso de copia:


Es muy conveniente trabajar en FileZilla: una interfaz amigable, todos los directorios están de un vistazo. Al mismo tiempo, si se pierde la conexión con el servidor, el archivo se puede descargar en el cliente ftp. Si simplemente descarga usando un navegador, como se muestra arriba, después de una conexión interrumpida tendrá que comenzar a copiar nuevamente.

Prestemos atención al servicio krasfs.ru. Además de los archivos de archivos FTP este motor de búsqueda encuentra distribuciones en los sitios de dos docenas de rastreadores de torrents populares. Para buscar utilizamos los nombres de películas o libros, los nombres de los autores de las obras, los artistas intérpretes o ejecutantes. Cuando encuentre el archivo, copie la dirección del enlace y agréguelo al cliente torrent:


Entonces, armado servicio universal krasfs.ru, utilizando directorios ftp, comenzamos a explorar los repositorios ftp disponibles. Al explorar los recursos FTP en busca de lo que necesita, también puede encontrar en las carpetas otros materiales interesantes y exclusivos: archivos únicos de una variedad de áreas. Es una reminiscencia de la pesca: pescar uno puede traer suerte inesperada. Es decir, existe la intriga por encontrar algo raro, poco conocido.

Si ha estado leyendo este blog durante mucho tiempo, quizás recuerde cómo decidí recopilar en él una descripción de los protocolos de red populares (y no tan populares). Por qué necesito esto, puedes leer en el artículo Una descripción bastante completa del protocolo SMTP. Entonces decidí agregar a la colección el protocolo FTP, que se usa ampliamente para transferir archivos.

1. vamos

Como siempre, empezaré ahora mismo con un ejemplo:

$ telnet ejemplo.ru 21
Probando 192.168.0.1...
Conectado a ejemplo.ru.
El carácter de escape es "^]".
220-Bienvenido a Pure-FTPd
Eres el usuario número 5 de 100 permitidos.
La hora local es ahora las 17:41. Puerto del servidor: 21.
220 Te desconectarás después de 15 minutos de inactividad.
USUARIO afiskon
331 Usuario afiskon OK. Se requiere contraseña
PASS contraseña coja
230 usuarios afiskon tiene acceso grupal a: codificadores
230 bien. El directorio restringido actual es /

El servidor FTP normalmente se ejecuta en el puerto 21. En el ejemplo anterior, las líneas que comienzan con números las envía el servidor, el resto, el cliente. Las solicitudes de los clientes siempre constan de una única línea de formato. COMANDO [argumentos], mientras que las respuestas del servidor pueden contener varias líneas.

La primera y la última línea comienzan con tres números que representan el código de respuesta, seguidos de descripción del texto respuesta, separada del código por un espacio o un guión. Si se utiliza un espacio como delimitador, entonces la línea es la última de la respuesta (y posiblemente la única); de lo contrario, recibimos la primera línea de una respuesta de varias líneas. Ya hemos visto esto en alguna parte, ¿no?

Hay cinco grupos de respuesta del servidor:

Como puede ver en el ejemplo, todo comienza cuando el servidor envía el código 220. Luego, el usuario debe iniciar sesión usando los comandos USUARIO y PASS. Si todo se hace correctamente, el servidor responderá al primero con el código 331, y al segundo con 230. Para inicio de sesión anónimo(si la configuración del servidor lo permite), debe especificar "anónimo" como nombre de usuario y su correo electrónico como contraseña. En la práctica, normalmente un correo electrónico vacío o algo como [correo electrónico protegido].

Como puede ver, la contraseña se envía a formulario abierto Por lo tanto, es muy recomendable cifrar la conexión FTP mediante SSL (esto se llama FTPS - FTP más SSL) y, mejor aún, transferir archivos a través de SSH utilizando las utilidades scp, sftp o WinSCP. Los dos primeros están disponibles en cualquier sistema Unix y utilizan los mismos protocolos que se ejecutan sobre SSH para transferir archivos. WinSCP está escrito para Windows y se parece a Total Commander; puede funcionar tanto con el obsoleto SCP (Copia segura) como con SFTP (Protocolo de transferencia de archivos SSH), que apareció solo en SSH-2.

2. Miremos a nuestro alrededor

Pero algo me llevó a la estepa equivocada. Después de pasar la autenticación (wow, no lo confundiré con autorización) El servidor FTP ejecutará felizmente nuestros comandos. Aquí está su lista:

Equipo Código esperado Descripción
DELEÁTUR 250 Eliminar archivo
RMD 250 Eliminar directorio
CWD 250 Ir al directorio
MKD 257 Crear directorio
PWD 257 Descubra el directorio actual
ABANDONAR 221 terminar el trabajo
TIPO 200 Establecer tipo de transferencia
PUERTO 200 Cambiar al modo activo
PASV 227 Cambiar al modo pasivo
LISTA 150, 226 Obtener contenidos del directorio
RETROCEDER 150, 226 Descargar archivo
ALMACENAMIENTO 150, 226 Subir archivo
ABORAR 426,226 Cancelar transferencia
RNFR 350 Seleccione el archivo para cambiar el nombre
RNTO 250 Cambiar nombre de archivo

Aquí sólo he enumerado comandos básicos, que son suficientes para escribir un cliente FTP completo. El punto es que en condiciones reales Los servidores FTP son muy selectivos a la hora de admitir los comandos descritos en RFC959 y RFC3659. Entonces, si queremos obtener una aplicación que realmente funcione, y no un caballo esférico en el vacío, tendremos que limitarnos solo a los comandos de la lista dada.

lo mas comandos simples- Este SALIR, BORRAR, MKD, CWD y RMD. Simplemente ordenamos y verificamos el código devuelto por el servidor. Si es igual al valor esperado, entonces todo está bien, si no, procesamos el error.

MKD ftp_test
257 "ftp_test": el directorio se creó correctamente
CWD ftp_test
250 bien. El directorio actual es /ftp_test
CWD..
250 bien. El directorio actual es /
RMD ftp_test
250 El directorio se eliminó exitosamente

Si estuviera escribiendo un cliente FTP, el código responsable de ejecutar estos comandos se vería así:

código entero;
carbón * directorio;
// ...
si (código = rawcmd(250, "RMD %s \r\n", dirección) )
printf("Error: %d \norte", código);
demás
printf("¡Todo listo! \norte") ;

Un poco más difícil analizar la respuesta del servidor a un comando PWD:

PWD
257 "/ftp_test" es tu ubicación actual

El directorio actual se transmite en la única (¿última?) línea de la respuesta del servidor, encerrada entre comillas dobles. Si nombre completo El directorio actual contiene comillas dobles, se reemplazan por dos comillas:

PWD
257 "/ftp""test" es su ubicación actual

Para cambiar el nombre de los archivos, se utilizan un par de comandos: RNFR y RNTO:

RNFR archivo_antiguo.zip
350 Eres¿bromear?
RNTO nuevo_archivo.zip
250 ¡Listo!

Aparentemente, se trata de una optimización para que el búfer en el que el servidor lee los comandos del cliente sea del orden de la longitud máxima permitida del nombre completo del archivo, y no el doble. En 1971, cuando se creó el protocolo, esto podría haber sido importante.

Equipo TIPO le permite configurar el modo de transferencia de archivos. Ejemplo:

TIPO E
200 TIPO ahora es EBCDIC
TIPO A
200 TIPO ahora es ASCII
TIPO I
200 TYPE ahora es binario de 8 bits

Hasta donde puedo decir, hoy este comando ya está desactualizado y todos los datos se pueden transmitir de manera segura en formato binario (TIPO I). Cita de Wikipedia:

Las primeras computadoras usaban un formato de palabra de máquina de tamaño de bytes, una palabra de máquina doble, no un múltiplo de 8. Generalmente eran múltiplos de seis. Durante el desarrollo del sistema de instrucción de máquina para IBM System/360 se adoptaron ocho bits por byte. se convirtió estándar internacional Y desde principios de los años 1970 La mayoría de las computadoras utilizan bytes de 8 bits y palabras de máquina en múltiplos de 8.

3. Tomemos medidas

Peculiaridad protocolo ftp- utilizado para ejecutar comandos y transferir archivos diferentes conexiones. Esta es generalmente una decisión de diseño normal. No sabemos qué está escrito en estos archivos y, si los transmitimos junto con comandos, tendremos que codificar de alguna manera el contenido del archivo para distinguirlo de los comandos. ¿Por qué aumentar la cantidad de tráfico y complicar el protocolo cuando simplemente puedes abrir una nueva conexión y enviar el archivo tal cual?

Al establecer una nueva conexión, alguien debe conectarse realmente y alguien debe aceptar la conexión. Si el cliente abre un puerto y el servidor se conecta a él, el modo de transferencia de archivos se llama activo. De lo contrario, es pasivo. Debido a que hoy en día muchos usuarios de Internet utilizan NAT, generalmente se utiliza el modo pasivo. Y esto no es muy bueno, porque la cantidad de puertos en el servidor es limitada.

Lo interesante es que es posible transferir archivos de un servidor FTP a otro directamente. Pero como esta función se utilizaba a menudo en ataques DDoS, ahora está desactivada en casi todas partes.

Para cambiar al modo pasivo, use el comando PASV, para cambiar a activo - PUERTO:

PUERTO 192,168,10,1,21,133
Comando 200 PORT exitoso
PASV
227 Entrando en modo pasivo (192,168,0,1,21,216)

Como puede imaginar, la dirección IP y el puerto de conexión están codificados mediante números. Digamos que estamos en modo pasivo y queremos establecer una conexión de datos:

$ telnet 192.168.0.1 `expr 21 \* 256 + 216`
Probando 192.168.0.1...
Conectado a ejemplo.ru.
El carácter de escape es "^]".

Después de lo cual podemos, por ejemplo, ver el contenido del directorio actual usando el comando LISTA:

LISTA
150 Conexión de datos aceptada
226-Opciones: -a -l
226 5 partidos en total

Veamos la salida de telnet:

drwx------ 5 codificadores afiskon 512 7 de julio a las 11:35.
drwx------ 5 codificadores afiskon 512 7 de julio 11:35 ..
drwxr--r-- 3 codificadores afiskon 512 6 de junio 14:30 sitio web
drwxr-xr-x 2 codificadores afiskon 1024 7 de julio 00:16 registros
drwxr--r-- 2 codificadores afiskon 512 6 de junio 14:30 tmp
Conexión cerrada por host extranjero.

La descarga y carga de archivos se realiza exactamente de la misma manera, solo se utilizan los comandos RETR (archivo) Y ALMACENAMIENTO (archivo) respectivamente. Los comandos RETR, STOR y LIST se pueden interrumpir en mitad de la ejecución usando el comando ABORAR, ante lo cual el servidor debería responder con 426 “transferencia interrumpida”, y luego con 226 “la cancelación de la operación fue exitosa”.

4. Conclusión

Aquí es donde probablemente terminaré mi historia. El resultado fueron 9 KB de texto frente a 130 KB de RFC959. Basado en este artículo, es muy posible escribir un simple cliente FTP o servidor, lo comprobé! Lo más importante es probar su compatibilidad con el máximo numero posible Software, porque, como señalé, en el mundo FTP, pocas personas siguen estrictamente el RFC. Y, por último, recuerde la regla de oro: "Sea liberal con los aportes y estricto con los resultados".




Arriba