Cómo hacer tu propia VPN

Supongo que te refieres a crear como crear desde cero, que no es la mejor solución para un consumidor, ¡pero es muy divertido si quieres aprender!

Google tiene un código muy simple para que comiences. El cliente está escrito para Android. samples / ToyVpn – plataforma / desarrollo – Git en Google

Lado del cliente:

El software de su cliente primero debe establecer una conexión con el servidor (llamémoslo ‘túnel’) directamente a través de Internet. El software del cliente debe obtener una dirección IP, puerta de enlace y máscara de red para su cliente y otras configuraciones (por ejemplo, servidores DNS para usar). El software del cliente debería configurar la red del cliente para pensar que está conectada a una red con esas especificaciones. Puede usar la interfaz TUN + manipulación de la tabla de enrutamiento en Linux, VPNService API en Android o NetworkExtention API para iOS para reunir todos los paquetes salientes en un solo archivo para leer. (Tenga en cuenta que estas plataformas móviles también están utilizando TUN + manipulación de la tabla de enrutamiento debajo).

Debe escribir un software que lea los paquetes uno por uno de un archivo (no es un archivo habitual, en * nix puede interactuar con todo como archivos), los cifra y los envía a su propio software de servidor, probablemente en forma de paquetes UDP .

Además, cuando recibió paquetes del software del servidor a través de su túnel, primero descifra la carga útil e inyecta en la red del cliente escribiendo en ese mismo archivo TUN. El sistema del cliente reaccionará ante él como si hubiera recibido el paquete a través de una interfaz de red real.

Lado del servidor:

¡Haz todo en orden inverso!

Configure una interfaz TUN virtual con la máscara de red deseada y cada vez que alguien quiera conectarse al servidor, asígneles una dirección IP interna vacía de ese espacio IP.

Cada vez que reciba un paquete del lado del cliente, descifre la carga útil y envíela a su dispositivo virtual. Si configura el sistema operativo de su servidor para que haga el NAT por usted, el sistema operativo hará el resto por usted.

Cada vez que recibe un paquete del mundo exterior, dirigido a cualquiera de sus usuarios, puede leer la dirección IP de destino, encontrar el cliente al que asignó esa dirección, cifrarlo y enviarlo a través del túnel de ese usuario.

Hay un millón de agujeros en esta configuración simple dependiendo de su caso de uso, ¡pero es un buen lugar para comenzar!

Si desea utilizar su propia VPN de forma regular, le sugiero que configure servidores VPN en un VPS como AWS EC2 y DigitalOcean, etc. OpenVPN es una buena opción para el uso general de VPN. Puede seguir este tutorial paso a paso sobre cómo configurar OpenVPN en AWS EC2:

Guía de inicio rápido del dispositivo Amazon EC2 (AMI)

Las cosas son un poco diferentes si usa su propia VPN en China, donde el gobierno no solo bloquea sitios web populares sino que también interrumpe y bloquea el tráfico VPN. Para China, la mejor opción es Shadowsocks. Puede consultar este tutorial sobre la instalación de Shadowsocks en AWS EC2:

https://www.vpndada.com/how-to-s

Si desea construir un servidor VPN, puede usar algunas herramientas de configuración en el Centro de redes y recursos compartidos de Windows. Simplemente configura las ventanas de VPN de Google para encontrar pasos detallados.

Además, si desea usar software, puede usar el software OpenVPN del sitio web: OpenVPN – Open Source VPN. OpenVPN es compatible con el sistema Linux y Windows.