> 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/proxy-guide/proxy-server-configuration.md](https://docs.f3cloud.com/es/proxy-guide/proxy-server-configuration.md).

# Cómo montar tu propio proxy HTTP(S) y SOCKS5 en un VPS con 3proxy

Cómo crear tu propio servidor proxy HTTP(S) y SOCKS5 en un VPS con 3Proxy. Instalación rápida con el script de F3 Cloud en medio minuto o instalación manual con la configuración y el arranque automático.

**3proxy** es un servidor proxy ligero que puede funcionar como proxy HTTP(S) y como proxy SOCKS5. En tu propio VPS tendrás proxies que solo usas tú, con salida a internet a través de la dirección IP del servidor.

Aquí tienes dos formas de hacerlo.\
La primera es el script **3proxy Manager**, que lo instala y lo configura todo por sí solo.\
La segunda es la instalación manual, por si quieres entender bien la configuración.

***

### Método 1. Instalación con el script 3proxy Manager

El script es compatible con Debian 11 y posteriores, Ubuntu 20.04 y posteriores, AlmaLinux, Rocky Linux y CentOS Stream 8 y posteriores. Su código fuente es abierto y está [en GitHub](https://github.com/f3cloud-host/3Proxy).

#### Paso 1. Instala 3proxy

Conéctate al servidor [por SSH](https://docs.f3cloud.com/es/vps/termius-connection.md) como root, descarga el script y ejecútalo.

```bash
cd /root && curl -fsSL -o 3proxy.sh https://raw.githubusercontent.com/f3cloud-host/3Proxy/main/3proxy.sh && chmod +x 3proxy.sh
/root/3proxy.sh
```

Escribe `1` (**Установить 3proxy**, instalar 3proxy) y pulsa <kbd>Enter</kbd>. El script te hará cuatro preguntas:

1. **Включить HTTP/S-прокси?** (¿activar el proxy HTTP(S)?) Responde `y` si lo necesitas o `n` si no.
2. **Порт HTTP/S-прокси** (puerto del proxy HTTP(S)), por defecto 3128.
3. **Включить SOCKS5-прокси?** (¿activar el proxy SOCKS5?) Responde también `y` o `n`.
4. **Порт SOCKS5-прокси** (puerto del proxy SOCKS5), por defecto 1080.

Para dejar los valores por defecto, basta con pulsar <kbd>Enter</kbd> cuatro veces. Después, el script descargará y compilará 3proxy por sí solo, lo que lleva más o menos medio minuto.

> **Los puertos de HTTP(S) y SOCKS5 deben ser distintos.**
>
> El script no te dejará elegir el mismo puerto para los dos proxies, ni un puerto que ya esté usando otro programa. Si en el servidor está activado el cortafuegos ufw o firewalld, los puertos elegidos se abrirán en él automáticamente.

Nada más terminar la instalación, el script te pedirá que crees el primer usuario. Escribe el nombre de usuario en **Логин** y después la contraseña en **Пароль**. Si en lugar de la contraseña pulsas <kbd>Enter</kbd>, el script generará una contraseña segura por ti.

<figure><img src="https://docs.f3cloud.com/img/3proxy-install.png" alt="Instalación de 3proxy con el script 3proxy Manager y creación del primer usuario"><figcaption><p>3proxy instalado y primer usuario creado</p></figcaption></figure>

Al final, en **Данные для подключения** (datos de conexión), aparecerán los datos listos para conectarte, una línea por cada proxy. Los proxies empiezan a funcionar en ese mismo momento.

***

#### Paso 2. Añade usuarios

Lo mejor es crear un usuario propio para cada persona a la que des acceso. Así puedes desactivar a cualquiera sin tocar a los demás.

Vuelve a ejecutar el script con el comando `/root/3proxy.sh`. Ahora te mostrará el menú de gestión.

| Opción | Qué hace |
| --- | --- |
| `1` Добавить пользователя | Crea un nuevo usuario del proxy |
| `2` Удалить пользователя | Borra un usuario, y su acceso desaparece al instante |
| `3` Список пользователей | Muestra todos los usuarios y sus contraseñas |
| `4` Удалить 3proxy | Elimina 3proxy del servidor por completo |
| `5` Выход | Cierra el menú |

Escribe `1` y después el nombre de usuario y la contraseña del nuevo usuario.

<figure><img src="https://docs.f3cloud.com/img/3proxy-add-user.png" alt="Añadir un usuario desde el menú de 3proxy Manager con una contraseña generada"><figcaption><p>Un usuario nuevo con la contraseña que ha generado el script</p></figcaption></figure>

***

#### Paso 3. Consulta la lista de usuarios

Si has olvidado un nombre de usuario o una contraseña, ejecuta `/root/3proxy.sh` y escribe `3`.

<figure><img src="https://docs.f3cloud.com/img/3proxy-list-users.png" alt="Lista de usuarios del proxy en el menú de 3proxy Manager"><figcaption><p>Lista de usuarios con sus contraseñas</p></figcaption></figure>

***

#### Cómo conectarte al proxy

Los datos de conexión tienen este aspecto:

* `http://IP:puerto:usuario:contraseña` para el proxy HTTP(S);
* `socks5://IP:puerto:usuario:contraseña` para el proxy SOCKS5.

La línea indica, por orden, el tipo de proxy, la dirección IP del servidor, el puerto, el nombre de usuario y la contraseña. Si un programa te pide rellenar los campos por separado, cópialos de esta línea.

Puedes comprobar que el proxy funciona desde tu propio ordenador de casa. El comando debe mostrar la dirección IP de tu servidor.

```bash
# Pon la dirección IP del servidor, el nombre de usuario y la contraseña
curl -x http://SERVER_IP:3128 --proxy-user usuario:contraseña https://api.ipify.org
```

<details>

<summary>El proxy no conecta</summary>

Comprueba que el servicio está en marcha con el comando `systemctl status 3proxy`. En la línea **Active** debe aparecer `active (running)`. Si activaste el cortafuegos después de instalar 3proxy, abre en él los puertos del proxy, por ejemplo con `ufw allow 3128/tcp`.

</details>

<details>

<summary>Error 407 o usuario y contraseña incorrectos</summary>

El proxy responde, pero no acepta el nombre de usuario o la contraseña. Compáralos con la lista de usuarios de la opción `3` del menú del script. El nombre de usuario y la contraseña distinguen entre mayúsculas y minúsculas.

</details>

<details>

<summary>Cómo cambiar el puerto</summary>

Lo más sencillo es eliminar 3proxy con la opción `4` del menú y volver a instalarlo con los puertos nuevos. Después tendrás que crear de nuevo los usuarios.

</details>

***

### Método 2. Instalación y configuración manual de 3proxy

Este método repite lo que hace el script, solo que cada paso lo haces tú. Los comandos de abajo son para Debian y Ubuntu.

#### Paso 1. Compila 3proxy

```bash
# Instalamos las herramientas de compilación
apt update && apt install -y build-essential curl

# Descargamos el código fuente de 3proxy y comprobamos la suma de control del archivo
cd /root
curl -fsSL -o 3proxy-0.9.9.1.tar.gz https://github.com/3proxy/3proxy/releases/download/0.9.9.1/3proxy-0.9.9.1.tar.gz
echo "13711040af096f09d5202b0cb516ec08db7c08130ed21719063d2e570215fb34  3proxy-0.9.9.1.tar.gz" | sha256sum -c

# Compilamos e instalamos el programa
tar xzf 3proxy-0.9.9.1.tar.gz
cd 3proxy-0.9.9.1
make -f Makefile.Linux
install -m 755 bin/3proxy /usr/local/bin/3proxy
```

Si la comprobación de la suma muestra `3proxy-0.9.9.1.tar.gz: OK`, el archivo se ha descargado sin daños. La compilación tarda menos de un minuto.

> **En AlmaLinux y CentOS el primer comando es otro.**
>
> En AlmaLinux y CentOS, en lugar de `apt`, instala las herramientas con el comando `dnf install -y gcc make tar curl`. El resto de pasos son iguales.

Usamos la versión 0.9.9.1 de la rama LTS, que solo recibe correcciones de errores. Puedes ver si ha salido alguna actualización en la [página de versiones de 3proxy](https://github.com/3proxy/3proxy/releases).

***

#### Paso 2. Crea un usuario para el proxy

Para que el proxy no funcione con permisos de root, crea para él un usuario del sistema aparte, sin posibilidad de iniciar sesión.

```bash
useradd --system --no-create-home --shell /usr/sbin/nologin proxy3
```

***

#### Paso 3. Crea el archivo de configuración

Copia el comando entero y ejecútalo. Él mismo pondrá en la configuración el número del usuario proxy3.

```bash
mkdir -p /etc/3proxy

cat > /etc/3proxy/3proxy.cfg <<EOF
nserver 1.1.1.1
nserver 8.8.8.8
nscache 65536
timeouts 1 5 30 60 180 1800 15 60
users \$/etc/3proxy/passwd
setgid $(id -g proxy3)
setuid $(id -u proxy3)
auth strong
allow *
proxy -n -a -p3128
socks -p1080
EOF
```

Qué significan las líneas:

| Línea | Qué hace |
| --- | --- |
| `nserver` | Servidores DNS con los que el proxy encuentra las direcciones de los sitios |
| `users $/etc/3proxy/passwd` | Toma los nombres de usuario y las contraseñas del archivo `/etc/3proxy/passwd` |
| `setgid` y `setuid` | Después de arrancar, el proxy funciona como el usuario proxy3 |
| `auth strong` | Solo deja entrar con nombre de usuario y contraseña |
| `proxy -n -a -p3128` | Proxy HTTP(S) en el puerto 3128 |
| `socks -p1080` | Proxy SOCKS5 en el puerto 1080 |

Si no necesitas uno de los dos proxies, borra su línea antes de ejecutar el comando. Puedes cambiar los puertos por cualquier otro que esté libre, pero los dos proxies deben tener puertos distintos.

***

#### Paso 4. Añade usuarios {#sozdanie-polzovatelei-3proxy}

Cada usuario se escribe en una línea aparte con el formato `usuario:CL:contraseña`. Cambia `puser1` y `p@ssw0rd` por tus propios valores.

```bash
cat > /etc/3proxy/passwd <<'EOF'
puser1:CL:p@ssw0rd
EOF

# Protegemos los archivos con contraseñas frente a otros usuarios del servidor
chmod 600 /etc/3proxy/passwd /etc/3proxy/3proxy.cfg
```

Para añadir usuarios más adelante, abre el archivo con el comando `nano /etc/3proxy/passwd`, añade las líneas, guarda con <kbd>Ctrl</kbd> + <kbd>O</kbd>, sal con <kbd>Ctrl</kbd> + <kbd>X</kbd> y reinicia el proxy con el comando `systemctl restart 3proxy`.

> **El archivo de usuarios no puede estar vacío.**
>
> Si en `/etc/3proxy/passwd` no hay ninguna línea, 3proxy no arrancará. Deja en él al menos un usuario.

***

#### Paso 5. Ejecuta el proxy como servicio

El servicio hace falta para que el proxy funcione en segundo plano y arranque solo después de reiniciar el servidor.

```bash
cat > /etc/systemd/system/3proxy.service <<'EOF'
[Unit]
Description=3proxy proxy server
After=network-online.target
Wants=network-online.target

[Service]
Type=simple
ExecStart=/usr/local/bin/3proxy /etc/3proxy/3proxy.cfg
Restart=on-failure
RestartSec=3
LimitNOFILE=65536

[Install]
WantedBy=multi-user.target
EOF

systemctl daemon-reload
systemctl enable --now 3proxy
```

Comprueba que el servicio funciona con el comando `systemctl status 3proxy`. En la línea **Active** debe aparecer `active (running)`. Si en el servidor está activado el cortafuegos, abre en él los puertos del proxy, por ejemplo con `ufw allow 3128/tcp` y `ufw allow 1080/tcp`.

***

#### Paso 6. Conéctate y borra los archivos de instalación

Los datos de conexión se componen de la dirección IP del servidor, el puerto, el nombre de usuario y la contraseña.

```text
http://SERVER_IP:3128:puser1:p@ssw0rd
socks5://SERVER_IP:1080:puser1:p@ssw0rd
```

Puedes comprobar el proxy con el mismo comando `curl` que en el primer método. Cuando todo funcione, borra el código fuente, porque ya no lo necesitas.

```bash
rm -rf /root/3proxy-0.9.9.1 /root/3proxy-0.9.9.1.tar.gz
```

***

### 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)
