缘由:
http://v2ex.com/t/55357
http://v2ex.com/t/55805
http://v2ex.com/t/56045
目标:
0. 尽可能地提供最大化的网络访问速度。
1. 用户友好,要简化相关的众多问题,DNS,PAC,规则,插件,各浏览器版本,非极客也能用。
2. 前端代理(针对浏览器的那一层)的 socks5 是 shadowsocks 的大亮点,需继承。
3. 后端代理(穿墙的那一层)的协议应该构建在较为成熟和隐蔽的方案之上,可替换,可升级。
想法:
最 初模糊的想法是“路由器借助 socks5 协议翻墙”,但是经讨论,感觉“用 iptable + redsock 劫持所有 dport 为 80 和 443 的数据包走 shadowsocks”的方案在合理分流上还有些问题,不符合上述目标 0 (或许是还没有完全理解 redsock 的原理,囧)。由此,从“完全不需要配置”的目标妥协到“自动配置或者最小配置”的目标,尽力实现“自动配置”。
即。由过去的:
N 台设备 * (各自安装软件+配置)
变为:
1个节点(x个服务) 通过标准协议服务于 N 台设备
思路:
1 架设本地的 DNS 服务,完成之前 HOSTS 文件实现的 DNS 解毒功能,并以服务的形式提供给本地网络的所有计算设备,实现这些设备的 HOSTS 免配置(需将本地/路由器的 DNS 指向此服务)。
2 架设本地的 WPAD 服务,完成之前 PAC 文件实现的代理规则分发,并以服务的形式提供给本地网络的所有计算设备,实现这些设备的 PAC 免配置(设置 DNS 之后,需开启浏览器内置的 “Auto Proxy Detect” 设置)。
3 架设本地的 HTTP PROXY 服务,完成之前 Pirvoxy/Polipo 实现的代理转换(最大限度地兼容各种浏览器,比如,不支持 SOCKS 代理的 OPERA),并以服务的形式提供给本地网络的所有计算设备,此 HTTP PROXY 服务级联到本地的 SOCKS5 PROXY 服务。
4 架设本地的 SOCKS5 PROXY 服务,此 SOCKS5 PROXY 服务的上行协议是可配置的,目前可以使用 SSH-D 开的 SOCKS5(你没有看错,就是 SOCKS5 到 SOCKS5) 或 SHADOWSOCKS,很显然,这里是可以扩展的点。
配置点:(如果还有能达成更少配置的方法,麻烦告诉我)
1. 需要将本地/路由器的 DNS 指向本地 DNS 服务。
2. 需开启浏览器内置的 “Auto Proxy Detect” 设置。
已知问题:
1. Android 不支持配置,仍需要安装工具,如,ProxyDroid / Shadowsocks / SSH Tunnel 等。
2. Windows 平台的 WPAD 实现很奇怪,如果不加入域的话,是不会从 WPAD 自动获取 PAC 规则的,需手动指定代理规则的配置路径为 http://wpad/wpad.dat 。
代码:
https://github.com/jackyz/pobi
安装 & 运行:
install node
npm -g install https://github.com/jackyz/pobi/tarball/master
假设 shadowsocks 运行在 1.1.1.1:1080 密码为 pass
sudo npm -g start pobi --worker=shadow://pass@1.1.1.1:1080
from http://www.v2ex.com/t/57004
http://v2ex.com/t/55357
http://v2ex.com/t/55805
http://v2ex.com/t/56045
目标:
0. 尽可能地提供最大化的网络访问速度。
1. 用户友好,要简化相关的众多问题,DNS,PAC,规则,插件,各浏览器版本,非极客也能用。
2. 前端代理(针对浏览器的那一层)的 socks5 是 shadowsocks 的大亮点,需继承。
3. 后端代理(穿墙的那一层)的协议应该构建在较为成熟和隐蔽的方案之上,可替换,可升级。
想法:
最 初模糊的想法是“路由器借助 socks5 协议翻墙”,但是经讨论,感觉“用 iptable + redsock 劫持所有 dport 为 80 和 443 的数据包走 shadowsocks”的方案在合理分流上还有些问题,不符合上述目标 0 (或许是还没有完全理解 redsock 的原理,囧)。由此,从“完全不需要配置”的目标妥协到“自动配置或者最小配置”的目标,尽力实现“自动配置”。
即。由过去的:
N 台设备 * (各自安装软件+配置)
变为:
1个节点(x个服务) 通过标准协议服务于 N 台设备
思路:
1 架设本地的 DNS 服务,完成之前 HOSTS 文件实现的 DNS 解毒功能,并以服务的形式提供给本地网络的所有计算设备,实现这些设备的 HOSTS 免配置(需将本地/路由器的 DNS 指向此服务)。
2 架设本地的 WPAD 服务,完成之前 PAC 文件实现的代理规则分发,并以服务的形式提供给本地网络的所有计算设备,实现这些设备的 PAC 免配置(设置 DNS 之后,需开启浏览器内置的 “Auto Proxy Detect” 设置)。
3 架设本地的 HTTP PROXY 服务,完成之前 Pirvoxy/Polipo 实现的代理转换(最大限度地兼容各种浏览器,比如,不支持 SOCKS 代理的 OPERA),并以服务的形式提供给本地网络的所有计算设备,此 HTTP PROXY 服务级联到本地的 SOCKS5 PROXY 服务。
4 架设本地的 SOCKS5 PROXY 服务,此 SOCKS5 PROXY 服务的上行协议是可配置的,目前可以使用 SSH-D 开的 SOCKS5(你没有看错,就是 SOCKS5 到 SOCKS5) 或 SHADOWSOCKS,很显然,这里是可以扩展的点。
配置点:(如果还有能达成更少配置的方法,麻烦告诉我)
1. 需要将本地/路由器的 DNS 指向本地 DNS 服务。
2. 需开启浏览器内置的 “Auto Proxy Detect” 设置。
已知问题:
1. Android 不支持配置,仍需要安装工具,如,ProxyDroid / Shadowsocks / SSH Tunnel 等。
2. Windows 平台的 WPAD 实现很奇怪,如果不加入域的话,是不会从 WPAD 自动获取 PAC 规则的,需手动指定代理规则的配置路径为 http://wpad/wpad.dat 。
代码:
https://github.com/jackyz/pobi
安装 & 运行:
install node
npm -g install https://github.com/jackyz/pobi/tarball/master
假设 shadowsocks 运行在 1.1.1.1:1080 密码为 pass
sudo npm -g start pobi --worker=shadow://pass@1.1.1.1:1080
from http://www.v2ex.com/t/57004