Cómo usar y configuración común de la conexión FTP bajo Linux

Introducción al Protocolo FTP

FTP es la abreviatura en inglés de File Transfer Protocol (Protocolo de transferencia de archivos), mientras que la abreviatura en chino es "Protocolo de transferencia de texto". Se utiliza para la transmisión bidireccional de archivos de control en Internet. Al mismo tiempo, también es una aplicación (Aplicación). Existen diferentes aplicaciones FTP basadas en diferentes sistemas operativos, y todas estas aplicaciones siguen el mismo protocolo para transferir archivos. En el uso de FTP, los usuarios suelen encontrarse con dos conceptos: "download" (Download) y "upload" (Subir). "Descargar" un archivo significa copiar un archivo desde un host remoto a su propia computadora; "cargar" un archivo significa copiar un archivo desde su propia computadora a un host remoto. En el lenguaje de Internet, los usuarios pueden cargar (descargar) archivos a (desde) hosts remotos a través de programas cliente.

FTP utiliza la interfaz de usuario del protocolo de transferencia de archivos estándar de Internet FTP para proporcionar a los usuarios un conjunto de aplicaciones para administrar las transferencias de archivos entre computadoras.

FTP está diseñado en base al modelo cliente-servidor (C/S), y se establecen dos conexiones entre el cliente y el servidor FTP.

El desarrollo de cualquier software de cliente basado en FTP debe seguir el principio de funcionamiento de FTP. La ventaja única de FTP y la mayor diferencia con respecto a otros programas cliente-servidor es que utiliza dos conexiones TCP entre dos hosts que se comunican. Una es una conexión de datos, utilizado para la transmisión de datos; el otro es una conexión de control, que se utiliza para transmitir información de control (comando y respuesta), esta idea de transmitir comandos y datos por separado mejora en gran medida la eficiencia de FTP, mientras que otras aplicaciones de servidor cliente generalmente solo hay una Conexión TCP. La Figura 1 muestra el modelo básico de FTP. El cliente tiene tres componentes: la interfaz de usuario, el proceso de control del cliente y el proceso de transferencia de datos del cliente. El servidor tiene dos componentes: el proceso de control del servidor y el proceso de transferencia de datos del servidor. En toda la sesión de FTP interactivo, la conexión de control siempre está conectada y la conexión de datos se abre y luego se cierra cada vez que se transfiere un archivo.

método de transferencia

Hay dos formas de transmisión FTP: ASCII y binaria.

  • El método de transferencia ASCII
    asume que el archivo que el usuario está copiando contiene texto ASCII simple. Si la máquina remota no está ejecutando UNIX, ftp normalmente ajustará automáticamente el contenido del archivo cuando se transfiera para que pueda interpretar el archivo como almacenado. en otra computadora El formato del archivo de texto.
    Pero a menudo existe tal situación, los archivos que el usuario está transfiriendo no contienen archivos de texto, pueden ser programas, bases de datos, archivos de procesamiento de texto o archivos comprimidos. Antes de copiar cualquier archivo que no sea de texto, use el comando binario para decirle a ftp que los copie palabra por palabra.
  • Modo de transferencia binaria
    En la transferencia binaria, el orden de los bits del archivo se conserva de modo que el original y la copia estén en una correspondencia uno a uno bit a bit. Incluso los archivos que contienen secuencias de bits en la máquina de destino no tienen sentido. Por ejemplo, macintosh transmite archivos ejecutables al sistema Windows en modo binario y este archivo no se puede ejecutar en el otro sistema.
    Si los archivos binarios se transfieren en modo ASCII, aún se traducirán aunque no se necesiten. Esto puede dañar los datos. (Los métodos ASCII generalmente asumen que el primer bit significativo de cada carácter no tiene sentido, porque las combinaciones de caracteres ASCII no lo usan. Si se transfieren archivos binarios, todos los bits son significativos).

modo de soporte

El cliente FTP inicia una sesión FTP y establece una conexión correspondiente con el servidor FTP. Durante la sesión FTP, se deben establecer dos conexiones, el proceso de información de control y el proceso de datos. La conexión de control no puede completar la tarea de transferir datos y solo puede usarse para transmitir información de control, como comandos internos y respuestas de comandos ejecutados por FTP; la conexión de datos es la conexión entre el servidor y el cliente para transferir archivos, que está llena -duplex y permite la transferencia de datos bidireccional simultánea. Cuando se complete la transferencia de datos, la conexión de datos se retirará y luego volverá al estado de sesión FTP hasta que se retire la conexión de control y se salga de la sesión.

