Glosario

Capítulo que va a contener varias definiciones de conceptos teóricos que pueden ser necesarias de aclarar para las distintas cosas a llevar a cabo

Direcciones IP

Para este artículo, y por simplicidad del tema, vamos a estar hablando de IPv4, y no de IPv6, ya que esta última no desplazó a IPv4 todavía, y es la que se nos asigna en la mayoría de los casos a quienes usamos computadoras conectadas a internet.

Si no sabés de qué habla lo de arriba, no te preocupes :) Seguí leyendo

Qué son las direcciones IP?

Cuando las computadoras se conectan a internet, o a cualquier red, utilizan una "dirección", como la dirección de tu casa, única que les permite identificarse ante el mundo y compartir información con otras computadoras. Desde ya que las otras computadoras también tienen direcciones como la tuya. Estas direcciones se llaman direcciones IP. Su formato son cuatro números del 0 al 255 separados por puntos, por ejemplo: 155.42.3.23.

El problema con las IPs

Sin embargo, las IP tienen una limitación. Al sólo poder ser estos cuatro números, y al sólo poder ir del 0 al 255, tienen cómo límite 4.300 millones de combinaciones. Esto parece un montón, pero recordemos: Cada "computadora", cada aparato electrónico que se pueda conectar a internet, debería tener una. Esto incluye:

Por esto, y sobre todo desde que se empezaron a crear cada vez más tipo de dispositivos conectados a interent, empezó a crecer la preocupación por que se acaben las direcciones de IP. Para solucionar este problema, se decidió separar una cantidad de rangos de IP que no podrían ser utilizados en el internet, y se reservarían para redes locales.

IPs locales

Como solución, estos rangos de IP sólo podrían ser usados en las redes de cada casa, empresa, o lo que sea, y cuando se conectasen a internet, lo harían con la IP del router. De esta forma, una red de casa que conteniese, por ejemplo, 200 dispositivos conectados, sólo tendría una sóla IP a través de la cual se conectaría a internet. Y el dispositivo encargado de hacerlo(el router), tendría la responsabilidad de, cada vez que una computadora externa se conecte con la IP de la casa, "derivar" a la computadora externa hacia la IP local que le corresponda.

Cómo sabemos si una IP es local o de internet

Como mencioné más arriba, las IPs locales pertenecen a un rango específico. Estos son:

Por lo tanto, por ejemplo, la dirección 192.168.10.46sería una dirección local, igual que 172.20.0.157, mientras que direcciones como 172.40.54.23o 192.170.23.4 no lo serían.

Puertos

Los puertos, o ports, en inglés, son esencialmente puntos de conexión de nuestras computadoras hacia otras computadoras. Todas las computadoras se conectan entre sí mediante puertos. Es decir, cualquier conexión que ocurra de una computadora a otra va a ocurrir mediante puertos.

Rango de puertos

Los puertos están numerados: Pueden ser desde el puerto 0 al puerto 65535. Sin embargo, no todos estos puertos son iguales:

Ejemplos de puertos conocidos y usados

