Ftp

De Wikiunix

 


La orden ftp es la interfaz de usuario que nos proporciona UNIX para el uso del Protocolo de Transferencia de Ficheros (FTP). Este protocolo permite a un usuario enviar archivos a una máquina remota. También permite recuperar ficheros de ella.

Contenido

Sintáxis

La orden ftp posee la siguiente sintaxis:
ftp [opciones] [dirección [puerto]]

Opciones

Dentro de las variadas opciones que dispone el comando destacamos las siguientes:

  • -p: Usar modo pasivo para las transferencias de archivos. Permite usar el protocolo ftp cuando hay un cortafuegos que bloquea las conexiones desde el servidor al cliente. Requiere que el servidor soporte la opción. En las nuevas versiones de ftp se toma por defecto pero se mantiene por compatibilidad hacia atrás.
  • -i: Desactiva el modo interactivo durante la transferencia de múltiples archivos.
  • -n: Evita que ftp haga auto-login en la conexión inicial.
  • -v: Modo verbose. Muestra todas las respuestas del servidor remoto.

Dirección y puerto

Después de las opciones, tenemos que especificar la máquina a la que se va a acceder mediante ftp. Tenemos tres formas de hacerlo:

  • Indicando la dirección IP y el puerto por donde la máquina remota escuchará las peticiones ftp. El puerto es opcional y si no se indica nada se seleccionará el puerto por defecto de ftp que es el 21.
  • Indicando el nombre de la máquina remota que añade el usuario y su contraseña (opcionales) a la manera anterior: nombre:contraseña:@direcciónIP:puerto. Todo menos la dirección IP son opcionales.
  • Es posible también indicar únicamente la url del servidor ftp.

Funcionamiento

Una vez se ejecuta la orden ftp, se abre una conexión entre la máquina remota y el equipo que ejecuta la orden. Si el servidor ftp al que nos queremos conectar permite solo el acceso a usuarios registrados, obtenemos un mensaje que nos pide un usuario y una contraseña para iniciar sesión. Hay también servidores ftp que permiten el acceso anónimo (servicio FTP anonymous) tecleando anonymous como usuario. Esto es muy común en servidores de descargas de programas o Drivers.

Una vez dentro del servidor podemos usar distintas ordenes para transferir y descargar archivos. Las más importantes son:

  • !orden: Ejecuta la orden en el servidor remoto.
  • cd: Igual que en UNIX. Permite cambiar de directorios dentro del servidor.
  • get archivo: Permite descargar el archivo desde la máquina remota a la máquina del usuario. Si se quieren descargar múltiples archivos se usa mget.
  • put archivo: Almacena el archivo del usuario en la máquina remota. Si se quieren enviar múltiples archivos se usa mput.
  • ls: Igual que la orden en UNIX.
  • help: Ayuda de los comandos de ftp.
  • close: Cierra la conexión con el servidor ftp.
  • bye: Hace lo mismo que close y además cierra el programa ftp.

Ejemplos de uso

Conexión con dirección IP

ftp 10.15.14.13

Nos conectamos a la máquina con la IP 10.15.14.13

Conexión con usuario, dirección IP y puerto

ftp pepe@10.15.1.13:350

Nos conectamos a la máquina pepe@10.15.1.13 por el puerto 350.

Conexión con URL

ftp ftp.rediris.es

Nos conectamos a la máquina llamada ftp.rediris.es. Puesto que este servidor existe (no es inventado como el de la IP de los ejemplos anteriores), veamos un ejemplo de la respuesta que obtendríamos:

Connected to zeppo.rediris.es.

220----------- Welcome to Pure-FTPd [privsep] [TLS] ----------

220-You are user number 36 of 3000 allowed.

220-<<

220- Bienvenido al FTP anónimo de RedIRIS.

220-Welcome to the RedIRIS anonymous FTP server.

220->>

220-Local time is now 22:50. Server port: 21.

