Que linguagens de programação podem ser usadas para criar uma VPN?
Você não precisa programar nada. Basta usar um servidor VPN e instalá-lo onde você quiser, alterar as configurações para como você precisa. Depois instale / altere o cliente VPN incorporado nos dispositivos para que eles se conectem ao endereço desse servidor.
Provavelmente o mais simples e mais onipresente servidor como o OpenVPN. Quase todos estes serviços VPN Proxy utilizam-no. Eles o instalam em seus servidores, mudam as configurações para que ele aja diferente de uma VPN normal (não se ligam a recursos locais, mas simplesmente atuam como um proxy relay). Então mesmo apenas usando o código do cliente para OpenVPN e embrulhá-lo na sua interface de usuário para ligá-lo ao seu servidor - essa última parte sendo a única "programação" necessária (ou seja, um pouco de design de interface gráfica e funções de biblioteca de chamadas a partir disso).
Se você realmente quer fazer uma do zero, é uma coisa bastante envolvente. Você precisa se conectar em qualquer sistema em que seu servidor e cliente vão rodar. Provavelmente significa que você precisa escrever um driver para cada cliente que você pretende permitir - digamos um driver de rede Windows, um macOS, um Android, um iOS, possivelmente também um Linux. Isso provavelmente o forçaria a usar qualquer idioma necessário para esse SDK em particular, possivelmente uma série de idiomas diferentes. Qualquer coisa em C, Swift, Java, Python, o que quer que seja usado e que possa ser necessário - não espere que apenas uma única linguagem faça tudo por si.
O lado do servidor é na verdade menos restritivo e convoluto. Você pode usar qualquer linguagem que você realmente queira. É apenas um software que escuta as conexões em uma porta específica. A parte mais complexa seria o relay para a rede real. Para a ideia de proxy é na verdade muito menos complexo.
As coisas de encriptação e autenticação podem ser várias que você escolher, embora eu aconselharia você a procurar bibliotecas bem implementadas e testadas ao invés de rolar a sua própria.
O acima parece um grande esforço para recriar uma roda, apenas a nova roda precisaria de muitos ajustes para transformá-la de um quadrado em algo rodando suavemente. Eu definitivamente recomendaria que você começasse de alguma coisa de código aberto como OpenVPN, talvez estendendo as coisas deles se você acha que quer algo diferente / melhor.
Artigos semelhantes
- Que tipo de linguagens de programação foram usadas para fazer videojogos como a NES, SNES, Mega Drive e PlayStation?
- Que linguagens de programação foram usadas para construir o Snapchat?
- Que linguagens de programação são usadas para fazer algumas das aplicações mais populares do Android?
- Quais são as linguagens de programação usadas para fazer jogos 3D como GTA?