privoxy 和 shadowsocks配置
摘录自: https://blog.liuguofeng.com/p/4010
新建一个 privoxy 用户用来运行
安装 Shadowsocks
shadowsocks 客户端和服务器端是同一个安装包,两个脚本不同,客户端模式是 sslocal,服务器端模式是 ssserver
CentOS 下搭建# 安装pip
yum install python-setuptools && easy_install pip
# 安装shadowsocks
pip install shadowsocks
Ubuntu 下搭建# 安装pip
apt-get install python-pip
# 安装shadowsocks
pip install shadowsocks
sslocal 运行 shadowsocks 客户端nohup sslocal -s your_server_ip -p your_server_port -l 1080 -k your_server_passwd -t 600 -m rc4-md5 > /dev/null 2>&1 &
解释# your_server_ip: 服务器 IP # your_server_port: 服务器端口 # your_server_passwd: SS 密码 # rc4-md5: 加密方式或创建一个 shadowsocks 的配置文件
vim /etc/shadowsocks.json
{
"server":"your_server_ip", # ss 服务器 IP
"server_port":your_server_port, # 端口
"local_address": "127.0.0.1", # 本地 IP
"local_port":1080, # 本地端口
"password":"your_server_passwd",# 连接 ss 密码
"timeout":300, # 等待超时
"method":"rc4-md5", # 加密方式
"fast_open": false, # true 或 false。
"workers": 1 # 工作线程数
}
解释(使用时删除井号及后面文字)fast_open: 如果你的服务器 Linux 内核在3.7+,可以开启 fast_open 以降低延迟。 开启方法: echo 3 > /proc/sys/net/ipv4/tcp_fastopen 开启之后, 将 fast_open 的配置设置为 true 即可以 json 文件来运行启动 sslocal
nohup sslocal -c /etc/shadowsocks.json > /dev/null 2>&1 &
增加开启自动启动,执行:echo " nohup sslocal -c /etc/shadowsocks.json > /dev/null 2>&1 &" /etc/rc.local
执行 ps aux | grep sslocal | grep -v “grep” 可查看后台 sslocal 是否运行。
安装 Privoxy
上述安好了 shadowsocks,但它是 socks5 代理,我门在 shell
里执行的命令,发起的网络请求现在还不支持 socks5 代理,只支持 http/https 代理。为了我门需要安装 privoxy
代理,它能把电脑上所有 http 请求转发给 shadowsocks。
wget http://www.privoxy.org/sf-download-mirror/Sources/3.0.26%20%28stable%29/privoxy-3.0.26-stable-src.tar.gz
tar -zxvf privoxy-3.0.26-stable-src.tar.gz
cd privoxy-3.0.26-stable
注:我实际用apt-get -y install privoxy 来安装
若上述地址无法连接可替换为本站链接 http://blog.liuguofeng.com/wp-content/uploads/2018/07/privoxy-3.0.26-stable-src.tar.gz新建一个 privoxy 用户用来运行
user add privoxy
编译安装autoheader && autoconf
./configure
make && make install
配置vim /usr/local/etc/privoxy/config
确保下面两句没有被注释listen-address 127.0.0.1:8118 # 8118 是默认端口,不用改,下面会用到
forward-socks5 / 127.0.0.1:1080 . # 这里的端口写 shadowsocks 的本地端口
注: 实际上listen-address就是这样的,但forward-socks5 不是这样的,需要做改动。
使用 privoxy-gfwlist
获取 privoxy-gfwlistwget https://raw.github.com/zfl9/gfwlist2privoxy/master/gfwlist2privoxy
bash gfwlist2privoxy '127.0.0.1:1080'
cp gfwlist.action /usr/local/etc/privoxy
echo 'actionsfile gfwlist.action' >> /usr/local/etc/privoxy/config
启动 privoxyprivoxy --user privoxy /usr/local/etc/privoxy/config
注:我实际改动/etc/privoxy/config这个文件
配置 /etc/profilevim /etc/profile
输入内容export http_proxy=http://127.0.0.1:8118 #这里的端口和上面 privoxy 中的保持一致
export https_proxy=http://127.0.0.1:8118
export ftp_proxy=http://127.0.0.1:8118 #ftp可以不用
export no_proxy="localhost, 127.0.0.1, ::1, aliyuncs.com, qiniuapi.com, qiniu.com, qiniucdn.com"
刷新source /etc/profile
注:我实际是把这个存到 /usr/local/bin/proxy.sh中了。测试
curl https://www.google.com
我的实际使用过程中,发现运行玩 . proxy.sh后,启动thunderbird是认可某个shell离得这些代理设置的。但是google-chrome是不认可的。
于是在网络的系统代理里,把网络代理一律设置为 127.0.0.1:8118。
如果不更改系统代理,可以用命令行的方式启动googel-chrome
chromium --proxy-server="https://proxy-ip:proxy-port"那么实际的命令大概是:google-chrome --proxy-server="https://localhost:8118"多个proxy-server,这样做: --proxy-server="https=proxy1:80;http=socks4://baz:1080"
目前系统的翻墙设置是:
网络代理设置 + privoxy + shadowsocks,还有一个dns2socks,把域名发到本地的1080 sock5端口来解析。
2020年10月我重新在Linux下翻墙,采用了一些别的方法。
用的是ssr(dotNet写的shadowsocks),从https://github.com/the0demiurge/CharlesScripts/blob/master/charles/bin/ssr下载。
运行 ssr config 配置shadowsocks客户端。ssr start启动 ssr service。
privoxy和前面介绍的类似,在centos下可以 yum install安装,而proxychains没法用 yum来安装。
确保/etc/privoxy/config中的这两行没有被注释掉。
这样启动privoxy:
智能代理采用这个方案:
安装genpac并在/home/ochicken/目录下生成autoproxy.pac
1
2 sudo pip install genpac
genpac --pac-proxy "SOCKS5 127.0.0.1:1080" --gfwlist-proxy="SOCKS5 127.0.0.1:1080" --output="~/autoproxy.pac"打开ubuntu的
settings - Network - Network proxy
, 选择方法为自动 (Automatic), URL为file:///{pac文件路径}
, 如
1 file:///root/autoproxy.pac
privoxy需要的 action 文件
配置文件 config
或 action 文件修改后不需要重启 privoxy。
使用的工具是 gfwlist2privoxy。这个工具很简单,文档就几行,写得也很清楚。
安装:
pip install gfwlist2privoxy
复制代码
gfwlist2privoxy 不支持 python3.x,安装时注意使用的是 pip2
还是 pip3
。
参数说明:
-i
/--input
输入,本地 gfwlist 文件或文件 URL。这里使用上面的 gfwlist
-f
/ --file
输出,即生成的 action 文件的目录。这里输出到 /etc/privoxy/gfwlist.action
-p
/ --proxy
SS 代理地址,生成后可以修改。这里是 127.0.0.1:1081
-t
/ --type
代理类型,生成后也可以修改。这里是 socks5
--user-rule
用户自定义规则文件,这个文件中的规则会被追加到 gfwlist 生成的规则后面
示例:
gfwlist2privoxy -i https://raw.githubusercontent.com/gfwlist/gfwlist/master/gfwlist.txt -f /etc/privoxy/gfwlist.action -p 127.0.0.1:1081 -t socks5
复制代码
得到文件 /etc/privoxy/gfwlist.action
:
# gfwlist.action generated by gfwlist2privoxy, 2018-08-02 07:36:00 +0000
# https://github.com/snachx/gfwlist2privoxy
{+forward-override{forward-socks5 127.0.0.1:1081 .}}
# 规则列表
...
复制代码
最后,把 /etc/privoxy/config
中的 actionsfile my.action
改为 actionsfile gfwlist.action
就完成了。
评论
发表评论