Как использовать VPN в Android? [закрыто]

Я изучаю VPN-подключения в Android. Я новичок в этом разделе.

Я хочу знать, как настроить VPN-подключение в Android с помощью приложения?

Я наткнулся на пример кода, а именно ToyVpn. Я запустил приложение, но я не знаю, какие данные мне нужно предоставить в форме, показанной этим приложением. Рассмотрим, есть ли у меня VPN-сервер с IP-адресом (скажем, 10.162.1.2), что мне делать? нужно сделать в этом приложении, чтобы это приложение работало?

Что мне делать, если я пытаюсь использовать какой-либо общедоступный VPN-сервер?

Я скачал исходник Openvpn сВот и я скомпилировал и запустил в моем устройстве ICS, но я нене знаю, как настроить данные, которые необходимо ввести. Пожалуйста, укажите точный способ использования этого приложения.

 blackfyre26 нояб. 2012 г., 14:27
Можете ли вы взглянуть на этот вопрос?stackoverflow.com/questions/13565475/..., и, если можете, направьте меня, и вы тоже сталкивались с этой проблемой, когда настраивали сервер?
 blackfyre07 нояб. 2012 г., 12:13
Хорошо, у вас правильный исходный код ToyVpn, в этом коде есть папка "сервер» открой, естьLinux» папка, в которой находится файл ToyVpnServr.cpp
 blackfyre27 нояб. 2012 г., 06:30
хорошо спасибо. Я пытался установить сервер на телефоне!
 Sudarshan12 нояб. 2012 г., 05:53
@ user1204089 Сэр, я настроил сервер toyvpn, и он работал нормально для меня .. Я получил уведомление о подключении и детали сеанса в своем телефоне. У меня есть несколько других, чтобы сделать .. Как подтвердить, что все пакеты данных с моего телефона проходят этот сервер?
 blackfyre27 нояб. 2012 г., 09:21
и до того, как я дал все команды, как есть, и до того, что команда "./ToyVpnServer» Я запускаю файл сервера с g ++, а затем дал команду "./ToyVpnServer» но нет выхода ничего нет, кажется, просто застрял ...: /
 Sudarshan14 нояб. 2012 г., 06:04
на самом деле я сделал все шаги в этом файле cpp..ie, шаги в комментарии, который идет после объявления заголовка файла .. На самом деле мой сценарий у меня есть приложение, через это приложение мне нужно отправлять пакеты через наш vpn, если некоторые другой vpn подключен, мне нужно прекратить отправку пакетов, а также мне нужно проверить отправку пакетов. Как это могло быть достигнуто .. любая идея?
 blackfyre27 нояб. 2012 г., 09:17
и в очереди "ifconfig tun0 10.0.0.1 dstaddr 10.0.0.2 up " что я должен написать здесь вместо 10.0.0.1 и 10.0.0.2? Как я должен изменить "./ToyVpnServer tun0 8000 test -m 1400 -a 10.0.0.2 32 -d 8.8.8.8 -r 0.0.0.0 0 ", Я'Буду очень признателен, если вы могли бы помочь ...
 blackfyre13 нояб. 2012 г., 06:45
Вы только что выполнили шаги, указанные в этом файле сервера? Для пакетов: есть какая-то команда типа "покажи ip route "Я нене помню точный синтаксис ...
 blackfyre07 нояб. 2012 г., 12:19
Прочитайте комментарии этого файла cpp
 blackfyre07 нояб. 2012 г., 11:56
про ToyVpn: да. О tPacketCapture: я думаю, что на телефоне есть локальный сервер.
 blackfyre27 нояб. 2012 г., 09:13
Подскажите, пожалуйста, следующие вещи:iptables -t nat -A POSTROUTING -s 10.0.0.0/8 -o eth0 -j MASQUERADE " в этой строке, если мой компьютерадрес "192.168.2.215" и мой телефон (клиент)адрес "192.168.2.132" затем после "-с "  я должен написать 192.168.2.215/24?
 Sudarshan14 нояб. 2012 г., 11:49
