http://blog.ihipop.info/2011/01/1988.html
不知道为什么今天PPA又只能使用代理访问了。好像终端不支持Socks5代理 没办法。咱转换吧。
(以下方法合用几乎可以使linux下面大多数软件实现代理通信,即使软件本身不支持)
1.使用tsocks转接
1
2
|
sudo
apt
-
get
install
privoxy
vim
/
etc
/
tsocks
.conf
|
简单介绍下配置方法
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
|
local
=
192.168.0.0
/
255.255.255.0
local
=
10.0.0.0
/
255.0.0.0
local
=
127.0.0.1
/
255.255.255.255
#本地子网不使用代理
#这里的本地子网不一定是局域网,凡是本机可以直接连接的IP都属于local的范围。
#放大了讲,国内的IP基本上对tsocks来说都是一个“本地子网”(伟大的局域网)
path
{
reaches
=
150.0.0.0
/
255.255.0.0
reaches
=
150.1.0.0
:
80
/
255.255.0.0
server
=
10.1.7.25
server_type
=
5
default_user
=
delius
default_pass
=
hello
}
#例外网站。这里列出来的网站不通过默认服务器走,而是通过特定的服务器走。server_type规定了这是一个socks5代理服务器
# 默认服务器(不是本地子网的,也不是例外网站)
server
=
192.168.0.1
# Server type defaults to 4 so we need to specify it as 5 for this one
server_type
=
5
# The port defaults to 1080 but I've stated it here for clarity
#默认端口1080
server_port
=
1080
|
我们可以这样测试一下
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
tsocks
wget
https
:
//www.dropbox.com -v -O /dev/null
--
2011
-
01
-
09
21
:
28
:
52
--
https
:
//www.dropbox.com/
正在解析主机
www
.dropbox
.com
.
.
.
208.43.202.50
Connecting
to
www
.dropbox
.com
|
208.43.202.50
|
:
443...
已连接。
已发出
HTTP
请求,正在等待回应
.
.
.
200
OK
长度:未指定
[
text
/
html
]
Saving
to
:
`
/
dev
/
null'
#略............
#直接wget,就会撞墙
wget
https
:
//www.dropbox.com -v -O /dev/null
--
2011
-
01
-
09
21
:
29
:
15
--
https
:
//www.dropbox.com/
正在解析主机
www
.dropbox
.com
.
.
.
208.43.202.50
Connecting
to
www
.dropbox
.com
|
208.43.202.50
|
:
443...
#查看代理IP
tsocks
wget
http
:
//202.12.29.205/templates/yourip.html -o /dev/null -O /tmp/yourip.html && cat /tmp/yourip.html |grep '\['
#略......
|
效果那是立竿见影啊!遗憾的是似乎已经停止开发了,而且ssh和ftp不工作,其官方网站你推荐了另外一个替代品,Dante,这个配置有点复杂,后面我会给出一个更好的替代品。
2.使用privoxy转换Socks5->HTTP代理
1
2
|
sudo
apt
-
get
install
privoxy
vim
/
etc
/
privoxy
/
config
|
在最后一行加入
1
2
3
|
forward
-
socks4
/
127.0.0.1
:
1080
.
# socks v4
forward
-
socks4a
/
127.0.0.1
:
1080
.
# socks v4, use remote dns
forward
-
socks5
/
127.0.0.1
:
1080
.
# socks v5
|
注意后面有个点
1080是本机的Socks代理端口
然后用service把privoxy给restart一下即可
默认监听的端口是本机的8118
如果要监听所有端口或者更换所有端口
把
1
|
listen
-
address
127.0.0.1
:
8118
|
改为
1
|
listen
-
address
:
8118
|
即可
这个虽然有点杀鸡用牛刀的意思,而且privoxy的鉴权不好实现。但是还是个好方法。
3.使用proxychains完美替代
1
2
|
apt
-
get
install
proxychains
vim
/
etc
/
proxychains
.conf
|
配置非常简单,软件有3种代理模式
# Dynamic - Each connection will be done via chained proxies
# all proxies chained in the order as they appear in the list
# at least one proxy must be online to play in chain
# (dead proxies are skipped)
# otherwise EINTR is returned to the app
动态模式
按照列表内指定的代理的顺序执行代理操作,遇到不可用代理时会自动切换
至少需要一个可用代理# Strict - Each connection will be done via chained proxies
# all proxies chained in the order as they appear in the list
# all proxies must be online to play in chain
# otherwise EINTR is returned to the app
严格模式
代理顺序严格按照列表顺序来,列表内代理必须全部处于可用状态
# Random - Each connection will be done via random proxy
# (or proxy chain, see chain_len) from the list
# this option is good for scans
随机模式
随机选择代理代理列表里面的代理,代理个数由chain_len决定(如果你的代理个数少于chain_len个数,会报错)
[ProxyList]配置节指定了代理列表。支持socks4/5 http等
还支持带认证的代理
比如
type host port [user pass]
socks5 192.168.67.78 1080 lamer secret
贴一下我的配置文件
1
2
3
4
5
6
7
8
|
#cat /etc/proxychains.conf |grep -v "#" |sed /^$/d
dynamic_chain
chain_len
=
1
tcp_read_time_out
15000
tcp_connect_time_out
10000
[
ProxyList
]
socks5
127.0.0.1
1080
socks4
127.0.0.1
1080
|
使用方法和tsocks是一样的,比如
1
|
proxychains
wget
https
:
//www.dropbox.com -v -O /dev/null
|
遗憾的是,以上几款都不支持基于用户名和密码的鉴权!
本机用用可以,想要小圈子内共享是个大问题!
更加专业工具
如果你有一VPN线路出国,想要和朋友共享这条加密隧道,但是又不方便把VPN共享,或者不想使用chnroutes这样和autoproxy相比不精确的方法,怎么办呢,下次我撰文写如何把VPN隧道转换成代理。请关注。