@alneo
Интернет программист

Как соединить клиента OpenVPN на Android 4.1.2 с сервером UbuntuServer?

Есть настроенный UbuntuServer с openVPN, для проверки использовал Windows клиента, клиент соединился все прошло успешно (использовал файлы ключей и сертификатов выданных сервером).
Хочу написать клиент на Android, в интернете все сводится к примеру ToyVpnService также нашел статью Android VPN Service Explained with Packet Bypass E...
Использую AndroidStudio, использую "class ToyVpnService extends VpnService" из "ToyVpnService"
клиент зависает в цикле:
InetSocketAddress server = new InetSocketAddress(mServerAddress, Integer.parseInt(mServerPort));
            for (int attempt = 0; attempt < 10; ++attempt) {
                mHandler.sendEmptyMessage(R.string.connecting);
                if (run(server)) {//Сброс счетчика, если мы были связаны.
                    attempt = 0;
                    Log.i(TAG, "соединение установлено");
                }
                Thread.sleep(3000);//Спать на некоторое время. Это также проверяет, если мы получили прерывается.
            }
            Log.i(TAG, "Giving up");

10 раз появляется сообщение "R.string.connecting"-Соединяемся... в логах AndroidStudio пишется 10 раз:
04-29 08:46:09.097 1003-1023/ru.example.vpn E/PROG﹕ Got java.lang.IllegalStateException: Timed out

еще лог, оказывается он пытается соединится:
04-29 09:48:30.217 1143-1160/ru.example.vpn I/PROG﹕ run 1
04-29 09:48:30.217 1143-1160/ru.example.vpn I/PROG﹕ run Create a DatagramChannel as the VPN tunnel.
04-29 09:48:30.257 1143-1160/ru.example.vpn I/PROG﹕ run Protect the tunnel before connecting to avoid loopback.
04-29 09:48:30.257 1143-1160/ru.example.vpn I/PROG﹕ run Connect to the server.
04-29 09:48:30.257 1143-1160/ru.example.vpn I/PROG﹕ run For simplicity, we use the same thread for both reading and writing. Here we put the tunnel into non-blocking mode.
04-29 09:48:30.257 1143-1160/ru.example.vpn I/PROG﹕ run Authenticate and configure the virtual network interface.
04-29 09:48:30.267 1143-1160/ru.example.vpn I/PROG﹕ handshake build a secured tunnel
04-29 09:48:30.267 1143-1160/ru.example.vpn I/PROG﹕ handshake Control messages always start with zero.
04-29 09:48:30.267 1143-1160/ru.example.vpn I/PROG﹕ handshake Send the secret several times in case of packet loss.
04-29 09:48:30.267 1143-1160/ru.example.vpn I/PROG﹕ handshake Wait for the parameters within a limited time.
04-29 09:48:30.367 1143-1160/ru.example.vpn I/PROG﹕ handshake Normally we should not receive random packets. (50 раз повторяется)
04-29 09:48:35.407 1143-1160/ru.example.vpn E/PROG﹕ Got java.lang.IllegalStateException: Timed out


Как соединить? Где использовать файлы выданные сервером?
  • Вопрос задан
  • 955 просмотров
Пригласить эксперта
Ответы на вопрос 1
@adruzh
ToyVpn предполагает соединение с ToyVpn сервером: https://android.googlesource.com/platform/developm...

Для OpenVPN надо использовать https://github.com/schwabe/ics-openvpn
Его можно перепилить под себя или использовать как есть. У него даже API для сторонних приложений есть.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы