Utilisation et configuration courante de la connexion FTP sous Linux

Introduction au protocole FTP

FTP est l'abréviation anglaise de File Transfer Protocol (File Transfer Protocol), tandis que l'abréviation chinoise est "Text Transfer Protocol". Utilisé pour la transmission bidirectionnelle des fichiers de contrôle sur Internet. En même temps, c'est aussi une application (Application). Il existe différentes applications FTP basées sur différents systèmes d'exploitation, et toutes ces applications suivent le même protocole pour transférer des fichiers. Dans l'utilisation du FTP, les utilisateurs rencontrent souvent deux notions : "download" (Download) et "upload" (Upload). "Télécharger" un fichier signifie copier un fichier d'un hôte distant vers votre propre ordinateur ; "télécharger" un fichier signifie copier un fichier depuis votre propre ordinateur vers un hôte distant. En langage Internet, les utilisateurs peuvent télécharger (télécharger) des fichiers vers (depuis) ​​des hôtes distants via des programmes clients.

FTP utilise l'interface utilisateur du protocole Internet standard de transfert de fichiers FTP pour fournir aux utilisateurs un ensemble d'applications permettant de gérer les transferts de fichiers entre ordinateurs.

FTP est conçu sur la base du modèle client-serveur (C/S) et deux connexions sont établies entre le client et le serveur FTP.

Le développement de tout logiciel client basé sur FTP doit suivre le principe de fonctionnement de FTP. L'avantage unique de FTP et la plus grande différence par rapport aux autres programmes client-serveur est qu'il utilise deux connexions TCP entre deux hôtes communicants. L'une est une connexion de données, utilisé pour la transmission de données ; l'autre est une connexion de contrôle, utilisée pour transmettre des informations de contrôle (commande et réponse), cette idée de transmettre séparément les commandes et les données améliore considérablement l'efficacité du FTP, tandis que d'autres applications client-serveur Généralement, il n'y a qu'un seul Connexion TCP. La figure 1 montre le modèle de base de FTP. Le client comporte trois composants : l'interface utilisateur, le processus de contrôle du client et le processus de transfert des données du client. Le serveur comporte deux composants : le processus de contrôle du serveur et le processus de transfert des données du serveur. Dans toute la session FTP interactive, la connexion de contrôle est toujours connectée et la connexion de données est ouverte puis fermée à chaque fois qu'un fichier est transféré.

méthode de transfert

Il existe deux modes de transmission FTP : ASCII et binaire.

  • La méthode de transfert ASCII
    suppose que le fichier que l'utilisateur copie contient du texte ASCII simple. Si la machine distante n'exécute pas UNIX, ftp ajustera généralement automatiquement le contenu du fichier lorsque le fichier est transféré afin qu'il puisse interpréter le fichier tel qu'il est stocké sur un autre ordinateur Le format du fichier texte.
    Mais il existe souvent une telle situation, les fichiers que l'utilisateur transfère ne contiennent pas de fichiers texte, il peut s'agir de programmes, de bases de données, de fichiers de traitement de texte ou de fichiers compressés. Avant de copier des fichiers non textuels, utilisez la commande binaire pour dire à ftp de les copier textuellement.
  • Mode de transfert binaire
    Dans le transfert binaire, l'ordre des bits du fichier est préservé afin que l'original et le copié soient dans une correspondance bijective bit par bit. Même les fichiers contenant des séquences de bits sur la machine de destination n'ont aucun sens. Par exemple, macintosh transmet des fichiers exécutables au système Windows en mode binaire, et ce fichier ne peut pas être exécuté sur l'autre système.
    Si les fichiers binaires sont transférés en mode ASCII, ils seront toujours traduits même s'ils ne sont pas nécessaires. Cela peut corrompre les données. (Les méthodes ASCII supposent généralement que le premier bit significatif de chaque caractère n'a pas de sens, car les combinaisons de caractères ASCII ne l'utilisent pas. Lors du transfert de fichiers binaires, tous les bits sont significatifs.)

mode d'assistance

Le client FTP lance une session FTP et établit une connexion correspondante avec le serveur FTP. Pendant la session FTP, deux connexions, le processus d'information de contrôle et le processus de données, doivent être établies. La connexion de contrôle ne peut pas terminer la tâche de transfert de données et ne peut être utilisée que pour transmettre des informations de contrôle telles que des commandes internes et des réponses de commande exécutées par FTP ; la connexion de données est la connexion entre le serveur et le client pour transférer des fichiers, qui est pleine -duplex et permet un transfert de données bidirectionnel simultané. Lorsque le transfert de données est terminé, la connexion de données sera retirée, puis reviendra à l'état de session FTP jusqu'à ce que la connexion de contrôle soit retirée et que la session soit fermée.

FTP prend en charge deux modes : Standard (mode PORT, mode actif), Passif (PASV, mode passif).

  • En mode Port,
    le client FTP établit d'abord une connexion avec le port TCP 21 du serveur pour envoyer des commandes.Lorsque le client a besoin de recevoir des données, il envoie une commande PORT sur ce canal. La commande PORT contient le port utilisé par le client pour recevoir des données. Lors de la transmission de données, le serveur se connecte au port désigné du client via son propre port TCP 20 pour envoyer des données. Le serveur FTP doit établir une nouvelle connexion avec le client pour transférer les données.

  • Mode passif
    L'établissement d'un canal de contrôle est similaire au mode Standard, mais la commande Pasv est envoyée une fois la connexion établie. Une fois que le serveur a reçu la commande Pasv, il ouvre un port temporaire (le numéro de port est supérieur à 1023 et inférieur à 65535) et notifie au client la demande de transmission de données sur ce port. Le client se connecte sur ce port du serveur FTP , puis le serveur FTP transmettra les données via ce port.
    De nombreux pare-feu ne sont pas autorisés à accepter les connexions externes lorsqu'ils sont définis, de sorte que de nombreux serveurs FTP derrière le pare-feu ou sur l'intranet ne prennent pas en charge le mode PASV, car le client ne peut pas traverser le pare-feu pour ouvrir le port haut de gamme du serveur FTP ; Le client du réseau ne peut pas utiliser le mode PORT pour se connecter au serveur FTP, car le TCP 20 du serveur ne peut pas établir une nouvelle connexion avec le client du réseau interne, ce qui entraîne une panne de travail.

Considérations sur les clients FTP

Selon que le client FTP possède une adresse IP publique, qu'un pare-feu est installé et que le serveur FTP connecté est configuré, les éléments suivants doivent être notés :

  • Si le client FTP n'a pas d'adresse IP publique, seule la méthode PASV peut être utilisée pour se connecter au serveur FTP ;
  • Si le client FTP a une adresse IP publique et qu'un pare-feu est installé, lors de l'utilisation de PORT pour se connecter au serveur FTP, les ports haut de gamme supérieurs à 1024 doivent être ouverts sur le pare-feu pour s'assurer que lors de la connexion à la liaison de données, la demande de connexion de le serveur vers le client ne sera pas bloqué par un pare-feu

Étapes de connexion du protocole FTP

Vous pouvez lire cet article écrit par l'auteur, qui est très détaillé :
https://blog.csdn.net/qq_37460687/article/details/125921156

Commandes communes FTP

Téléchargez et téléchargez. Le port 21 est utilisé pour la connexion et le port 20 est utilisé pour la transmission de données.

Lors du transfert de fichiers FTP, le client se connecte d'abord au port 21 du serveur FTP pour l'authentification de l'utilisateur. Après une authentification réussie, lors du transfert de fichiers, le serveur ouvrira un port 20 pour transférer les fichiers de données.

Commandes courantes FTP sous Linux

Connectez-vous au serveur FTP sous Linux

  • se connecter au FTP
