由于墙越建越高,现在想要访问国外的服务越来越难了。在购买了自己的VPS之后,可以基于各种方案建立对应的翻墙方案:
- Windows/Linux/Mac/Android: shadowsocks ( PAC )
- iOS: AnyConnect ( 路由表 )
Openvpn 由于特征过于明显已经不能使用。
以上方案暂时能够满足各种Desktop环境的需求,但是在使用Terminal的时候,会发现以上方案并不好用。这时候就要祭出大杀器 ProxyChains-ng 了。
安装好 proxychains4 之后,建立默认配置,指向本地 shadowsocks 建立的socks5代理。
1
2
3
4
5
6
7
8
9
10
11
12
| # /etc/proxychains.conf
strict_chain
proxy_dns
remote_dns_subnet 224
tcp_read_time_out 15000
tcp_connect_time_out 8000
[ProxyList]
socks5 127.0.0.1 1080 #define your local socks proxy here
|
这时可以测试你的代理有没有生效了
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
| ➜ cnbeta git:(develop) proxychains4 git pull origin develop
[proxychains] config file found: /etc/proxychains.conf
[proxychains] preloading /usr/lib/libproxychains4.dylib
[proxychains] DLL init: proxychains-ng 4.8.1-git-4-gea51cda
[proxychains] DLL init: proxychains-ng 4.8.1-git-4-gea51cda
[proxychains] DLL init: proxychains-ng 4.8.1-git-4-gea51cda
[proxychains] DLL init: proxychains-ng 4.8.1-git-4-gea51cda
[proxychains] DLL init: proxychains-ng 4.8.1-git-4-gea51cda
[proxychains] DLL init: proxychains-ng 4.8.1-git-4-gea51cda
[proxychains] DLL init: proxychains-ng 4.8.1-git-4-gea51cda
[proxychains] DLL init: proxychains-ng 4.8.1-git-4-gea51cda
[proxychains] DLL init: proxychains-ng 4.8.1-git-4-gea51cda
[proxychains] DLL init: proxychains-ng 4.8.1-git-4-gea51cda
[proxychains] DLL init: proxychains-ng 4.8.1-git-4-gea51cda
[proxychains] DLL init: proxychains-ng 4.8.1-git-4-gea51cda
[proxychains] DLL init: proxychains-ng 4.8.1-git-4-gea51cda
[proxychains] DLL init: proxychains-ng 4.8.1-git-4-gea51cda
[proxychains] DLL init: proxychains-ng 4.8.1-git-4-gea51cda
[proxychains] DLL init: proxychains-ng 4.8.1-git-4-gea51cda
[proxychains] DLL init: proxychains-ng 4.8.1-git-4-gea51cda
[proxychains] Strict chain ... 127.0.0.1:1080 ... github.com:22 ... OK
[proxychains] DLL init: proxychains-ng 4.8.1-git-4-gea51cda
From github.com:kyze8439690/cnbeta
* branch develop -> FETCH_HEAD
[proxychains] DLL init: proxychains-ng 4.8.1-git-4-gea51cda
[proxychains] DLL init: proxychains-ng 4.8.1-git-4-gea51cda
[proxychains] DLL init: proxychains-ng 4.8.1-git-4-gea51cda
[proxychains] DLL init: proxychains-ng 4.8.1-git-4-gea51cda
[proxychains] DLL init: proxychains-ng 4.8.1-git-4-gea51cda
[proxychains] DLL init: proxychains-ng 4.8.1-git-4-gea51cda
Already up-to-date.
|
如果看到一堆 [proxychains] 就说明代理成功了,以后想要运行的命令通过代理访问网络,就在运行的命令前增加 “proxychains4 “前缀即可(注意空格)
当然 proxychains4 可能太长,加个alias:
1
2
| # ~/.zshrc
alias pc='proxychains4'
|
当然 pc git pull
还是太麻烦,而且会丢失补全的功能,如果你使用的是 Mac + iTerm 的组合的话,可以在 iTerm -> Preferences -> Profiles -> Keys 中,新建一个快捷键,例如 ⌥+↩︎
,Action 选择 Send Hex Code
,键值为 0x1 0x70 0x63 0x20 0xd
,保存生效。
这样的话,以后命令要代理就直接敲命令,然后 ⌥+↩︎
即可,这样命令补全也能保留了。
附上 Hex Code 对应表,获取工具为 keycodes
Hex Code |
Key |
0x1 |
⌃ + a |
0x70 |
p |
0x63 |
c |
0x20 |
[space] |
0xd |
↩︎ |
Thanks to: