Видимо по той причине, что Apple заинтересована в безлимитном интернете только на самом iPhone (а не на устройствах подключенных к iPhone), они построили ядро ОС не включив в него технологию DIVERT, которая позволяет использовать NAT подобный тому, который обычно стоит в маршрутизаторах для обеспечения интернетом «серых» сетей (те которые 192.168.0.0/24 например).
К счастью, используя стороннее ПО на iPhone можно запустить socks –сервер, но с ним не умеют работать куча программ.
Однако у нас есть возможность использовать на iPhone SSH и туннелирование трафика, что частично позволяет нам неполноценно и достаточно неудобно, но доставать нужные сервисы из интернета.
Но оказывается такого туннелирования достаточно, что бы, благодаря программе OpenVPN, установить связь с удаленным сервером, который умеет и маршрутизировать и NAT-ить.
Единственный нюанс: необходим удалённый сервер, который будет вашим маршрутизатором. Для этого нужен обычный сервер с реальным белым IP- адресом (динамический тоже можно использовать, например, с помощью dynDNS). Таким сервером может быть: домашний компьютер, сервер на работе, VPS и т. п.
Сначала нужно провести небольшую подготовительную работу:
- На iPhone должен быть установлен SSH
- На сервере и на компьютере устанавливаете OpenVPN [http://openvpn.net/]
- Настраиваете конфиги на компьютере и на сервере для OpenVPN. Простой случай настройки примерно такой:
- Генерируете секретный ключ:
openvpn --genkey --secret static.key
и копируете его в папку с конфигами на сервере и компьютере
- Настройка конфига на сервере:
dev tap
proto tcp-server
ifconfig 192.168.20.13 255.255.255.0
push "dhcp-option DNS 192.168.20.13"
secret static.key
comp-lzo
keepalive 10 120
verb 3
log openvpn.log
- Настройка конфига на компьютере:
dev tap
proto tcp-client
remote localhost
ifconfig 192.168.20.11 255.255.255.0
route-gateway 192.168.20.13
redirect-gateway
push "dhcp-option DNS 192.168.20.13"
secret static.key
comp-lzo
verb 3
route-method exe # это для windows лучше оставить
route-delay 2 # а для linux и mac убрать
- На сервере должен быть запущен DNS- сервер, NAT
- Надо не забыть завернуть трафик из сети 192.168.20.0/24 в NAT
- Запускаете и оставляете запущенным серверную часть OpenVPN
Дальше собственно установка соединения:
- Убедитесь что iPhone находится в интернете, а то мало ли
- Создаете туннель от вашего компьютера до удаленного сервера через iPhone: L1194 server.ru:1194 | root@alpine
- Запускаете на компьютере OpenVPN: openvpn client.ovpn
И если все получилось, то у вас на компьютере уже есть полноценный интернет. (хотя не думаю что получится с первой попытки ;) )
В принципе, для удобства, пункты 2 и 3 можно поместить в 1 ярлык.
комментарии (30)
1. трафик шифруется и оператор не вкурсе что передается и что подключено
2. через openvpn можно перекинуть белую подсеть
3. openvpn и openssh — это opensource, я знаю как они устроены и спокоен за пароли (если об этом в интернете вообще можно говорить) :)
4. судя по всему pdanet использует много durty хаков что бы работать с сетевыми стеками, это мне кажется не очень хорошо.
Но такие программы я тоже ценю. Может apple одумается и сделает эту фичу в самой ОС на iphone.
Но OpenVPN может использовать только TCP (в статье в конфигах как раз он настроен), поэтому работать он точно должен.
Раньше я мучался со SLiRP'ом — тоже полноценный НАТ и все дела, но все-таки PdaNet в миллион раз удобнее.
www.iphones.ru/iNotes/9584/ (отношение к сайту и продавцу не имею.)
Сам собираюсь сегодня купить.
У Эппла политика не лучше Майкрософта, ей Богу. Народ понакупает девайсов, а потом давится говном, приправляя его укропом, петрушкой, пряностями. Нет, айфон мне нравится: красивый прикольный девайс. Но политика компании и его внутренняя начинка… Впиндюрить в мобильник модем не проблема ведь.
Что значит «впиньдюлить модем»? Современные телефоны получают данные по радиоканалу и раздают его по синезубу, вай-фаю, или по USB. Модема там давно уже нет. А значит, что, если при наличии данных переферийных устройств — функция отцуствует, то она отключена или нереализована програмно (в большенстве случаев). Вот эту функциональность т пытаются прикрутить как могут. ;)
А ситуация с противодействием использования интернета, за который я заплатил меня тоже бесит. Тоесть выходит что-то вроде этого: контора которая снабжает воду в дома (по водопроводу) даёт воду, но говорит что это только для того чтобы мыть посуду!, а пить её нельзя! (хоть она и питьевая), чтобы пить — покупайте у нас же воду в бутылках! И потом, ещё, после того как видит что народ забивает на то что они говорят, водопроводная компания начинает подмешивать в воду какую-то гадость чтобы сделать воду непригодной для питья.
Хотя, в принципе это их право (эпл), у них почти все платформы закрытые, и они в принципе могут творить что хотят. Не хочешь — небери. Правдв стараются совсем не борзеть, и если видят что сделали большую глупость — по хоть стараются исправится. :)
Хочешь завтра платить по $200 в месяц за один только телефон и не иметь возможности поставить на него свой софт — покупай йаМобилко.
Я 3 раза спрашивал в АТТ безлимитный ли это, или очень большой лимитный (есть имплойи-айди людей которые мне это говорили). А в США устная договорённасть считается контрактом.
Вы это серйозно??? (я ешё могу «всё» отменить без разберательств)???
Одно «не», кажется, лишнее…
* Интерфейс вывода (а как бы вы объяснили это понятие древним?).
** Интерфейс ввода.
*** Политика Apple в отношении продаж софта (и не только) под iPhone.
**** Цифровая подпись ака сертификат.
***** Cheetah, Puma, Jaguar, Panther, Tiger, Leopard, Snow Leopard… — «зверская» серия операционных систем Mac OS X.
****** Комбинация разрешений CHMOD 666 означает «разрешение на чтение и запись, запрет на исполнение» — то есть именно та политика, которую ведет Apple в отношении разработки под iPhone, хочешь выполнить на нем код — получай зверское начертание.