虚拟机&终端使用 proxychains

虚拟机&终端使用 proxychains

经常使用Linux虚拟机终端ssh,但代理设置总是很头疼,大环境下SS又经常挂,在终端里配置SS太浪费时间。直到看到了这个工具proxychains,可以非常方便地实现虚拟机使用主机SS,不需要进行复杂的配置。

主机开启本地SS代理

开启本地SS代理,且允许局域网连接,部分版本的代理软件没有这个选项,只需要把本地代理地址改为0.0.0.0就可以了,如下图:
设置本地代理
局域网连接

虚拟机设置proxychains

互相通信

首先,确保虚拟机与主机能够互相ping通,不再赘述。

安装proxychains

使用源安装即可, e.g.

1
sudo apt-get install proxychains

编辑配置

配置信息全部在/etc/proxychains.conf文件,编辑,找到最后[ProxyList]的信息:

1
2
3
4
5
6
7
...
[ProxyList]
# add proxy here ...
# meanwile
# defaults set to "tor"
# socks4 127.0.0.1 9050
socks5 192.168.1.147 1086

在最后一行,添加自己主机代理信息(代理协议 代理主机的地址 代理端口)即可,代理地址写主机的IP,不要写127.0.0.1。

测试连接情况

curl ip.cn即可:

1
$ proxychains curl ip.cn

如果返回的IP为境外IP,则代理连接成功。e.g.

1
2
3
4
5
6
$ proxychains curl ip.cn
ProxyChains-3.1 (http://proxychains.sf.net)
|DNS-request| ip.cn
|S-chain|-<>-192.168.1.147:1086-<><>-4.2.2.2:53-<><>-OK
|DNS-response| ip.cn is 104.16.24.99
|S-chain|-<>-192.168.1.147:1086-<><>-104.16.24.99:80-<><>-OK

其中,104.16.24.99为境外IP,连接成功。

使用proxychains

在使用proxychains时,只要在所有需要用到代理进行通信的命令前加上proxychains即可。e.g.

1
2
3
4
5
6
7
8
9
10
11
$  proxychains git clone https://github.com/haad/proxychains.git
ProxyChains-3.1 (http://proxychains.sf.net)
Cloning into 'proxychains'...
|DNS-request| github.com
|S-chain|-<>-192.168.1.147:1086-<><>-4.2.2.2:53-<><>-OK
|DNS-response| github.com is 192.30.255.113
|S-chain|-<>-192.168.1.147:1086-<><>-192.30.255.113:443-<><>-OK
remote: Enumerating objects: 815, done.
remote: Total 815 (delta 0), reused 0 (delta 0), pack-reused 815
Receiving objects: 100% (815/815), 469.34 KiB | 359.00 KiB/s, done.
Resolving deltas: 100% (482/482), done.

如果觉得麻烦,可以直接使用proxychains bash命令,给终端加上全局代理