如何从iPhone / iPod Touch连接到SOCKS代理?


19

我喜欢通过Mac上通过SSH隧道创建的SOCKS代理安全地和私密地进行冲浪。我在Mac上使用SSH客户端来实现此目的。然后我想,由于iPhone OS本质上是Mac OS,因此同样的技巧也可能在iPhone上起作用。

我设法通过终端(iPhone的终端)在iPhone上创建了一个SSh隧道。(是的,已经越狱了)

ssh -D [port] user@domain.com

在此阶段,我的iPhone是SOCKS代理。

但是,iPhone网络首选项面板中似乎没有指定SOCKS代理的方法。有人建议创建Proxy Auto-Contig(PAC)文件来解决此问题,但这听起来很复杂。

任何想法如何使iPhone使用它自己的SOCKS代理?

Answers:


20

好吧,我猜想,没有更好的方法了。哎呀,苹果,在iPhone OS网络设置面板中放置SOCKS代理设置很难吗? :-(

无论如何,到目前为止最好的答案,也是我在网上唯一能找到的答案,来自SNIPPLR Code 2.0网站上的文档,标题为“ 如何从牢牢的iPhone / iPod Touch连接到SOCKS代理”

以下是其解决方案的清理版本:

假设您可能已经在工作中通过SSH / SOCKS隧道转发了网络流量(出于隐私原因),并且您想在iPhone / iPod Touch上使用同一隧道。这实际上很容易实现。

  1. 确保工作计算机上的SOCKS隧道允许LAN连接,以便您的iPhone / iPod Touch可以连接到它。

    ssh -N -g -D 1080 user@domain.com
    
  2. 创建一个文本文件并插入以下代码:

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

    将SSH替换为IP,将y替换为SSH命令中-D之后使用的端口

  3. 将文本文件作为代理自动配置(PAC)文件保存到扩展名为.pac的Web可访问位置。

    如果您正在阅读这种机会,那么您就会知道如何在您的工作LAN上通过HTTP为文件提供服务,因此我不会对此进行深入研究。

  4. 最后,在iPhone / iPod Touch上,转到“设置”→“ Wi-Fi”,然后单击工作网络右侧的蓝色箭头。滚动到底部,单击“自动”,然后在PAC文件中键入地址(例如,http://192.168.xx.xx/mysupersecretproxy.pac)。

现在,您可以从iPhone / iPod touch安全地上网。


这涵盖了WIFI用例,但不包括2g / 3g网络链接。
道格拉斯于2015年

这不会破坏ssh隧道的全部目的吗?iPhone和计算机之间的流量不会加密吗?
JBis

似乎在连接到VPN(WireGuard)时也会忽略代理设置,这很烦人,因为我想依靠它来加密iOS设备和运行中的服务器之间的连接ssh -gD。回到绘图板。
sjy

4

哇,谢谢您的最后回答。

结合这篇“ SSH通过USB电缆使您的iPhone联机”博客文章,我想出了一个非常可靠的USB系绳即时反向SSH / SOCKS解决方案,仅在您网络中的某处提供了SSH服务器。这使我所有基于tcp的应用程序都可以通过USB使用SSH服务器的Internet连接,尽管我的WiFi出现故障并且没有强大的电话数据计划(T-Mobile预付)。

不需要代理服务器配置。

博客文章的要旨是您可以从命令行控制代理。使用文件:

/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>

如果要覆盖EDGE / 3G,请注意获得ip1部分!不要在文件中查找其他代理条目。

然后,添加以下部分:

<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。

下载iTunes 9的iTunnel(也提供旧版本)。(http://www.mediafire.com/?2q1fzowoy12)

创建一个新的Putty连接:在“连接”>“ SSH”>“隧道”部分中,将新转发的“远程”端口(例如iPhone上的202端口)添加到面向Internet的SSH服务器(例如,192.168.2.100:22)。

Source Port: 202
Destination: 192.168.2.100:22

在同一“ Putty连接”的“ SSH”部分中,将“远程命令”设置为:

ssh -D 1080 user@127.0.0.1 -p 202

将您的Putty配置保存到新的命名会话。

(可选)生成密钥并将公钥添加到两端的*〜/ .ssh / authorized_keys *中,因此您无需键入密码。在快捷方式中使用putty.exe -load“配置文件名称”可以加快速度。


当然,如果您要在Windows上使用Cygwin或其他工具运行OpenSSH服务器,则可以跳过中间通道。
thadk'2

下面是一个人做的这逆做正常圈养:snipplr.com/view/16563/...
thadk

0

该消息似乎表明,如果我正确解释的话,则不可能通过命令行执行此操作。我认为那真的意味着您根本无法使用,因为“网络”偏好设置不支持SOCKS。


这个站点说创建SOCKS代理没有问题,但是必须使用PAC文件来设置。如果有更简单的方法,我会感到无聊。snipplr.com/view/16563/…–
GeneQ


0

上面的答案并不正确。

  1. ssh -D不是iOS系统(例如iPhone和iPad)上的全局代理。

  2. HTTP代理也不是全局代理。

它们不能同时在大多数游戏和IM(即时消息)上使用。它仅用于某些网络冲浪(可以使用Safari),但大多数情况下仅用于此。

iPhone和iPad上最好,最简单的方法是使用VPN。那是全球代理,可以通过远程VPN服务器传输所有Internet数据。另一个选择是OpenVPN,它在iOS上提供了一个客户端。

iPhone和iPad没有像Windows那样的程序可以运行全局袜子代理。


0

我找到了一种无需越狱的方法,但是您将需要访问ssh服务器,您可以在自己的家用计算机上托管该服务器。

您将需要两个iPhone应用程序;iSSH(ssh隧道)和ProxyBrowse(socks5浏览器)。

您还将需要SSH服务器。

在此示例中,我们将SSH服务器称为[host],将用户帐户称为ssh服务器[user]。


SSH服务器

运行以下命令:

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

没错,您在[主机]上创建了一个动态端口,该端口转发回[主机],很快就会知道原因。


iSSH

在“添加配置...”中,填写服务器/用户名/ etc的常用内容。在底部附近,您可以选择SSH>无,然后您将看到“隧道”的选项,然后选择该选项。选择“添加隧道”按钮。

本地端口:8080

目标主机:[主机]

目的地端口:8080

保存所有内容并打开连接。


代理浏览

服务器:本地主机

端口:8080

无需填写用户名或密码,因为iSSH已经创建了隧道,并且iSSH继续在iPhone的后台运行。

就是这样,现在您可以通过SSH隧道浏览Web。


是否想进一步?在您的服务器上安装Tor,使iSSH隧道连接到Tor端口,然后您可以从手机上真正地匿名浏览Web。

对于希望在技术上有所作为的技术人员,请:

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

SOCKS代理浏览器通过本地端口转发隧道与服务器上的动态端口转发隧道进行通信。

第一次


除ProxyBrowse之外,这不涵盖任何网络访问。例如,电子邮件不受保护。
道格拉斯于2015年

0

如果您有权访问外壳程序(越狱)并且可以将proxy.pac文件放置在上述位置,则还可以proxy.pac在网络首选项中使用以下链接作为文件来尝试建立隧道:

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

与通向美国SSH服务器的SSH隧道一起,我可以
在允许的覆盖范围之外(即,在美国以外旅行时)通过Wi-Fi 收听Pandora / Slacker等。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.