# 格式:ftp [hostname | ip-address]
ftp 192.168.1.122
  • déconnecter la connexion ftp
quit

Fonctionnement du répertoire FTP sous Linux

  • voir le répertoire courant
pwd
  • Entrez le répertoire spécifié
    # 格式:cd remote-directory
    cd
  • Créer un répertoire
mkdir 目录名
  • supprimer le répertoire
rmdir 目录名
  • Afficher tous les répertoires et fichiers du répertoire actuel
 # 格式:ls [remote-directory] [local-file]
 # 说明:remote-directory 指定要查看其列表的目录。如果没有指定将使用远程计算机中的当前工作目录。 local-file指要存储列表的本地文件,如果没有将输出将显示在屏幕上。
ls
  • Afficher le fichier de suffixes spécifié
dir .jpg

Fonctionnement du fichier FTP sous Linux

  • supprimer un seul fichier
    # 格式:delete remote-file
    delete 文件名
  • supprimer plusieurs fichiers
    # 格式:mdelete remote-files [ ...]
    mdelete 文件名
  • renommer le fichier
    # 格式:rename filename newfilename
    rename test atest
  • télécharger des fichiers
    # 格式:put local-file [remote-file]
    put /home/a.txt /mydata/b.txt
  • télécharger un seul fichier
    # 格式:get [remote-file] [local-file]
    get /mydata/a.txt /apps/b.txt
  • télécharger plusieurs fichiers
    # 进入指定目录
    cd /usr/your/

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

autres commandes

  • interroger toutes les commandes
# help[cmd]:显示FTP命令的帮助信息,cmd是命令名,如果不带参数,则显示所有FTP命令

Code d'erreur FTP