Puerto Servicio Descripción
80 http Protocolo de internet
443 https Protocolo de internet(seguro, el candadito
22 ssh Protocolo de "terminal remota" secure shell
21 ftp Protocolo de FTP(File transfer protocol)
25 smtp Protocolo de e-mail
7878 radarr Puerto por defecto utilizado por el programa "radarr"
8096 jellyfin Puerto por defecto de la aplicación "Jellyfin"

Vale destacar que los últimos dos puertos del ejemplo, al ser puertos de la sección de "puertos registrados", pueden llegar a ser usados por otros progamas también. Cuando se instala, por ejemplo, Jellyfin, si el puerto ya está en uso, se puede aclarar al programa que debería utilizar otro.

Dominios

Los dominios son las "direcciones legibles por humanos". Son, por ejemplo google.com, que nos dirige a la IP de google. Los dominios están distribuídos a distintas empresas que los alquilan, o a distintos países que hacen igual. Los dominios de máximo nivel (Top Level Domain, o TLD), por ejemplo, ".com.ar" y ".ar", le corresponden al Estado Argentino, y se consiguen en la página "nic.ar". Hay muchos dominios que son vendidos por entidades privadas, como los dominios ".xyz", ".lat", o incluso los ".com". Páginas que normalmente venden dominios incluyen:

Permisos en Linux(y UNIX)

Esta página aún no fue escrita

Sinopsis

Permisos

Root

SUDO

La Terminal

La terminal (a veces llamada tambíen "consola" o "command line interface"(cli)) es la principal forma de interactuar que vamos a tener con nuestro servidor, especialmente si éste no tiene una interfaz gráfica.

En realidad, todo corre a través de la consola; la interfaz gráfica simplemente nos genera un entorno más "amigable" y, bueno, gráfico, para interactuar con ella, en lugar de "comandos de texto". (Envía dichos comandos de texto por nosotrxs)

Tutorial: conceptos básicos de la consola

Si estás acá es porque ya estamos manejándonos usando la consola como principal forma de interactuar con el server. No paniquees! Es mucho más simple de lo que parece. Ante todo, si querés un tutorial un poco más completo, aunque en inglés, recomiendo este de acá. Si preferís algo más superficial, sigamos!

Qué es la consola?

La consola, simplemente, es un programa que nos permite interactuar con la computadora a través de comandos de texto. Para abrir una, en Linux o Mac, simplemente tenés que buscar el programa "Terminal". En caso de que tengas Windows, la "consola" que tienen ellos se va a llamar la Command Prompt (en español, si no me equivoco, "Símbolo del Sistema", y en ambos idiomas se encuentra como "CMD", también).

IMPORTANTE! En este tutorial, todo lo que veamos va a aplicar a consolas de Linux o macOS (sistemas operativos basados en "UNIX", un sistema operativo abuelito suyo). Si querés seguir el tutorial desde Windows, te recomiendo que busques el "WSL" (Windows Subsystem for Linux), o que lo hagas ya desde una conexión "ssh" con tu servidor.

Si te conectaste por [ssh], felicitaciones! Ya estás usando una terminal.

Lo fundamental

Cuando trabajamos en una terminal (sea con una [conexión remota mediante SSH], o abriendo un "emulador de terminal" (a veces llamado simplemente terminal) o en la consola misma de la computadora, estamos esencialmente usando un programa que espera que corramos "comandos" indicándole qué hacer. Este programa funciona de forma similar al navegador "explorer" de Windows o el "finder" de mac, en un sentido: Los comandos que corramos, va a correrlos en el contexto de una ubicación específica. Cuando recién lo abrimos, esa ubicación suele ser el directorio "home" de nuestro usuario. Por ejemplo, una sesión recién abierta se podría ver así: Captura de pantalla 2025-11-10 a la(s) 12.17.11 a. m..png

Parecen cosas al azar, pero en realidad, la consola nos muestra toda información importante para tener en cuenta:

Qué pasaría si corremos un comando? Probemos con "pwd", que como su nombre indica (path to working directory), nos muestra cúal es el "camino" hacia el directorio de la carpeta en la que estamos trabajando siguiendo la [[estructura jerárquica de directorios]] de Linux. Ingresamos pwd, y tocamos "enter" para enviar el comando, y obtenemos esto: fulando_pwd.png Después de tocar "enter", la computadora nos responde con la dirección al directorio actual (/home/fulano, es decir que desde la carpeta base, conocida como /, entraríamos a la carpeta home, y dentro de ésta estaría la carpeta fulano), y en otra línea nos figura la misma info que antes, simbolizando que nuevamente tenemos control sobre la computadora (y nuevamente está esperando una indicación o comando).

Es importante notar que cuando ingresamos "pwd", no tuvimos que aclarar a dónde era esto, ya que la consola dio por sentado que nos referíamos al directorio en el que nos encontrábamos. Veamos un ejemplo distinto. Si la consola nos mostrase, después de los dos punto, esto: Captura de pantalla 2025-11-10 a la(s) 12.32.44 a. m..png Nos estaría indicando que no estamos trabajando el el directorio "home" de nuestro usuario, sino en el directorio que se encuentra en la ruta /var/log/apt. Si corriésemos el comando pwd, por más redundante que sea, nos mostraría como resultado que, en efecto, ese es el "camino" hacia la carpeta en la que estamos trabajando, y que la consola da por sentado que estamos corriendo el comando desde esa ubicación en los directorios del sistema: Captura de pantalla 2025-11-10 a la(s) 12.33.22 a. m..png.

De la misma forma, y volviendo al directorio "home" (que figura como un ~ en nuestra consola, para abreviar), si usásemos el comando touch, que sirve para crear un archivo vacío, y se utiliza escribiendo touch <nombre del archivo>, el archivo creado lo encontraríamos en el actual directorio: Captura de pantalla 2025-11-10 a la(s) 12.39.21 a. m..png Un par de cosas para notar:

Pero, bancá un segundo. Cómo sabemos que se creó el archivo? Bueno, es que el comando touch sólo crea el archivo, y siguiendo la filosofía Unix de crear herramientas que sólo hagan una cosa y la hagan bien, no hace más nada. Ni siquiera nos muestra el archivo. Para verlo, podemos usar el comando ls, que nos lista los archivos y directorios dentro del directorio en el que nos encontramos: Captura de pantalla 2025-11-10 a la(s) 12.44.51 a. m..png Podemos ver, ahora, que el archivo está en la carpeta en la que estamos (y, de paso, que es el único archivo presente).

Más abajo vamos a ver, entonces, varios comandos que podemos utilizar en la consola para navegarla y modificarla, creando archivos, copiándolos, cambiándoles el nombre y más.

Navegando

Comando cd

Comando ls

Creando archivos y directorios

Comando mkdir

Comando touch

Copiando, moviendo y eliminando

Comando mv

Comando cp

Comando rm

Editando archivos de texto

Comando nano

SSH

El SSH (Secure SHell) es un protocolo para acceder al "shell" (la consola o terminal, en pocas palabras) de una computadora de manera remota. Es la principal forma en la que vamos a interactuar con nuestro servidor, ya que es más cómodo por lo general acceder y configurar las cosas desde nuestra computadora de siempre y tener el server guardado en algún recoveco donde no moleste.

Acceder a un servidor a través de SSH

Usar SSH desde una Mac o desde una computadora con Linux es extremadamente simple, ya que el programa para hacerlo suele venir preinstalado en las mismas. En el caso de Windows, si usás Windows 10 u 11 (y los tenés al día), tambíen deberías poder hacer algo parecido. Si no, tendrías que instalar un cliente de SSH, como putty.

En caso de tener ssh instalado, el proceso es simple (y si no lo tenés instalado, dejo en vos googlear como instalar el cliente ssh en tu sistema operativo (el de tu compu de siempre, no el del server):

Abriendo la terminal (o símbolo de sistema/terminal en Windows), ingresamos el siguiente comando:

ssh <usuario>@<ip del servidor>

Al hacerlo, nos va a preguntar si queremos "guardar el fingerprint" del servidor al que accedemos. Indicamos que sí (esto va a pasar únicamente cuando accedemos por primera vez a una computadora nueva), y nos va a pedir la contraseña. Una vez que la ingresemos, vamos a haber accedido a una consola remota del servidor. Desde ahí, vamos a poder hacer todo lo que haríamos sentados frente a una terminal en la misma computadora.

Si no sabés qué hacer acá, y nunca usaste una terminal antes, podés ver los conceptos básicos acá, o leer la guía más completa (y muy buena y didáctica) que recomiendo en esa misma página, acá.

Gestor de paquetes (Package manager)

Gestor de paquetes

Qué es un gestor de paquetes?

En la mayoría de las distribuciones de Linux se incluye un "Package manager" o "Gestor de paquetes". Esto es un programa que, esencialmente, se encarga de bajar otros programas por nosotros. Sería el antecesor de lo que hoy son las "App Stores" en los celulares. Al igual que las app stores, además de bajar e instalar paquetes, este programa se utiliza también para actualizar, mantener y eliminar las cosas que instalamos con ellos. En ese sentido, nos simplifica un poco las cosas: En lugar de tener que bajar archivos, instalar drivers y dependencias, y demás, sólo tenemos que bajar un cierto paquete y el programa instala todo lo necesario para que funcione.

apt

apt es el gestor de paquetes instalado por defecto en Ubuntu, y en todos los distros de Linux basados en Debian (como Ubuntu lo es). Vamos a usarlo seguido en nuestro servidor, y frecuentemente, ya que los siguientes dos comandos, apt update y apt upgrade, son los que se encargan de actualizar todos los paquetes (programas) que instalemos a través de este método. Ambos comandos deben ser ejecutados como administrador. El comando normalmente escrito para actualizar sería:

sudo apt update && sudo apt upgrade

(el && significa que, si el primer comando se corrió con éxito, se pueda correr el segundo)

Para instalar los paquetes sin que nos pregunte si aceptamos instalar cada uno, podemos correr en cambio:

sudo apt update && sudo apt upgrade -y

Docker

Este artículo todavía no existe :3

Docker

Acá va a ir la definición de Docker

Docker compose

Acá voy a explicar cómo funciona docker compose