@ user1204089 Я запустил ./a.out (сопровождаемый 6 параметрами) после компиляции файла cpp. Вы имеете в виду, что мне нужно иметь широковещательный приемник, и фильтр намерений изменит VPN. Если это так, я не смог бы найти какой-либо фильтр намерений для этого .. Только BIND_VPN_SERVICE есть .. Есть ли другой API, чтобы проверить это изменение VPN?
 Sudarshan27 нояб. 2012 г., 13:13
сэр, просто попробуйте указать свой IP-адрес в команде ./a.out и проверьте .. Я проверю и сообщу вам точную команду
 blackfyre07 нояб. 2012 г., 12:04
Np! Я думаю, что вы должны прочитать файл сервера проекта, который упомянул шаги. Я не'Не могу найти другой документ ... Пожалуйста, дайте мне знать, если ToyVpn работает на вас!
 Sudarshan08 нояб. 2012 г., 08:16
@ user1204089 У меня есть небольшое сомнение в комментарии файла cpp. Мне нужно знать его достаточно, чтобы запустить ./a.out после компиляции этого файла ToyVpn.cpp (Согласноэтот ссылка) ... И в комментарии к файлу cpp он упомянул./ToyVpnServer tun0 8000 test -m 1400 -a 10.0.0.2 32 -d 8.8.8.8 -r 0.0.0.0 0 где./ToyVpnServer следует заменить на./a.out
 blackfyre08 нояб. 2012 г., 09:09
да уж! ./ToyVpnServer и ./a одинаковы. И просто бегать недостаточно, в соответствии с этими комментариями также необходимо добавить маршрут и т.д.
 blackfyre07 нояб. 2012 г., 11:28
Я также пытаюсь создать VPN-клиента на несколько дней ... Было бы очень полезно, если бы кто-нибудь опубликовал некоторый sudo-код, то есть основные шаги, потому что клиент ToyVpn не выглядит полным клиентом, поскольку он не соединяет меня к серверу VPN ... и нет никакой опции для имени пользователя, в то время как почти все серверы требуют имя пользователя ...
 Sudarshan07 нояб. 2012 г., 12:18
