Regístrate para acceder a más de 15 cursos gratuitos de programación con un simulador

Interfaces Administración de Linux

Cuando hablamos de redes en Linux, hay un concepto muy importante que debemos conocer: el de las interfaces de red. Vamos paso a paso y con ejemplos para que todo quede claro.

¿Qué es una interfaz de red?

La interfaz de red es como un canal que usa nuestro sistema operativo (Linux en este caso) para comunicarse con el mundo, ya sea a través de un cable (como Ethernet), por Wi-Fi o incluso ¡con él mismo!

Podemos comparar una interfaz con una ventana: unas dan al exterior (como Internet), y otras simplemente dan al pasillo interno (que usarían aplicaciones del mismo computador).

Existen dos tipos principales de interfaces:

  • Físicas: Están asociadas a una tarjeta de red real, como la de un cable Ethernet o conexión Wi-Fi.
  • Virtuales: No están conectadas a ningún hardware, pero permiten que los programas se comuniquen entre sí en el mismo equipo, como si lo hicieran por red.

¿Cómo ver las interfaces de red en Linux?

Para ver las interfaces activas en nuestro sistema, usamos el comando:

ifconfig

Este es uno de los primeros comandos que usamos cuando queremos entender qué está pasando con la red en nuestro Linux.

Veamos un ejemplo de salida del comando:

eth0      Link encap:Ethernet  HWaddr 08:00:27:31:65:b5
          inet addr:10.0.2.15  ...

lo        Link encap:Local Loopback
          inet addr:127.0.0.1  ...

Analicemos la salida

eth0

  • Esta es una interfaz física.
  • "eth" viene de Ethernet.
  • Si tuviéramos más tarjetas, veríamos cosas como eth1, eth2, etc.
  • El campo inet addr muestra la dirección IP asignada a esa interfaz, en este caso 10.0.2.15.

lo

  • Esta es la interfaz de loopback (bucle local).
  • Es una interfaz virtual, siempre presente, incluso si el computador no está conectado a ninguna red.
  • Su dirección IP es siempre 127.0.0.1 y también la podemos llamar localhost.
  • Muy útil para probar aplicaciones sin salir de nuestro propio equipo.

💡 Si quieres ver cómo se asocia localhost con la IP 127.0.0.1, puedes mirar el archivo:

cat /etc/hosts

Allí verás una línea como esta:

127.0.0.1   localhost

¿Cómo se relacionan los servicios de red con las interfaces?

Cuando ejecutamos un servicio de red (como una API, una base de datos o una app web), lo hacemos sobre una dirección IP y un puerto.

Por ejemplo, en Python podemos levantar un servidor muy simple usando el módulo http.server, que viene incluido con Python:

python3 -m http.server 8000

Esto significa:

  • El servidor se abre en la IP localhost (127.0.0.1) por defecto.
  • Escucha en el puerto 8000.

La salida se verá así:

Serving HTTP on :: port 8000 (http://[::]:8000/) ...

Este servidor entrega archivos desde la carpeta actual y resulta muy útil en los siguientes casos:

  • Queremos probar algo desde nuestro propio equipo.
  • No queremos que nadie más pueda acceder al servicio (por seguridad).

¿Qué pasa si queremos que se pueda acceder desde otros equipos?

Si queremos que el servidor pueda ser usado desde otros dispositivos en la misma red (como tu celular, otro computador, etc.), debemos indicarle a Python que escuche en todas las interfaces disponibles.

Lo hacemos así:

python3 -m http.server 8000 --bind 0.0.0.0

Esto le dice a Python:

Escucha en cualquier interfaz que tenga el computador: físicas, virtuales, todas...

Eso permite que, si conoces la IP de tu equipo (por ejemplo, 10.0.2.15), puedas acceder al servidor desde otro dispositivo usando:

http://10.0.2.15:8000
Dirección ¿Disponible desde afuera? Descripción
localhost (127.0.0.1) No Solo sirve localmente
0.0.0.0 Escucha en todos los interfaces

¿Qué tener en cuenta para producción?

Aunque es muy útil abrir un servicio a toda la red, también tiene riesgos:

  • Puede ser atacado desde fuera si no está protegido
  • Es mejor poner un proxy (como Nginx o Apache) que actúe como intermediario
  • Algunos servicios, como bases de datos, no deberían estar directamente expuestos

Un proxy ayuda a:

  • Controlar el acceso
  • Cargar balanceadamente múltiples servicios
  • Agregar capas de seguridad o compresión

Resumen

  • En Linux, una interfaz de red puede ser física (como eth0) o virtual (como lo, loopback).
  • Podemos ver las interfaces activas con ifconfig.
  • El IP 127.0.0.1 (localhost) apunta hacia nuestro propio equipo.
  • localhost es ideal para probar servicios sin exponerlos.
  • Para acceder a un servicio desde otro computador, usamos 0.0.0.0 para escuchar en todas las interfaces.
  • Es importante tener cuidado con la seguridad al abrir servicios a la red.

Trabajo independiente

1️⃣ Si aún no lo has hecho, regístrate en DigitalOcean y crea un droplet con la distribución de Ubuntu. Si este servicio no está disponible para ti, o se te acabó el crédito, puedes usar otros servicios como Linode

2️⃣ Enciende en el droplet un servidor web en Python, como el que ejecutamos antes. La página debe ser accesible desde fuera.

Puedes apoyarte en la documentación de http.server para completar esta tarea.

Para acceder completo a curso necesitas un plan básico

El plan básico te dará acceso completo a todos los cursos, ejercicios y lecciones de Códica, proyectos y acceso de por vida a la teoría de las lecciones completadas. La suscripción se puede cancelar en cualquier momento.

Obtener acceso
130
cursos
1000
ejercicios
2000+
horas de teoría
3200
test

Obtén acceso

Cursos de programación para principiantes y desarrolladores experimentados. Comienza tu aprendizaje de forma gratuita

  • 130 cursos, 2000+ horas de teoría
  • 1000 ejercicios prácticos en el navegador
  • 360 000 estudiantes
Al enviar el formulario, aceptas el «Política de privacidad» y los términos de la «Oferta», y también aceptas los «Términos y condiciones de uso»

Nuestros graduados trabajan en empresas como:

Bookmate
Health Samurai
Dualboot
ABBYY