Embora possam realizar coisas semelhantes, o OpenVPN e o Shadowsocks são criaturas inteiramente diferentes.
O OpenVPN é um servidor VPN. Shadowsocks é um proxy.
Um proxy pode (opcionalmente usando criptografia) pedir a outro computador para obter informações para você. Geralmente o sistema intermediário está realmente fazendo algum processamento dos pacotes. Isso limita os programas que podem ser executados sobre ele.
Uma VPN criptografa os pacotes enviados entre os pontos - no caso de uma VPN, outra que tira a criptografia e encaminha o pacote bruto, o servidor VPN modifica os pacotes. (* Um servidor VPN também pode implantar o NAT, que irá reescrever o endereço de origem ou destino dos pacotes). VPNs são mais flexíveis. Um aplicativo precisa ser criado para funcionar com o SOCKS.
Os servidores VPN geralmente são (mas nem sempre) mais fáceis de serem detectados e bloqueados pelos governos, pois geralmente falam seu próprio protocolo para torná-los mais genéricos. Os aplicativos não precisam ser modificados para funcionar com uma VPN. Além disso, a natureza de uma VPN é tal que sessões longas podem ser detectadas, mesmo quando navegação na web - enquanto um servidor proxy abrirá e fechará a conexão. como uma página da web.
Assim, a resposta a ser usada depende do seu propósito ao usar uma. Se "voar sob o radar" enquanto estiver usando um conjunto limitado de protocolos / programas for mais valioso, use SOCKS. Se for necessária uma maior flexibilidade de protocolos ou mais controle do mecanismo de entrega subjacente, use o OpenVPN.
Outra maneira de pensar nisso é que uma VPN sobrepõe uma "rede virtual" em (próximo a) um nível de sistema operacional na parte superior de uma rede real, enquanto um proxy cria aplicativos para conversar entre si em uma rede criptografada. sem virtualizar a rede subjacente.