В этом я мог найти отправлять и получать только пакеты :(. Насколько я понимаю
 Sudarshan15 нояб. 2012 г., 07:49
@ user1204089 Что значит "вы'Придется проверять соединение vpn ".
 blackfyre27 нояб. 2012 г., 11:10
Я сделал это, но снова терминал выглядит застрявшим, и toyVpn не может подключиться к компьютеру. Я сделал это: root @ mariam-PC: ~ # echo 1> / proc / sys / net / ipv4 / ip_forward root @ mariam-PC: ~ # iptables -t nat -A POSTROUTING -s 10.0.0.0/8 -o eth0 -j MASQUERADE root @ mariam-PC: ~ # cat / proc / sys / net / ipv4 / ip_forward1 root @ mariam-PC: ~ # ip tuntap add dev tun0 mode tun root @ mariam-PC: ~ # ifconfig tun0 10.0.0.1 dstaddr 10.0.0.2 up root @ mariam-PC: ~ # ./ a.out tun0 8000 test -m 1400 -a 10.0.0.2 32 -d 8.8.8.8 -r 0.0.0.0 0
 Luc M28 нояб. 2013 г., 19:58
Этот вопрос кажется не по теме, потому что речь идет о поддержке Android
 Sudarshan15 нояб. 2012 г., 07:47
@ user1204089 На самом деле мы просто храним этот файл в приложении, но мы не используем t, поскольку я прошел через код ToyVpn. Если мы удалим эту папку сервера в приложении и затем создадим ее, приложение все равно будет работать нормально. Я скопировал этот файл cpp в папку и выполнил команды в комментариях, а в итоге я сделал ./a.out с параметрами, указанными в комментарии.
 Sudarshan27 нояб. 2012 г., 13:20
sry ia не проверял IP-адрес в указанном cmd u
 blackfyre07 нояб. 2012 г., 11:47
Я посмотрел на OpenVpn, но я думаю, что они используют скрытый API, а также требуют root-права ... Но я хочу сделать это с помощью сервиса VPN. Есть другое приложениеtPacketCapture» они устанавливают соединение VPN через VPN-сервис (но я думаю, что они не подключаются ни к какому внешнему серверу)
 blackfyre15 нояб. 2012 г., 07:39
Если нет соответствующей трансляции, то вы 'Придется проверять соединение vpn ... Я думаю, что нет никаких vpn api, кроме того, что вы уже знаете! То, что я не понимаю, когда запускаю файл сервера, это то, что этот файл является частью приложения, если я запускаю приложение, то зачем мне снова запускать файл ... но если мне нужно его запустить, то что Я работаю, т.е. мне нужно скопировать файл куда-нибудь, затем скомпилировать и запустить его, или просто установить приложение и затем дать команду для компиляции и запуска, не могли бы вы поделиться командами, чтобы скомпилировать и запустить его ....: /
 blackfyre15 нояб. 2012 г., 08:22
Спасибо, я имею в виду проверить, подключен ли ваш vpn или нет ... Вы должны прочитать документацию ..., Может ли существовать более одного VPN одновременно? если нет, то можно использовать функцию onRevoke () VPNService (может быть!), прочитайте документацию, если нет api, попробуйте получить доступ к внутренним компонентам системы, чтобы узнать, подключен ли желаемый vpn или нет
 blackfyre15 нояб. 2012 г., 11:15
да, документация по VPN-сервису, и под внутренним я имею в виду попытку доступа к внутренним / скрытым API-интерфейсам vpn ... которые я не уверен, что к ним можно получить доступ на уровне API выше 10 ... Но, прежде всего, вам следует сосредоточиться на onRevok метод, если он бесполезен, тогда ищите какой-то внутренний / скрытый метод, если он есть ...
 blackfyre07 нояб. 2012 г., 11:44
По ссылке, которой я поделился выше, нам нужно запустить сервер ToyVpn, который создает serevr на порту 8000, и файл упоминает "Установите адреса и откройте интерфейс. " поэтому дайте ему IP-адрес, таким образом, ваш адрес сервера - это IP-адрес, который вы дали этому интерфейсу, 8000 - это порт, а общий секрет - это "тестовое задание", но я не проверял это, потому что я не могу добавить маршрут и т. д., как указано в файле serevr без прав root ...
 Sudarshan07 нояб. 2012 г., 11:38
@ user1204089 Я также проверил ссылку, которой вы поделились. Теперь я протестировал приложение toyvpn со значениями теста pptp, оно не сработало. И мне нужно узнать, есть ли какие-либо тестовые значения для тестирования приложения toyvpn. И вы также слышали о приложении abt openvpn?
 blackfyre27 нояб. 2012 г., 14:19
Слава Богу! Теперь он работает, я отключил брандмауэр (UFW) и снова дал команды. Большое спасибо за вашу помощь! :)
 Sudarshan07 нояб. 2012 г., 11:51
@ user1204089 Спасибо за ваши ответы. Насколько я понимаю, вы хотите сказать, что мне нужно настроить сервер и указать IP-адрес этого сервера в качестве значения для приложения toyvpn, правильно? И что вы подразумеваете под внешним сервером, то к какому типу сервера он будет подключаться?
 Sudarshan07 нояб. 2012 г., 12:10
где я мог найти эти файлы сервера. простите, если мои вопросы глупы, как я новичок в этих понятиях
 Sudarshan15 нояб. 2012 г., 09:29
@ user1204089 нет, более одного VPN одновременно невозможно, если вы откроете новый VPN, последний появится, а первый автоматически отключится. Я могу понять использование onRevoke (). но я не могне понялполучить доступ к внутренним частям системы, чтобы увидеть, если вы хотите vpn " а также смыслVPNService документация "
 Sudarshan27 нояб. 2012 г., 10:46
Вы не хотите редактировать указанный IP-адрес. Просто дайте как есть. И, наконец, вам нужно дать ./a.out вместо ./ToyVpnServer
 Sudarshan26 нояб. 2012 г., 15:18
@ user1204089 Я не сталкивался с подобной проблемой .. Я установил сервер в Ubuntu 10.04
 blackfyre27 нояб. 2012 г., 11:41
