Для начала – необходимый инструментарий:
- iPhone 3g, iOS 4.2.x, jailbreak
- iTunes 10.1
- CCProxy
- iPhone USB Toolkit
- .NET Framework 3.5
- текстовый редактор
CCProxy и USB Toolkit можно скачать одним архивом .
Подготавливаем iPhone
Для того, чтобы можно было настроить интернет через провод, ваш телефон должен быть подвергнут . Также через Cydia необходимо установить OpenSSH и SBSettings (да-да, придется разориться немного на EDGE/3G). OpenSSH необходим для того, чтобы с телефоном можно было связаться через протокол SSH. SBSettings дает возможность быстрого включения/отключения SSH-сервера и всей внешней периферии (Bluetooth, Wi-Fi, 3G, EDGE).
Подготавливаем компьютер
Для начала необходимо установить .NET Framework, если он у вас еще не стоит. Наличие установленного iTunes также обязательно. Еще нужно установить CCProxy, дистрибутив которого вы найдете в архиве.
iPhone USB Toolkit распаковываем в любую удобную папку и сразу заходим внутрь. Видим такую картину:
Для чего все это нужно? Из всего этого добра (собранного каким-то добрым человеком) нам необходимо всего три файла:
1_start_ssh_tunnel.cmd - файл, отвечающий за запуск программы для создания SSH-туннеля между Айфоном и компьютером.
proxy_tunnel.cmd - файл, отвечающий за запуск программы для создания туннеля между Айфоном и прокси-сервером CCProxy.
winscp.cmd- отвечает за запуск файлового менеджера, с помощью которого можно извлечь из Айфона любой файл.
В папке lib лежат те самые программы и необходимые библиотеки.
На этом месте хотелось бы остановиться подробнее. Основная библиотека, которая отвечает за создание SSH-туннеля - iTunesMobileDevice.dll. Если в вашем случае программе не удается создать туннель, то попробуйте заменить библиотеку в этой папке другой версией. Эта библиотека устанавливается вместе с Apple Mobile Device Support (AMDS), который устанавливается вместе с iTunes. Но AMDS может быть удален и переустановлен, не затрагивая iTunes. Вот представлены ссылки на все версии iTunes и указано, какая версия AMDS поставляется с этой версией iTunes.
В данном случае используется библиотека от версии AMDS 3.3.0.47.
Итак, шаг первый. Создаем SSH-туннель iPhone – PC. Запускаем 1_start_ssh_tunnel.cmd. Должно появиться вот такое окно:
Если окно не появилось, а вместо него появилась ошибка о том, что программа не может найти ASL.dll, это значит, что AMDS установлен не в стандартную папку. В этом случае вам нужно открыть файл 1_start_ssh_tunnel.cmd текстовым редактором и исправить первую строчку на свою:
Но будем считать, что окно у вас появилось. Его закрывать НЕ НУЖНО на протяжении всей работы в Интернете. Туннель установлен, и теперь нужно приниматься за самую сложную часть инструкции.
Чтобы все программы в Афоне, использующие доступ в Интернет, лезли не через EDGE/3G, нам необходимо прописать в файлах конфигурации Айфона общесистемный прокси. Другими словами, мы указываем, что все свои запросы в интернет программа должна адресовать не в EDGE/3G, а на наш прокси-сервер через наш SSH-туннель.
Итак, второй шаг - прописать в настройках Айфона прокси-сервер. К сожалению в настройках самого Айфона не предусмотрено такой возможности, поэтому придется лезть в файловую систему и руками через текстовый редактор править настройки. К счастью, это делается лишь один раз. В дальнейшем программы сами будут определять работать им через EDGE, либо через внешний прокси.
Туннель работает, запускаем winscp.cmd. Насколько я помню, на этом этапе нас спросят о создании ключа соединения. Нам нужно согласиться на создание и на сохранение, чтобы каждый раз впоследствии не создавать. После этого появится окно файлового менеджера:
Справа - содержимое Айфона. Слева - папка на локальном компьютере. На правой панели нам нужна папка /private/var/preferences/SystemConfiguration, из которой нужен файл preferences.plist. Его мы и будем править. Проблема в том, что на Айфоне этот файл хранится в бинарном виде и просто так отредактировать его не получится. Нужно сначала преобразовать его в формат XML, отредактировать, а затем преобразовать обратно в бинарный вид.
После долгих изысканий оказалось, что вместе с iTunes поставляется прекрасный конвертер из одного формата в другой. Его мы и будем использовать. Находится он по умолчанию в папке Program Files\Common Files\Apple\Apple Application Support\ и называется plutil.exe
В файловом менеджере winscp открываем на левой панели эту папку. Нам нужно в нее скопировать файл preferences.plist
Затем простая операция. Запускаем консоль, переходим там в эту папку и набираем команду plutil.exe -convert xml1 preferences.plist
Команда означает, что мы преобразуем файл preferences.plist из текущего формата в формат XML.
Хочу обратить внимание. В бинарном виде файл настроек имеет меньший размер, чем в формате XML:
После преобразования открываем файл текстовым редактором и находим вот это место:
Нужно вставить вот такой текст:
<key>Proxies</key> <dict> <key>ProxyAutoConfigEnable</key> <integer>1</integer> <key>ProxyAutoConfigURLString</key> <string>file:///private/var/preferences/proxy.pac</string> </dict>
После того, как текст добавлен, нужно сохранить файл и преобразовать его обратно в бинарный вид командой plutil.exe -convert binary1 preferences.plist.
Итак, файл настройки готов. Теперь его нужно залить обратно в Айфон в папку /private/var/preferences/SystemConfiguration.
То, что мы вписали в настройки, включает общесистемный прокси и указывает на файл с настройками прокси: proxy.pac. Этот файл находится в скачанном вами архиве, и его нужно поместить в папку /private/var/preferences/
В моем случае в этом файле прописан прокси 127.0.0.1 с портом 8118. Если вам нужен другой порт - исправьте.
После того, как файлы отредактированы и залиты в Айфон, последний нужно перезагрузить. После перезагрузки Айфона перезапустите туннель (1_start_ssh_tunnel.cmd) и проверьте, что Айфон не восстановил preferences.plist из резервной копии. Он любит так делать, если вы ошиблись и некорректно произвели изменения в файле. Проверку можно сделать по размеру, либо сконвертировав в XML-формат и найдя нужные настройки, либо сравнив по содержимому с файлом на компьютере (вы ведь делаете резервные копии, да?)
Если вы дошли досюда, значит самое сложное уже позади, туннель работает и файл настроек корректно записан в Айфон.
Теперь необходимо настроить CCProxy на то, чтобы он слушал нужный порт. Вспомните, какой порт вы указали в файле proxy.pac. Если вы его не трогали, то это порт - 8118. Иначе - тот, что указали вы.
Туннель запущен, наш прокси настроен. Теперь самый последний этап. Запускаем файл proxy_tunnel.cmd. Он создаст обратный туннель от Айфона до нашего прокси-сервера. На этом этапе опять может понадобиться создавать и сохранять ключ соединения. После того, как прокси-туннель запущен, видим такое окно:
Все. Можно проверять работу Интернета в Айфоне. Запустите Сафари, Сидию, почтовый клиент или любую программу, которая работает с Интернетом. Если все работает как нужно, то мы увидим запросы:
Если вы производили настройку на порт, отличный от 8118, то необходимо перед запуском поправить файл proxy_tunnel.cmd
Еще одно уточнение. Для корректной работы Сафари необходимо, чтобы были прописаны настройки GPRS в телефоне, иначе Сафари ругнется на неправильную настройку Интернета и совсем откажется работать.
Еще, если ПК имеет доступ в Интернет так же через прокси, то необходимо в CCProxy включить каскадное проксирование и вписать настройки вашего прокси-сервера.
Подведем итог. Первый раз всегда самый трудный. Если вы прошли все эти шаги, и у вас все заработало - вы молодец. Последующие подключения делаются совсем просто:
- Подключаем Айфон к USB
- Запускаем SSH-туннель (1_start_ssh_tunnel.cmd)
- Запускаем CCProxy
- Запускаем прокси-туннель (proxy_tunnel.cmd)
- ...
- PROFIT!
Вот и все. Сложно только на первый взгляд. Успехов!











