Видимо по той причине, что Apple заинтересована в безлимитном интернете только на самом iPhone (а не на устройствах подключенных к iPhone), они построили ядро ОС не включив в него технологию DIVERT, которая позволяет использовать NAT подобный тому, который обычно стоит в маршрутизаторах для обеспечения интернетом «серых» сетей (те которые 192.168.0.0/24 например).
К счастью, используя стороннее ПО на iPhone можно запустить socks –сервер, но с ним не умеют работать куча программ.
Однако у нас есть возможность использовать на iPhone SSH и туннелирование трафика, что частично позволяет нам неполноценно и достаточно неудобно, но доставать нужные сервисы из интернета.
Но оказывается такого туннелирования достаточно, что бы, благодаря программе OpenVPN, установить связь с удаленным сервером, который умеет и маршрутизировать и NAT-ить.
Единственный нюанс: необходим удалённый сервер, который будет вашим маршрутизатором. Для этого нужен обычный сервер с реальным белым IP- адресом (динамический тоже можно использовать, например, с помощью dynDNS). Таким сервером может быть: домашний компьютер, сервер на работе, VPS и т.п.
Сначала нужно провести небольшую подготовительную работу:
Дальше собственно установка соединения:
И если все получилось, то у вас на компьютере уже есть полноценный интернет. (хотя не думаю что получится с первой попытки ;) )
В принципе, для удобства, пункты 2 и 3 можно поместить в 1 ярлык.
К счастью, используя стороннее ПО на 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 ярлык.