> La lista completa de artículos está en [llms.txt](https://docs.f3cloud.com/llms.txt). Cada página tiene versión en Markdown, basta con añadir .md a su dirección. Esta página en Markdown: [https://docs.f3cloud.com/es/technical-docs/nc-command-guide.md](https://docs.f3cloud.com/es/technical-docs/nc-command-guide.md).

# Cómo usar el comando nc en Linux para conexiones de red

Cómo usar el comando nc (netcat) en Linux. Comprobar y escuchar puertos, transferir archivos, montar un servidor web sencillo, una shell remota y las opciones principales.

### Introducción

En el mundo de la administración de Linux, a netcat (nc) se le suele llamar la «navaja suiza» de las redes. Esta utilidad, pequeña pero potente, permite enviar y recibir datos por los protocolos TCP y UDP. Aunque las funciones de netcat puedan parecer limitadas, la herramienta cumple de maravilla a la hora de probar conexiones, depurar servicios de red y realizar comunicaciones de red básicas.

### ¿Qué te permite hacer este comando?

Netcat es una herramienta de red universal que se usa en muchos escenarios de administración de sistemas y desarrollo. Estas son las principales posibilidades de la utilidad:

1. **Trabajo con TCP/UDP** – crear y gestionar conexiones con ambos protocolos para probar servicios de red.
2. **Monitorización de puertos** – escuchar puertos concretos para analizar las conexiones entrantes.
3. **Transferencia de datos** – enviar información directamente entre sistemas a través de la red.
4. **Chat** – montar un sistema sencillo de intercambio de mensajes de texto entre hosts.
5. **Escaneo de puertos** – detectar servicios de red abiertos en sistemas remotos.
6. **Tunelización** – redirigir el tráfico de red a través de puertos o hosts alternativos.
7. **Funciones de proxy** – trabajar de forma básica a través de servidores proxy en operaciones de red.
8. **Servidor web de prueba** – crear rápidamente puntos HTTP sencillos para hacer pruebas.

### Opciones principales del comando

Para trabajar bien con netcat, es importante entender sus parámetros principales de línea de comandos:

* `-6` – activa la compatibilidad con IPv6 (por defecto se usa -4 para IPv4)
* `-h` – muestra la ayuda sobre los parámetros disponibles
* `-i` – establece el intervalo de espera entre operaciones (en segundos)
* `-l` – activa el modo de escucha de un puerto
* `-N` – cierra la conexión automáticamente después de transferir un archivo
* `-n` – desactiva la resolución DNS para trabajar directamente con direcciones IP
* `-P user_name` – indica el usuario para la conexión a través del proxy
* `-x address:port` – configura la dirección y el puerto del proxy
* `-p port` – indica el puerto de forma explícita (normalmente se elige automáticamente)
* `-U` – usa sockets UNIX para la comunicación entre procesos
* `-u` – cambia al protocolo UDP en lugar de TCP
* `-v` – activa el modo de salida detallada
* `-w` – establece el tiempo de espera de la conexión en segundos
* `-z` – escanea sin transferir datos

### Comprobar puertos

Una de las tareas principales de netcat es diagnosticar si los servicios de red están disponibles. Para comprobarlo, usa la combinación de parámetros -vz:

```bash
$ nc -vz 192.168.31.247 8080

$ nc -vz 192.168.31.247 1-1000 2>&1 | grep succeeded
```

<figure><img src="https://docs.f3cloud.com/img/image%20(114).png" alt=""><figcaption><p>Captura con un ejemplo de ejecución del comando</p></figcaption></figure>

Para comprobar puertos UDP, añade el parámetro -u:

```bash
$ nc -vzu 192.168.31.247 1-1000 2>&1 | grep succeeded
```

Ten en cuenta que los puertos UDP siempre aparecen como disponibles por cómo funciona el protocolo.

### Escuchar puertos

Para vigilar la actividad de red, usa el modo de escucha:

```bash
$ nc -nlv 8080
```

<figure><img src="https://docs.f3cloud.com/img/image%20(116).png" alt=""><figcaption><p>Captura con un ejemplo de escucha de un puerto</p></figcaption></figure>

> **Atención.**
>
> Si usas TCP, asegúrate de que el puerto esté libre – si no, te saldrá el error "Already in use". Recuerda también que los puertos bajos (< 1024) necesitan privilegios de root.

### Transferir archivos

Netcat te permite montar un intercambio de datos sencillo entre sistemas. Empecemos con un ejemplo básico – un chat de texto.

En el lado que recibe:

```bash
$ nc -lp 8080
```

<figure><img src="https://docs.f3cloud.com/img/image%20(117).png" alt=""><figcaption></figcaption></figure>

En el lado que envía:

```bash
$ nc 0.0.0.0 8080
```

Para transferir archivos, el mecanismo es parecido. En el lado que recibe:

```bash
$ nc -l 8080 > paste.txt
```

En el lado que envía:

```bash
$ nc -N 0.0.0.0 8080 < copy.txt
```

### Servidor web sencillo

Con netcat puedes crear un servidor HTTP básico. Aunque sus funciones son limitadas, resulta útil para hacer pruebas rápidas:

```bash
$ while true; do echo -e "HTTP/1.1 200 OK\n\n$(cat index.html)" | nc -l -w 1 8080; done
```

<figure><img src="https://docs.f3cloud.com/img/image%20(118).png" alt=""><figcaption></figcaption></figure>

El parámetro -w 1 hace que la conexión se cierre automáticamente si no la cierra el navegador.

### Shell remota

Netcat también sirve para acceder a un sistema de forma remota. Aunque el antiguo parámetro -e se eliminó por motivos de seguridad, hay métodos alternativos:

En el lado que recibe:

```bash
$ nc -lvnp 8080
```

En el lado que envía:

```bash
$ rm /tmp/f; mkfifo /tmp/f; cat /tmp/f | sh -i 2>&1 | nc 0.0.0.0 8080 >/tmp/f
```

<figure><img src="https://docs.f3cloud.com/img/image%20(119).png" alt=""><figcaption></figcaption></figure>

> **Importante.**
>
> Ten cuidado con el acceso remoto – es una posible vía de ataque. Configura siempre un cortafuegos y sigue las buenas prácticas de seguridad.

### Recursos adicionales

Para ver toda la información sobre las posibilidades de netcat, usa:

```bash
man nc
```

> **Nota.**
>
> No te olvides de la seguridad cuando trabajes con herramientas de red. Documenta todos los cambios y revisa con regularidad los ajustes de protección de la red.

### Nuestros recursos

**Canal de Telegram:** [https://t.me/f3cloud_news](https://t.me/f3cloud_news)
\
**Web del hosting:** [https://f3cloud.com](https://f3cloud.com/es)