code décrire discuter
série 100 L'action demandée a été initiée, une autre réponse est attendue avant de procéder à une nouvelle commande.
110 Redémarrez la réponse marquée. Le texte est exact et n'est pas laissé à une implémentation particulière ; il doit être "MARK yyyy = mmmm", où yyyy est la marque du flux de données du processus utilisateur, et la marque équivalente pour le serveur mmmm (notez l'espace entre la marque et le " =" ).
120 Le service est prêt en nn minutes.
125 La connexion de données est ouverte ; le transfert a commencé.
150 État du fichier correct ; sur le point d'ouvrir la connexion de données. FTP utilise deux ports : 21 pour envoyer des commandes et 20 pour envoyer des données. Un code d'état de 150 signifie que le serveur ouvrira une nouvelle connexion sur le port 20 pour envoyer des données.
série 200 L'opération demandée s'est terminée avec succès.
200 Commande bien.
202 La commande n'est pas implémentée et est redondante sur ce site.
211 État du système ou réponse d'aide du système.
212 Statut du répertoire.
213 état du dossier.
214 message d'aide.
215 NOM type de système. où NAME est le nom officiel du système de la liste dans le document "Designated Numbers".
220 Le service est prêt pour les nouveaux utilisateurs.
221 Le service a fermé la connexion de contrôle. Déconnectez-vous si nécessaire.
225 La connexion de données est ouverte ; aucun transfert n'est en cours.
226 Fermez la connexion de données. L'opération de fichier demandée a réussi (par exemple, transfert de fichier ou abandon de fichier). Cette commande ouvre une connexion de données sur le port 20 pour effectuer des opérations, telles que le transfert de fichiers. L'opération s'est terminée avec succès et la connexion de données a été fermée.
227 Entrez en mode passif. (h1,h2,h3,h4,p1,p2)
230 Utilisateur connecté, continuer. Ce code d'état s'affiche une fois que le client a envoyé le mot de passe correct. Il indique que l'utilisateur s'est connecté avec succès.
250 Opération de fichier demandée OK, c'est fait.
257 "PATHNAME" a été créé.
série 300 La commande a été acceptée, mais l'opération demandée est en attente de la réception d'informations complémentaires.
331 Le nom d'utilisateur est correct, un mot de passe est requis. Vous verrez ce code d'état une fois que le client aura envoyé un nom d'utilisateur, que le nom d'utilisateur fourni soit ou non un compte valide sur le système.
332 Connexion au compte requise. Fournir les identifiants de connexion
350 L'opération de fichier demandée attend des informations supplémentaires.
série 400 La commande n'a pas été acceptée et l'opération demandée ne s'est pas produite, mais la condition d'erreur est temporaire et l'opération peut être demandée à nouveau.
421 Erreur 421 Service indisponible, fermeture de la connexion de contrôle. Erreur 421 Limite d'utilisateurs atteinte Erreur 421 Vous n'êtes pas autorisé à vous connecter Erreur 421 Nombre maximal de connexions atteint Erreur 421 Nombre maximal de connexions dépassé Cela peut être une réponse à n'importe quelle commande si le service sait qu'il doit s'arrêter. Veuillez essayer de vous connecter plus tard.
425 Impossible d'ouvrir la connexion de données. Passez du mode PASV au mode port, vérifiez les paramètres de votre pare-feu ou essayez de vous connecter via HTTP.
426 Connexion fermée, transfert interrompu. La commande a ouvert une connexion de données pour effectuer l'opération, mais l'opération a été annulée et la connexion de données a été fermée. Essayez de vous reconnecter ; contactez votre fournisseur d'hébergement pour vérifier si votre compte d'hébergement doit être augmenté ; essayez de désactiver le pare-feu sur votre PC et voyez si cela résout le problème. Si ce n'est pas le cas, vérifiez auprès de votre fournisseur d'hébergement ou de votre FAI.
450 L'opération de fichier demandée n'a pas été effectuée. Le fichier n'est pas disponible (par exemple, le fichier est occupé). Réessayez plus tard.
451 L'opération demandée a été abandonnée : erreur locale de traitement. Assurez-vous que la commande et les paramètres sont entrés correctement.
452 L'opération demandée n'a pas été effectuée. Espace de stockage insuffisant dans le système. Demandez à l'administrateur FTP d'augmenter l'espace de stockage alloué ou d'archiver/supprimer des fichiers distants.
série 500 该命令未被接受,并且请求的操作未发生。
500 语法错误,命令无法识别,命令行太长。 尝试切换到被动模式。
501 参数或参数中的语法错误。 验证您的输入; 例如,确保没有错误的字符,空格等。
502 命令未实现。 服务器不支持此命令。
503 错误的命令序列。 验证命令序列。
504 未对该参数实现命令。 确保输入的参数正确。
530 用户未登录。 确保键入正确的用户名和密码组合。某些服务器在达到用户限制时使用此代码,而不是421
532 需要存储文件的帐户。 登录的用户没有在远程服务器上存储文件的权限。
550 请求的操作未执行。文件不可用,找不到,无法访问 验证您是否尝试连接到正确的服务器/位置。远程服务器的管理员必须为您提供通过FTP进行连接的权限。
552 请求的文件操作中止。超过存储分配。 需要更多的磁盘空间。存档远程服务器上不再需要的文件。
553 请求的操作未执行。不允许文件名。 更改文件名中的文件名或删除空格/特殊字符。
10,000系列 常见Winsock错误代码(Winsock错误代码的完整列表)
10054 连接由对等体复位。远程主机强制关闭连接。
10060 无法连接到远程服务器。 一般是超时错误。尝试从PASV切换到端口模式,或尝试增加超时值。
10061 无法连接到远程服务器。服务器主动拒绝连接。 尝试切换连接端口。
10066 目录不为空。 当其中有文件/文件夹时,服务器不会删除此目录。如果要删除目录,请首先归档或删除其中的文件。
10068 用户过多,服务器已满。 尝试在另一时间登录。

Je suppose que tu aimes

Origine blog.csdn.net/qq_37596943/article/details/127343591
conseillé
Classement