FTP admite dos modos: Estándar (modo PUERTO, modo activo), Pasivo (PASV, modo pasivo).

  • En modo Puerto,
    el cliente FTP primero establece una conexión con el puerto TCP 21 del servidor para enviar comandos, cuando el cliente necesita recibir datos, envía un comando PORT en este canal. El comando PORT contiene qué puerto usa el cliente para recibir datos. Al transmitir datos, el servidor se conecta al puerto designado del cliente a través de su propio puerto TCP 20 para enviar datos. El servidor FTP debe establecer una nueva conexión con el cliente para transferir datos.

  • Modo pasivo
    El establecimiento de un canal de control es similar al modo estándar, pero el comando Pasv se envía después de establecer la conexión. Después de que el servidor recibe el comando Pasv, abre un puerto temporal (el número de puerto es mayor que 1023 y menor que 65535) y notifica al cliente de la solicitud para transmitir datos en este puerto.El cliente se conecta a este puerto del servidor FTP , y luego el servidor FTP transmitirá datos a través de este puerto.
    Muchos cortafuegos no pueden aceptar conexiones externas cuando están configurados, por lo que muchos servidores FTP detrás del cortafuegos o en la intranet no admiten el modo PASV, porque el cliente no puede atravesar el cortafuegos para abrir el puerto de gama alta del servidor FTP. ; El cliente de la red no puede usar el modo PORT para iniciar sesión en el servidor FTP, porque el TCP 20 del servidor no puede establecer una nueva conexión con el cliente de la red interna, lo que provoca que no funcione.

Consideraciones del cliente FTP

Dependiendo de si el cliente FTP tiene una IP pública, si está instalado un firewall y cómo está configurado el servidor FTP conectado, es necesario tener en cuenta los siguientes elementos:

  • Si el cliente FTP no tiene una IP pública, solo se puede usar el método PASV para conectarse al servidor FTP;
  • Si el cliente FTP tiene una IP pública y está instalado un firewall, al usar PORT para conectarse al servidor FTP, se deben abrir puertos de gama alta por encima de 1024 en el firewall para garantizar que, al conectarse al enlace de datos, la solicitud de conexión de el servidor al cliente no será bloqueado por el firewall

Pasos de conexión del protocolo FTP

Puede leer este artículo escrito por el autor, que es muy detallado:
https://blog.csdn.net/qq_37460687/article/details/125921156

Comandos comunes de FTP

Cargar y descargar. El puerto 21 se utiliza para la conexión y el puerto 20 para la transmisión de datos.

Durante la transferencia de archivos FTP, el cliente primero se conecta al puerto 21 del servidor FTP para la autenticación del usuario. Después de una autenticación exitosa, al transferir archivos, el servidor abrirá un puerto 20 para transferir archivos de datos.

Comandos comunes de FTP en Linux

Conéctese al servidor FTP bajo Linux

  • conectarse a ftp
# 格式:ftp [hostname | ip-address]
ftp 192.168.1.122
  • desconectar conexión ftp
quit

Operación de directorio FTP bajo Linux

  • ver el directorio actual
pwd
  • Introduzca el directorio especificado
    # 格式:cd remote-directory
    cd
  • crear un directorio
mkdir 目录名
  • eliminar directorio
rmdir 目录名
  • Ver todos los directorios y archivos en el directorio actual
 # 格式:ls [remote-directory] [local-file]
 # 说明:remote-directory 指定要查看其列表的目录。如果没有指定将使用远程计算机中的当前工作目录。 local-file指要存储列表的本地文件,如果没有将输出将显示在屏幕上。
ls
  • Ver el archivo de sufijo especificado
dir .jpg

Operación de archivos FTP bajo Linux

  • eliminar un solo archivo
    # 格式:delete remote-file
    delete 文件名
  • eliminar varios archivos
    # 格式:mdelete remote-files [ ...]
    mdelete 文件名
  • renombrar archivo
    # 格式:rename filename newfilename
    rename test atest
  • subir archivos
    # 格式:put local-file [remote-file]
    put /home/a.txt /mydata/b.txt
  • descargar un solo archivo
    # 格式:get [remote-file] [local-file]
    get /mydata/a.txt /apps/b.txt
  • descargar varios archivos
    # 进入指定目录
    cd /usr/your/

    # 格式:mget filename [filename ....]
    mget *.*

otros comandos

  • consultar todos los comandos
# help[cmd]:显示FTP命令的帮助信息,cmd是命令名,如果不带参数,则显示所有FTP命令

Código de error FTP

