Este tutorial le mostrará cómo instalar el servidor proxy Shadowsocks en un VPS Debian 9 (servidor privado virtual) . Shadowsocks es un proxy Socks5 liviano, súper rápido y seguro que se puede usar para eludir la censura de Internet. También aprenderá cómo configurar el cliente Shadosocks-libev en el escritorio Debian 9 .
Hay muchas implementaciones de Shadowsocks, este tutorial le muestra cómo usar Shadowsocks-libev, porque
- Está escrito en C, muy rápido incluso en máquinas de gama baja.
- Está bien mantenido.
- Es la implementación con más funciones. Se admiten TCP de apertura rápida, multiusuario, API de administración, modo de redirección, modo de túnel, retransmisión UDP, cifrados AEAD y complementos.
Requisitos
Para completar este tutorial, necesitará:
- Un VPS (servidor privado virtual). Recomiendo Vultr. Ofrecen VPS KVM de alto rendimiento con 512 millones de memoria por solo $ 2.5 por mes, lo cual es perfecto para su servidor proxy privado.
- Luego instale Debian 9 en su VPS.
Cómo instalar el servidor Shadowsocks-libev en Debian 9 VPS
Una vez que haya instalado Debian 9 en su VPS. Inicie sesión en su servidor a través de SSH. Shadowsocks-libev está incluido en el repositorio predeterminado de Debian 9, pero está desactualizado. De hecho, la versión obsoleta ya no funciona en mi servidor. Recomendé instalarlo desde el repositorio de Debian 9 stretch-backports, que contiene la última versión de Shadowsocks-libev, para que obtenga actualizaciones de seguridad y correcciones de errores.
Para habilitar el repositorio de versiones anteriores, debe editar sources.list
archivo.
sudo nano /etc/apt/sources.list
Agregue la siguiente línea al final de este archivo.
deb http://ftp.debian.org/debian stretch-backports main
Guarde y cierre el archivo. Luego actualice el índice de paquetes local.
sudo apt update
Después de eso, instale Shadowsocks-libev desde el repositorio de stretch-backports.
sudo apt -t stretch-backports install shadowsocks-libev
Para comprobar el número de versión, ejecute
ss-server -v
Salida de muestra:
shadowsocks-libev 3.1.3
La biblioteca criptográfica de sodio (libsodium) se instalará junto con shadowsocks-libev. Es un requisito si desea utilizar el método de encriptación ChaCha20-Poly1305 seguro y rápido. Una vez instalado, Shadowsocks-libev se iniciará automáticamente con el archivo de configuración predeterminado. Puede comprobar su estado con:
systemctl status shadowsocks-libev
Salida:
● shadowsocks-libev.service - Shadowsocks-libev Default Server Service Loaded: loaded (/lib/systemd/system/shadowsocks-libev.service; enabled; vendor preset: enabled Active: active (running) since Wed 2018-04-25 06:18:55 UTC; 3min 47s ago Docs: man:shadowsocks-libev(8) Main PID: 28728 (ss-server) CGroup: /system.slice/shadowsocks-libev.service └─28728 /usr/bin/ss-server -c /etc/shadowsocks-libev/config.json -u
Como puede ver, se está ejecutando y el inicio automático en el momento del arranque está habilitado. Si no se está ejecutando, puede iniciarlo con:
sudo systemctl start shadowsocks-libev
Para habilitar el inicio automático en el momento del arranque, ejecute:
sudo systemctl enable shadowsocks-libev
Ahora necesitamos editar el archivo de configuración predeterminado.
sudo nano /etc/shadowsocks-libev/config.json
El contenido predeterminado del archivo es el siguiente.
{ "server":"127.0.0.1", "server_port":8388, "local_port":1080, "password":"focobguph", "timeout":60, "method":null }
Reemplace 127.0.0.1 con la dirección IP pública de su servidor Debian. Puede cambiar server_port
a otro número de puerto, pero no use el puerto 8388. Luego configure su contraseña preferida, que se usa para encriptar el tráfico. Se recomienda que reemplace null
con chacha20-ietf-poly1305
como método de encriptación. Aquí hay un ejemplo de mi configuración.
Guarde y cierre el archivo. Luego reinicie Shadowsocks-libev para que los cambios surtan efecto.
sudo systemctl restart shadowsocks-libev
Instalar y configurar el cliente Shadowsocks-libev en el escritorio Debian 9
El paquete shadowsocks-libev contiene tanto el software del servidor como el software del cliente. Así que simplemente use el método mencionado anteriormente para instalar Shadowsocks-libev en el escritorio Debian 9.
Nota:en Debian 9, Shadowsocks-libev (el servidor) se iniciará automáticamente después de la instalación. Debe detener el servidor Shadowsocks en el escritorio Debian 9.
sudo systemctl stop shadowsocks-libev
También deshabilite el inicio automático en el momento del arranque.
sudo systemctl disable shadowsocks-libev
El binario del cliente de Shadowsocks se llama ss-local
. Hay una unidad de servicio systemd de plantilla para ello: /lib/systemd/system/[email protected]
. Antes de iniciar el cliente, debemos crear el archivo de configuración del lado del cliente.
sudo nano /etc/shadowsocks-libev/location-of-your-server.json
Puede reemplazar location-of-your-server
con algo como SFO, LAX. Copie la configuración del servidor Shadowsocks-libev en el archivo de configuración del cliente, luego agregue la siguiente línea para decirle al cliente que escuche en 127.0.0.1.
"local_address":"127.0.0.1",
Así que el archivo de configuración del cliente se verá así:
{ "server":"your-server-ip-address", "server_port":8388, "local_address":"127.0.0.1", "local_port":1080, "password":"focobguph", "timeout":60, "method":"chacha20-ietf-poly1305" }
Guarde y cierre el archivo. Entonces podemos iniciar el cliente con:
sudo systemctl start [email protected]location-of-your-server.service
Y habilite el inicio automático en el momento del arranque.
sudo systemctl enable shadowsocks-libe[email protected]location-of-your-server.service
Compruebe su estado. Asegúrate de que se esté ejecutando.
systemctl status [email protected]location-of-your-server.service
Ahora el ss-local
el proceso escucha en 127.0.0.1:1080 en su escritorio Ubuntu y está conectado a su servidor Shadowsocks.
Configurar el navegador web para usar el proxy de calcetines
Para permitir que su programa use un proxy de calcetines, el programa debe ser compatible con el proxy de calcetines. Programas como Firefox quantum, Google Chrome y Dropbox permiten a los usuarios usar proxy. Te mostraré cómo configurar Firefox y Google Chrome.
Firefox
En Firefox, ve a Editar> Preferencias> Generales . A continuación, desplácese hasta la parte inferior y haga clic en Configuración en proxy de red . En la Configuración de conexión ventana, seleccione configuración de proxy manual . Luego seleccione SOCKS v5 porque Shadowsocks es un proxy de Socks5. Introduzca 127.0.0.1 en el campo SOCKS Host y 1080 en el campo de puerto. Asegúrese de Proxy DNS cuando use SOCKS v5 está habilitado. Haga clic en Aceptar para aplicar estas modificaciones.
Google Chrome
Las versiones de Google Chrome y Chromium Linux no tienen una GUI para configurar el proxy, pero puede usar las opciones de la línea de comandos como se muestra a continuación.
google-chrome --proxy-server="socks5://127.0.0.1:1080"
o
chromium-browser --proxy-server="socks5://127.0.0.1:1080"
También puede instalar y usar el proxy de configuración de la extensión SwitchOmega para no tener que escribir un comando en la ventana del terminal.
Prueba de fugas de DNS
Vaya a dnsleaktest.com. Verá la dirección IP de su servidor Shadowsocks, lo que indica que su proxy está funcionando.
Haga clic en Prueba estándar. Asegúrese de que su ISP local no esté en los resultados de la prueba.
Habilitar TCP BBR
TCP BBR es un algoritmo de control de congestión de TCP que puede mejorar drásticamente la velocidad de conexión. Siga el tutorial a continuación para habilitar TCP BBR en el servidor Debian 9. No tiene que habilitarlo en el escritorio de Debian 9. El tutorial vinculado a continuación es para Ubuntu, pero también se aplica a Debian.
- Cómo aumentar fácilmente el rendimiento de la red de Ubuntu habilitando TCP BBR
Habilitar apertura rápida de TCP
Puede acelerar Shadowsocks un poco más habilitando la apertura rápida de TCP. TCP es un protocolo orientado a la conexión, lo que significa que los datos solo se pueden intercambiar después de que se establezca una conexión, lo que se realiza a través del protocolo de enlace de tres vías. En otras palabras, tradicionalmente, los datos solo se pueden intercambiar después de que se completa el protocolo de enlace de tres vías. La apertura rápida de TCP (TFO) es un mecanismo que permite el intercambio de datos antes de que se complete el protocolo de enlace de tres vías, ahorrando hasta 1 tiempo de ida y vuelta (RTT).
El soporte de apertura rápida de TCP se fusiona con el kernel de Linux desde la versión 3.7 y está habilitado de forma predeterminada desde la versión 3.13. Puede comprobar la versión de su kernel ejecutando:
uname -r
Para verificar la configuración de apertura rápida de TCP en su servidor Debian, ejecute
cat /proc/sys/net/ipv4/tcp_fastopen
Puede devolver 4 valores.
- 0 significa deshabilitado.
- 1 significa que está habilitado para la conexión saliente (como cliente).
- 2 significa que está habilitado para la conexión entrante (como servidor).
- 3 significa que está habilitado tanto para conexiones salientes como entrantes.
Todos mis servidores Debian devolvieron 1
después de ejecutar el comando anterior. Queremos que tcp_fastopen se establezca en 3 en nuestro servidor. Para lograr eso, podemos editar el archivo de configuración sysctl.
sudo nano /etc/sysctl.conf
Luego pegue la siguiente línea al final del archivo.
net.ipv4.tcp_fastopen=3
Vuelva a cargar la configuración de sysctl para que el cambio surta efecto.
sudo sysctl -p
Luego, también deberá habilitar la apertura rápida de TCP en el archivo de configuración de Shadowsocks.
sudo nano /etc/shadowsocks-libev/config.json
Agregue la siguiente línea.
"fast_open": true
Entonces, el archivo de configuración de su servidor Shadowsocks se verá así:
{ "server":"your-server-ip-address", "server_port":8388, "local_port":1080, "password":"focobguph", "timeout":60, "method":"chacha20-ietf-poly1305", "fast_open": true }
Tenga en cuenta que la última línea de configuración no tiene coma. Guarde y cierre el archivo. Luego reinicie el servidor Shadowsocks.
sudo systemctl restart shadowsocks-libev
Compruebe si se está ejecutando. (Un error en el archivo de configuración puede evitar que se reinicie).
systemctl status shadowsocks-libev
También debe editar el archivo de configuración del cliente de Shadowsocks y reiniciarlo para habilitar la apertura rápida de TCP en el escritorio de Debian 9.
Para obtener más información sobre Shadowsocks, consulta el manual.
man shadowsocks-libev
¡Eso es todo! Espero que este tutorial le haya ayudado a instalar el proxy Shadowsocks-libev en el servidor y escritorio Debian 9. Como siempre, si esta publicación le resultó útil, suscríbase a nuestro boletín informativo gratuito para obtener más consejos y trucos. Cuídate.