220-Only anonymous FTP is allowed here

220-IPv6 connections are also welcome on this server.

220 You will be disconnected after 5 minutes of inactivity. Name (ftp.rediris.es:usuario): usuario

331- RedIRIS - Red Académica y de Investigación Española

331- RedIRIS - Spanish National Research Network

331- ftp://ftp.rediris.es -=- http://ftp.rediris.es

331-Debido a una incidencia hardware del almacenamiento que utiliza el servicio, éste

331-no estará disponible hasta nuevo aviso. Rogamos disculpen las molestias que este

331-fallo les pueda ocasionar. Estamos trabajando para resolver esta incidencia lo antes

331-posible.

331 Any password will work Password:

230 Any password will work Remote system type is UNIX. Using binary mode to transfer files.

ftp> bye

221-Goodbye. You uploaded 0 and downloaded 0 kbytes.

221 Logout.


Como se puede observar, a pesar de ser un servidor público, nos pide un usuario y una contraseña. En este caso, valdrá cualquiera puesto que como hemos mencionado antes es público. A continuación vamos a ver cómo haríamos para conectarnos a un servidor sin tener que loguearnos, lo cual puede ser porque ya hemos entrado más de una vez o sea público.

Con autologin

Bastaría con usar la opción -n de la orden:

ftp -n ftp.rediris.es

Veamos como la respuesta que obtenemos es distinta a la anterior y más corta:

Connected to zeppo.rediris.es.

220---------- Welcome to Pure-FTPd [privsep] [TLS] ----------

220-You are user number 43 of 3000 allowed.

220-<<

220- Bienvenido al FTP anónimo de RedIRIS.

220-Welcome to the RedIRIS anonymous FTP server.

220->>

220-Local time is now 22:54. Server port: 21.

220-Only anonymous FTP is allowed here

220-IPv6 connections are also welcome on this server.

220 You will be disconnected after 5 minutes of inactivity. Remote system type is UNIX. Using binary mode to transfer files.

ftp> bye

221-Goodbye. You uploaded 0 and downloaded 0 kbytes.

221 Logout.


Vemos en este caso como se ha conectado automáticamente sin necesidad se introducir usuario y contraseña. Este modo se usa mucho para conectarse a servidores públicos de descargas como por ejemplo el de Nvidia para descargar drivers.

Opciones avanzadas para administración de sistemas

Múltiples ficheros

Podemos usar la opción -i si vamos a transferir/recibir muchos archivos del servidor FTP y no queremos que el servidor pregunte:

ftp -i Servidor

Una vez dentro usaremos mget para recibir múltiples ficheros y mput para enviar múltiples ficheros.

Ver las respuestas del servidor

Si queremos monitorizar todas las respuestas del servidor tenemos que usar la opción -v para obtener todos los mensajes que pueda enviar el servidor.

ftp -v Servidor

Modo pasivo cuando hay un cortafuegos

Si hay un cortafuegos bloqueando las conexiones en dirección del servidor al cliente usando la opción -p podremos permitir que se realicen esas conexiones. Sólo se usará en las versiones antiguas de ftp puesto que en las nuevas viene como opción por defecto.

ftp -p Servidor

Notas sobre el programa

No se debe confundir el programa ftp que es sobre el que se basa el artículo con el protocolo FTP que es el encargado de la transferencia de los ficheros. El programa ftp comentado aquí es uno de los muchos clientes que usan el protocolo FTP y que por defecto viene instalado en la mayoría de las distribuciones de Linux.

Programas relacionados

  • Telnet Tenet complementa a Ftp en el sentido de que puede abrir un terminal virtual en una máquina remota. Con esta terminal se pueden realizar muchas tareas de administración en la máquina remota excepto transferir archivos para lo que se utiliza la mencionada Ftp.
  • SSH Alternativa a telnet que añade seguridad en el sentido de cifrar la información.

Referencias

Enlaces de interés

Herramientas personales