código describir conversar
serie 100 Se ha iniciado la acción solicitada, se espera otra respuesta antes de proceder con un nuevo comando.
110 Reiniciar la respuesta marcada. El texto es exacto y no se deja a una implementación en particular; debe decir "MARK yyyy = mmmm", donde yyyy es la marca del flujo de datos del proceso del usuario y la marca equivalente para el servidor mmmm (tenga en cuenta el espacio entre la marca y el " =" ).
120 El servicio está listo en nn minutos.
125 La conexión de datos está abierta; la transferencia comenzó.
150 El estado del archivo es correcto; a punto de abrir la conexión de datos. FTP utiliza dos puertos: 21 para enviar comandos y 20 para enviar datos. Un código de estado de 150 significa que el servidor abrirá una nueva conexión en el puerto 20 para enviar algunos datos.
serie 200 La operación solicitada se completó con éxito.
200 orden bien.
202 El comando no está implementado y es redundante en este sitio.
211 Estado del sistema o respuesta de ayuda del sistema.
212 Estado del directorio.
213 estado del archivo.
214 mensaje de ayuda
215 Tipo de sistema NAME. donde NOMBRE es el nombre oficial del sistema de la lista en el documento "Números designados".
220 El servicio está listo para nuevos usuarios.
221 El servicio cerró la conexión de control. Cierra la sesión si corresponde.
225 La conexión de datos está abierta; no hay ninguna transferencia en curso.
226 Cierre la conexión de datos. La operación de archivo solicitada fue exitosa (por ejemplo, transferencia de archivo o cancelación de archivo). Este comando abre una conexión de datos en el puerto 20 para realizar operaciones, como la transferencia de archivos. La operación se completó con éxito y la conexión de datos se cerró.
227 Entra en modo pasivo. (h1, h2, h3, h4, p1, p2)
230 Usuario registrado, continuar. Este código de estado se muestra después de que el cliente haya enviado la contraseña correcta. Indica que el usuario ha iniciado sesión correctamente.
250 La operación de archivo solicitada está bien, listo.
257 Se ha creado "PATHNAME".
serie 300 El comando ha sido aceptado, pero la operación solicitada está en espera a la espera de recibir más información.
331 El nombre de usuario está bien, se requiere una contraseña. Verá este código de estado después de que el cliente envíe un nombre de usuario, independientemente de si el nombre de usuario proporcionado es una cuenta válida en el sistema.
332 Se requiere iniciar sesión en la cuenta. Proporcionar credenciales de inicio de sesión
350 La operación de archivo solicitada espera más información.
serie 400 No se aceptó el comando y no se realizó la operación solicitada, pero la condición de error es temporal y se puede volver a solicitar la operación.
421 Error 421 Servicio no disponible, cerrando conexión de control. Error 421 Límite de usuarios alcanzado Error 421 No está autorizado para conectarse Error 421 Número máximo de conexiones alcanzado Error 421 Número máximo de conexiones excedido Esto puede ser una respuesta a cualquier comando si el servicio sabe que debe cerrarse. Intente iniciar sesión más tarde.
425 No se puede abrir la conexión de datos. Cambie de PASV al modo de puerto, verifique la configuración de su firewall o intente conectarse a través de HTTP.
426 Conexión cerrada; transferencia cancelada. El comando abrió una conexión de datos para realizar la operación, pero la operación se canceló y la conexión de datos se cerró. Intente volver a iniciar sesión; comuníquese con su proveedor de hospedaje para verificar si su cuenta de hospedaje necesita ser incrementada; intente deshabilitar el firewall en su PC y vea si eso soluciona el problema. Si no es así, consulte con su proveedor de alojamiento o ISP.
450 No se realizó la operación de archivo solicitada. El archivo no está disponible (por ejemplo, el archivo está ocupado). Vuelva a intentarlo más tarde.
451 Se abortó la operación solicitada: Error local en el procesamiento. Asegúrese de que el comando y los parámetros se hayan ingresado correctamente.
452 No se realizó la operación solicitada. Espacio de almacenamiento insuficiente en el sistema. Solicite al administrador de FTP que aumente el espacio de almacenamiento asignado o archive/elimine archivos remotos.
serie 500 该命令未被接受,并且请求的操作未发生。
500 语法错误,命令无法识别,命令行太长。 尝试切换到被动模式。
501 参数或参数中的语法错误。 验证您的输入; 例如,确保没有错误的字符,空格等。
502 命令未实现。 服务器不支持此命令。
503 错误的命令序列。 验证命令序列。
504 未对该参数实现命令。 确保输入的参数正确。
530 用户未登录。 确保键入正确的用户名和密码组合。某些服务器在达到用户限制时使用此代码,而不是421
532 需要存储文件的帐户。 登录的用户没有在远程服务器上存储文件的权限。
550 请求的操作未执行。文件不可用,找不到,无法访问 验证您是否尝试连接到正确的服务器/位置。远程服务器的管理员必须为您提供通过FTP进行连接的权限。
552 请求的文件操作中止。超过存储分配。 需要更多的磁盘空间。存档远程服务器上不再需要的文件。
553 请求的操作未执行。不允许文件名。 更改文件名中的文件名或删除空格/特殊字符。
10,000系列 常见Winsock错误代码(Winsock错误代码的完整列表)
10054 连接由对等体复位。远程主机强制关闭连接。
10060 无法连接到远程服务器。 一般是超时错误。尝试从PASV切换到端口模式,或尝试增加超时值。
10061 无法连接到远程服务器。服务器主动拒绝连接。 尝试切换连接端口。
10066 目录不为空。 当其中有文件/文件夹时,服务器不会删除此目录。如果要删除目录,请首先归档或删除其中的文件。
10068 用户过多,服务器已满。 尝试在另一时间登录。

Supongo que te gusta

Origin blog.csdn.net/qq_37596943/article/details/127343591
Recomendado
Clasificación