Как подключиться к прокси-серверу SOCKS с iPhone / iPod Touch?


19

Мне нравится безопасно и конфиденциально путешествовать по сети через прокси-сервер SOCKS, который я создал через туннелирование SSH на Mac. Я использовал SSH-клиент на моем Mac для достижения этой цели. Тогда я подумал, поскольку iPhone OS по сути Mac OS, такой же трюк может сработать и на iPhone.

Мне удалось создать SSH-туннель на моем iPhone через терминал (терминал iPhone). (Да, это сломано в тюрьме)

ssh -D [port] user@domain.com

На этом этапе мой iPhone является SOCKS-прокси.

Тем не менее, на панели настроек сети iPhone нет способа указать прокси-сервер SOCKS. Кто-то предлагает создать файл Proxy Auto-Contig (PAC), чтобы обойти это, но это звучит сложно.

Есть идеи, как заставить iPhone использовать собственный прокси SOCKS?

Ответы:


20

Ну, я думаю, нет лучшего способа сделать это. Черт возьми, Apple, так сложно установить настройку SOCKS Proxy на панель сетевых настроек iPhone OS? :-(

В любом случае, лучший ответ на данный момент, и единственный, который я смог найти в сети, - это документ с веб-сайта SNIPPLR Code 2.0, озаглавленный « Как подключиться к прокси-серверу SOCKS с не поврежденного iPhone / iPod Touch» .

Ниже приведена очищенная версия их решения:

Допустим, возможно, что вы уже перенаправляете свой веб-трафик через туннель SSH / SOCKS на работе (по соображениям конфиденциальности) и хотели бы использовать тот же туннель на своем iPhone / iPod Touch. Это на самом деле довольно легко сделать.

  1. Убедитесь, что туннель SOCKS на вашем рабочем компьютере позволяет подключаться к локальной сети, чтобы ваш iPhone / iPod Touch мог подключиться к нему.

    ssh -N -g -D 1080 user@domain.com
    
  2. Создайте текстовый файл и вставьте следующий код:

    function FindProxyForURL(url, host)
    { 
         return "SOCKS 192.168.xx.xx:yyyy";
    }
    

    Замените x на ваш IP, а y на порт, который вы использовали после -D в вашей команде SSH

  3. Сохраните текстовый файл в виде файла автоматической настройки прокси (PAC) в доступном для Интернета месте с расширением .pac .

    Если вы читаете это, скорее всего, вы знаете, как обслуживать файл через HTTP в вашей рабочей локальной сети, поэтому я не буду углубляться в это.

  4. Наконец, на вашем iPhone / iPod Touch перейдите в «Настройки» → «Wi-Fi» и нажмите синюю стрелку справа от вашей рабочей сети. Прокрутите вниз, нажмите «Авто» и введите адрес вашего файла PAC (например, http: //192.168.xx.xx/mysupersecretproxy.pac ).

Теперь вы можете безопасно просматривать веб-страницы со своего iPhone / iPod touch.


Это относится к случаю использования WIFI, но не к сетевому соединению 2g / 3g.
Дуглас состоялся

Разве это не разрушает всю цель туннеля ssh? Разве трафик между iPhone и компьютером не будет зашифрован?
JBis

Также кажется, что настройки прокси игнорируются при подключении к VPN (WireGuard), что раздражает, потому что я хотел положиться на это для шифрования соединения между устройством iOS и работающим сервером ssh -gD. Вернуться к доске для рисования.
SJY

4

Вау, спасибо за этот последний ответ.

Вместе с этим сообщением в блоге «SSH для подключения вашего iPhone через USB-кабель» я разработал довольно надежное решение мгновенного обратного SSH / SOCKS через USB-модем, в котором только SSH-сервер находится в вашей сети. Это позволяет всем моим приложениям на основе tcp использовать интернет-сервер SSH через USB, несмотря на то, что у меня WiFi неисправен и у него нет надежного тарифного плана передачи данных (T-Mobile Prepaid).

Конфигурация прокси-сервера не требуется.

Суть поста в блоге заключается в том, что вы МОЖЕТЕ контролировать прокси из командной строки. Используйте файл:

/private/var/preferences/SystemConfiguration/preferences.plist

Найдите раздел «ip1» (если вы хотите заменить интерфейс GPRS / EDGE / 3G), например:

<dict>
<key>Interface</key>
<dict>
<key>DeviceName</key>
<string>ip1</string>
<key>Hardware</key>
<string>com.apple.CommCenter</string>
<key>Type</key>
<string>com.apple.CommCenter</string>
</dict>

Будьте внимательны, если у вас есть раздел ip1, если вы хотите переопределить EDGE / 3G! Не ищите другие записи прокси в файле.

Затем добавьте следующий раздел:

<key>Proxies</key>
<dict>
<key>ProxyAutoConfigEnable</key>
<integer>1</integer>
<key>ProxyAutoConfigURLString</key>
<string>file:///private/var/preferences/proxy.pac</string>
</dict>

Затем используйте трюк, чтобы указать SOCKS-прокси в файле, который мы только что указали:

/private/var/preferences/proxy.pac

Добавлять:

function FindProxyForURL(url, host)
{ 
     return "SOCKS 127.0.0.1:1080";
}

Измените разрешения на proxy.pac на 777 (все могут читать, писать, выполнять).

Перезагрузите iPhone.

Загрузите iTunnel для iTunes 9 (также доступны более старые версии). (Http://www.mediafire.com/?2q1fzowoy12)

Создайте новое соединение с замазкой: в разделе «Соединение> SSH> Туннели» добавьте новый перенаправленный «удаленный» порт, например, порт 202 на iPhone, на ваш SSH-сервер, подключенный к Интернету (например, 192.168.2.100:22).

Source Port: 202
Destination: 192.168.2.100:22

В разделе SSH того же Putty Connection установите для вашей удаленной команды:

ssh -D 1080 user@127.0.0.1 -p 202

Сохраните конфигурацию Putty в новом именованном сеансе.

При желании генерируйте ключи и добавляйте открытые ключи в * ~ / .ssh / authorized_keys * на обоих концах, чтобы вам не нужно было вводить пароли. Используйте putty.exe -load "Profile Name" в ярлыке, чтобы ускорить его еще больше.


Конечно, если вы используете сервер OpenSSH в Windows с Cygwin или чем-то еще, вы, вероятно, можете просто пропустить промежуточный туннель.
Спасибо

Вот кто-то, кто делает обратное, чтобы сделать обычную привязку: snipplr.com/view/16563/…
thadk

0

Это сообщение указывает на то, что это невозможно сделать из командной строки, если я правильно интерпретирую это. Я думаю, что это означает, что вы действительно не можете вообще, так как сетевые настройки не поддерживают SOCKS.


На этом сайте говорится, что нет проблем с созданием прокси-сервера SOCKS, но настройки должны быть установлены с использованием файлов PAC. Я был водителем, если бы был более легкий путь. snipplr.com/view/16563/…
GeneQ

0

iPhone + SSH Tunnel + Socks Proxy = УСПЕХ Very Happy

-> http://thireus.dareyourmind.net/index.php/thireus-home-news/8-general-announcement/109-iphone-ssh-tunnel-socks-proxy-success-d

Спасибо за помощь :) Теперь я могу использовать мой локальный прокси-сервер через Wifi / 3G / Edge: p, и я также создал скрипт, который воссоздает туннель, если связь была потеряна;)


0

Ответы выше не все в порядке.

  1. Ssh -D не является глобальным прокси в системе iOS (например, iPhone и iPad).

  2. HTTP-прокси также не является глобальным прокси.

Их нельзя использовать в большинстве игр и в мгновенных сообщениях. Это просто для веб-серфинга (с Safari все в порядке), но в основном только для этого.

Лучший и самый простой способ для iPhone и iPad - это использование VPN. Это глобальный агент, который может передавать все данные из Интернета через удаленный VPN-сервер. Другой выбор - OpenVPN, который предоставляет клиент на iOS.

Для iPhone и iPad нет такой программы, которая бы запускала глобальные прокси-серверы в Windows.


0

Я нашел способ сделать это без джейлбрейка, но вам понадобится доступ к ssh-серверу, который вы можете разместить на своем домашнем компьютере.

Вам понадобятся два приложения для iPhone; iSSH (туннель ssh) и ProxyBrowse (браузер socks5).

Вам также понадобится SSH-сервер.

В этом примере мы будем называть наш SSH-сервер [хост] и нашу учетную запись пользователя для ssh-сервера [пользователь].


SSH сервер

Запустите следующую команду:

SSH -f -N -D 8080 [user]@[host]

Правильно, вы на [хосте] создаете динамический порт обратно на [хост], скоро вы поймете, почему.


ИСШ

«Добавить конфигурацию ...», заполните обычные данные для сервера / имя пользователя / и т.д. В нижней части вы можете выбрать SSH> Нет, и вы увидите опцию «Туннель», выберите ее. Нажмите кнопку «Добавить туннель».

Localport: 8080

Dest Host: [хост]

Порт Дест: 8080

Сохраните все и откройте соединение.


ProxyBrowse

Сервер: localhost

Порт: 8080

Не вводите имя пользователя или пароль, вам не нужно, потому что iSSH уже создал туннель, а iSSH продолжает работать в фоновом режиме на вашем iPhone.

Вот и все, теперь вы можете просматривать веб-страницы через SSH-туннель.


Хотите пойти еще дальше? Установите Tor на свой сервер, подключите туннель iSSH к порту Tor, а затем со своего телефона вы действительно сможете анонимно просматривать веб-страницы.

Для технически склонных, которые хотят немного подробнее о том, что только что произошло:

[host] : ssh -f -N -D 8080 [host]
[client_tunnel] : ssh -L 8080:localhost:8080 [host]
[client_socks5] : localhost:8080

Прокси-браузер SOCKS связывается через туннель переадресации локального порта с туннелем переадресации динамического порта на сервере.

первый


Это не распространяется на любой доступ к сети, за исключением ProxyBrowse. Например, электронная почта не защищена.
Дуглас провел

0

Если у вас есть доступ к оболочке (jailbroken) и вы можете поместить proxy.pacфайл в указанное выше место, вы также можете использовать следующую ссылку для proxy.pacфайла в настройках сети для соединения, которое вы пытаетесь туннелировать:

file://private/var/preferences/proxy.pac

Вместе с SSH-туннелем к SSH-серверу в США я могу прослушивать Pandora / Slacker и т. Д. Через
Wi-Fi за пределами разрешенной зоны покрытия (т. Е. Во время поездки за пределы США).

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.