Je suis nouveau sur Android et j'essaie d'établir et de me connecter à nos propres vpn
(Pas les fournisseurs par défaut vpn
c'est-à-dire PPTP
, L2TP
etc qui est présent dans le Android Setting -> Wireless and Networks
) par programmation.
Mon scénario est, j'ai un bouton et quand je clique sur le bouton, je dois configurer mon propre vpn
et un lien (disons www.google.com) devrait passer par ce VPN
que j'avais configuré .
Existe-t-il un exemple de code?
Je ne sais pas pourquoi j'ai googlé mille fois, mais je n'ai pas la recherche de github. À la recherche des âges maintenant, j'en ai finalement trouvé un écrit magnifiquement. Le code est littéralement beau ce qui est rare:
https://github.com/hexene/LocalVPN
Le projet n'utilise pas NDK ou tout code natif, purement Java, ce qui en fait un début parfait pour un projet simple (pas qu'il ne sera pas bon pour complexe). Et le workflow est assez simple:
LocalVPNService.class
LocalVPNService
, le paquet TCP/UDP est étudié et les IP source et de destination sont extraites (Packet.class
Est utilisé pour cela).LocalVPNService
établit une connexion au nom de l'application qui démarre la demande et appelle VpnService.protect()
sur une connexion nouvellement créée pour éviter les boucles.Comme vous pouvez le voir, l'hexène a déjà fait tout le travail et le levage de charges lourdes.
Toutes les classes référencées ci-dessus se trouvent dans le répertoire des projets. J'ai jeté un coup d'œil au code source de github, le flux de travail discuté ici n'est peut-être pas précis.
Vous pouvez vous référer à l'exemple d'application ToyVpn qui est fourni avec votre Android SDK. Alors allez simplement aux exemples et référez-vous à cette application. Voir aussi ceci
En plus de cela, vous pouvez télécharger le code source d'Openvpn. Voici le lien pour ça
https: //github.com/kghost/ics-openvpn
Merci
Solution OpenSwan: https://wiki.strongswan.org/projects/strongswan/wiki/AndroidVPNClient
Solution OpenVPN: https://code.google.com/p/ics-openvpn/