técnica
etapa: foundations
2 min de lectura
Fundamentos de Linux y redes
Los contenedores, las nubes y los pipelines corren sobre Linux y se comunican por TCP/IP. Cuando algo falla a las 3 de la madrugada, estos fundamentos son lo que te permite descubrir por qué.
systemd / journalctlss and curldigstracetcpdumpopenssl s_client
Lo que necesitas saber
- Procesos y señales: todo programa es un proceso con un usuario, un padre y un estado; SIGTERM le pide que se detenga, SIGKILL lo fuerza.
- Archivos y permisos: propietario, grupo y bits de modo deciden quién puede leer, escribir o ejecutar; el principio de empieza aquí.
- Servicios: systemd inicia, reinicia y registra en logs los programas de larga duración; journalctl lee esos logs.
- La pila de red: una dirección IP identifica un host, un puerto identifica un servicio, TCP ofrece streams confiables, UDP ofrece datagramas.
- DNS convierte nombres en direcciones, y la mayoría de las caídas misteriosas son de DNS, certificados u hora.
- TLS envuelve una conexión para que esté cifrada y el servidor se autentique mediante una cadena de certificados.
Una rutina de depuración
Ve de afuera hacia adentro: el nombre resuelve, el puerto es alcanzable, el servicio está escuchando, el certificado es válido, qué dicen los logs.
dig +short api.example.com # ¿el nombre resuelve, y a qué?
curl -sv --max-time 5 https://api.example.com/health # conexión, TLS y HTTP de una vez
ss -ltnp | grep :8080 # ¿hay algo escuchando en este host?
systemctl status myapp --no-pager # ¿el servicio está corriendo?
journalctl -u myapp --since "10 min ago" -n 100 # ¿qué dijo?
openssl s_client -connect api.example.com:443 -servername api.example.com </dev/null 2>/dev/null | openssl x509 -noout -datesPermisos y una unit de servicio
Un servicio debe correr como su propio usuario sin privilegios, con solo el acceso que necesita. systemd puede imponer buena parte de eso por ti.
[Unit]
Description=My app
After=network-online.target
[Service]
User=myapp
Group=myapp
ExecStart=/opt/myapp/bin/myapp
Restart=on-failure
NoNewPrivileges=true
ProtectSystem=strict
ProtectHome=true
ReadWritePaths=/var/lib/myapp
[Install]
WantedBy=multi-user.targetHábitos
- Aprende a leer antes de cambiar: primero logs, estado y métricas, después las ediciones.
- Nunca corras un servicio como root si no lo necesita.
- Mantén los relojes sincronizados (NTP): los tokens y certificados expirados suelen ser un problema de reloj.
- Anota los comandos que funcionaron. Un runbook empieza como un historial del shell.
conexiones en el mapa
- Fundamentos de Linux y redeses lo que un contenedor aíslaContenedores e imágenes
actualizado el 14/10/2026 · fuentes para profundizar · reportar un error
Desbloquea
pon a prueba lo que entendiste
Cargando preguntas…