Skip to content

3 应用举例

07d6 edited this page Jan 29, 2016 · 2 revisions

中文Windows用户请注意:迅雷会影响socks5协议,请慎重对待。

  1. PAC示例
  2. 代理使用策略
  3. Git代理设置

PAC示例

了解什么是PAC? (Proxy auto-config).

在支持PAC的浏览器和手机上,可用PAC实现更好的自动选择性代理通过。

请参考PAC示例并自行修改

浏览器 PAC Setting

Chrome通过SwitchyOmega等扩展可以快速调整代理设置和进行PAC设定。

iOS PAC Setting

iOS和Mac OS X在网络底层框架上支持PAC设置,绝大多数上层应用可以享受到此PAC设置。

可以利用deblocus client提供的简单PAC服务,以iOS为例填写PAC文件地址:

代理使用策略

对于任意应用程序而言,如果同时支持socks5和http,那么应该优先选择socks5方式;

如果都不支持,可以选择强制局部代理工具:

  • Linux: tsocks
  • Windows: SocksCap64, Proxifier
  • Mac OS X: Proxifier

其次考虑全局代理 tun2socks等。

git代理设置

git via HTTP(S)

git config --global http.proxy XXX

XXX可设为 http://ADDR:PORT or socks5(h)://ADDR:PORT

git via git://

两种方法

  1. 配置config git config --global core.gitproxy XXX
  2. 通过环境变量GIT_PROXY_COMMAND设定proxyCommand

ProxyCommand详见后。

git via ssh://

此时git不处理网络连接,远程连接和鉴权是在ssh client中完成的,成功后git将通过pipe进行git通信。

所以此时的代理配置应在ssh client侧完成,即~/.ssh/config中配置ProxyCommand,例如:

# .ssh/config
Host github   # Alias
    HostName github.com
    ProxyCommand connect -5 -S S5_PROXY_ADDR:PORT %h %p
    # connect是一个工具详见后,S5_PROXY_ADDR:PORT为socks5代理服务地址和端口

ProxyCommand

在前面见到了ProxyCommand设定,ProxyCommand会被git或ssh启动执行,要求ProxyCommand以pipe形式与父进程通信以实现代理请求。

满足这个要求(或称为实现了ProxyCommand接口)的程序有很多,推荐一个connect-proxy,它同时也提供了已编译好的Windows程序。

Debian/Ubuntu sudo apt-get install connect-proxy

本地git配置

针对单一git命令临时设定proxy(不适用于via ssh://)

git command -c http.proxy=xxxx

若在clone时会让此repo保存了-c设置,需要时也可手动清除。