Orientação gerada a partir de informações públicas. Apenas para referência.
O pacote openvpn_flutter permite que aplicativos Flutter se conectem a serviços OpenVPN nas plataformas Android e iOS. Ele fornece uma interface simples para gerenciar conexões de VPN, permitindo que os usuários estabeleçam túneis de rede seguros de forma programática. O plugin integra bibliotecas nativas do OpenVPN, garantindo compatibilidade com configurações padrão do OpenVPN e arquivos .ovpn. É projetado para desenvolvedores que desejam adicionar recursos de conectividade segura aos seus aplicativos, como acesso a redes privadas ou proteção aprimorada de dados.
Casos de uso
Comunicação segura de aplicativo para servidor
Acesso a rede privada em aplicativos corporativos
Privacidade aprimorada dos dados do usuário
Contornando restrições regionais de conteúdo
Conectando a VPNs corporativas
Principais recursos
Suporta plataformas Android e iOS
Integração com arquivos de configuração .ovpn padrão
Gerenciamento programático de conexões
Estabelecimento de túnel seguro
Leve e fácil de integrar
Indicado para
Aplicativos móveis corporativos
Aplicativos que exigem acesso de rede seguro
Desenvolvedores construindo ferramentas focadas na privacidade
Aplicações que necessitam de conectividade com servidor remoto
Projetos usando a infraestrutura do OpenVPN
Considerações
Requer integração da biblioteca nativa do OpenVPN
Pode ser necessário permissões adicionais no Android e no iOS
O manuseio de arquivos de configuração deve ser seguro
Limitado ao protocolo OpenVPN
Pode ser necessário configurar especificamente para a plataforma
README original
Snapshot do README original do repositório-fonte vinculado. Consulte o repositório para o conteúdo mais recente.
Connect to the OpenVPN service using Flutter. Contributions through issues and pull requests are highly appreciated!
Android Setup
1. Permission Handler
Java
Include the following code in the onActivityResult method of MainActivity.java (if you are using Java):
voidconnect() {
openvpn.connect(
config,
name,
username: username,
password: password,
bypassPackages: [],
// In iOS connection can get stuck in "connecting" if this flag is "false". // Solution is to switch it to "true".
certIsRequired: false,
);
}
Disconnect
voiddisconnect(){
openvpn.disconnect();
}
Publishing to Play Store and App Store
Android
You can use app bundles to publish the app.
Add the following to your files in the android folder (special thanks to https://github.com/nizwar/openvpn_flutter/issues/10). Otherwise, the connection may not be established in some cases and will silently report "disconnected" when trying to connect. This is likely related to some symbols being stripped by Google Play.
gradle.properties > android.bundle.enableUncompressedNativeLibs=falseAndroidManifest > android:extractNativeLibs="true"in the application tag
Add the following inside the android tag in app/build.gradle:
android {
...
//from here ======
lintOptions {
disable 'InvalidPackage'
checkReleaseBuilds false
}
packagingOptions {
jniLibs {
useLegacyPackaging = true
}
}
bundle {
language {
enableSplit = false
}
density {
enableSplit = false
}
abi {
enableSplit = false
}
}
//to here
...
}
Notifications
As the plugin shows notifications for connection status and connection details, you must request permission using third-party packages.
///Put it anywhere you wish, like once you initialize the VPN or pre-connect to the serverPermission.notification.isGranted.then((_) {
if (!_) Permission.notification.request();
});