снова отключил :(. и в таблице nat вставленное правило не появляется .. Я пробовал с обоими "-А» а также "-Я", IP-адрес должен быть IP-адресом ПК !?
 blackfyre27 нояб. 2012 г., 11:13
Это "./a.out» находится в папке "Главная"... это доступно как способ дать команду ..? Также в ToyVpn 's клиент Я дал IP-адрес ПК ... это право или я должен предоставить IP-адрес, указанный в командах, и если IP-адрес команды, то какой?
 Sudarshan27 нояб. 2012 г., 11:23
Представьте, что у вас есть .cpp в папке с именем "Главная" и в терминале вы запустили gcc ToyvpnServer.cpp (вы в "Главная"папка). Вы могли видеть, что файл .out генерируется .. Теперь запустите ./a.out tun0 8000 test -m 1400 -a 10.0.0.2 32 -d 8.8.8.8 -r 0.0.0.0 0 ...... Первоначально в Терминал ничего не будет отображаться. Как только вы подключитесь к клиенту, вы сможете увидеть сообщения печати, присутствующие в cpp. Для вашего понимания поместите сообщение печати в main () в файле .cpp.
 Sudarshan27 нояб. 2012 г., 13:18
Я просто запустил команды в комментариях к cpp-файлу, который находится в папке сервера источника toyvpn. И я запустил приложение, предоставив Мои системы »IP» порт "8000" и секретный ключтестовое задание" .. Это все
 blackfyre14 нояб. 2012 г., 06:55
Вы тоже скомпилировали и запустили этот серверный файл? (Подобноstackoverflow.com/questions/11424022/... ) Для того, что вы пытаетесь сделать, вы должны попытаться получить имя подключенной VPN 1-й, затем, если имя совпадает с вашим vpn-клиентом, затем продолжайте отправку, если она изменится, остановите ваше приложение от отправки пакетов. Но, 1-й проверить, есть ли трансляция для "новый vpn подключенТо, что я сказал раньше, вы должны снова и снова проверять имя vpn, но если есть какая-то трансляция, то вам просто нужно зарегистрировать приемник для этой трансляции.
 blackfyre07 нояб. 2012 г., 11:23
Для ToyVpn вы можете прочитать этот постstackoverflow.com/questions/13228834/...; В этом посте есть комментарий "ToyVPN имеет свой собственный сервер; он не использует обычный VPN-сервер. "  Это означает, что мы должны запустить сервер ToyVpn, но для его запуска необходимо добавить маршрут и т. Д., Что я не могу сделать без рута .... и, к сожалению, я не могу рутировать свой телефон ... :( Но в идеале это Образец ToyVpn тоже должен подключаться к другим серверам ....

Ответы на вопрос(1)

как настроить VPN-подключение в Android с помощью приложения?

Android SDK поставляется в комплекте с образцом; см. ToyVpn в каталоге образцов Android-16. Также обратитесь к документации дляVpnService а такжеVpnService.Builder.

Я наткнулся на пример кода, а именно ToyVpn. Я запустил приложение, но я не знаю, какие данные мне нужно предоставить в форме, показанной этим приложением. Рассмотрим, есть ли у меня VPN-сервер с IP-адресом (скажем, 10.162.1.2) нужно сделать в этом приложении, чтобы это приложение работало.

Ваша VPN должна будет создать новый сокет, защитить сокет от перенаправления обратно в VPN с помощьюVpnService.protect(Socket)и подключите розетку к 10.162.1.2. Установив туннельное соединение с VPN-сервером, вы должны приступить к записи входного потока VpnService 'с интерфейсом в туннельs выходной поток и, в свою очередь, записывает туннельный ответ обратно в выходной поток интерфейса.

Если я попытаюсь использовать какой-либо публичный VPN-сервер, что мне нужно сделать?

Не существует стандартного механизма для настройки соединения с сервером VPN. ToyVpn просто общается через сокет, используя необработанные TCP-пакеты. Вы можете реализовать существующий протокол (см.RFC 4026) вроде OpenVPN сделал или сам что-то пишешь.

Ваш ответ на вопрос