思路仅供参考。。。仅测试、练习、学习、参考,如有违规删之。
如果有拷贝,请留下链接地址。
你是村里的骄傲~
针对题目有两个方式:
一种是买完ssr服务后,在本地局域网搭建一台母机。然后在母机上搭建sslocal,在使用privoxy将本地全局http转sock。
另一种,买完 ssr后,如果密码和端口一样,直接使用nginx做负载转发即可,省事便捷(非限客户端情况下)。
如果不妥之处,请告知,相互学习。
安装 pip
yum install -y pip
yum安装不管用的话
curl "https://bootstrap.pypa.io/get-pip.py" -o "get-pip.py" python get-pip.py
Shadowsocks 客户端
pip install --upgrade pip pip install shadowsocks
编辑一下shadowsocks.json
vim /etc/shadowsocks.json
我是想用上面我说的两种方式的结合,所以就把ss.json配置写成了下面这种方式
{ "server":"0.0.0.0", "server_port":8110, "local_address": "127.0.0.1", "local_port":本地端口8001, "password":"这里是密码", "timeout":300, "method":"rc4-md5", "protocol": "auth_sha1_v4", "protocol_param": "", "obfs": "tls1.2_ticket_auth", "obfs_param": "", "redirect": "", "dns_ipv6": false, "fast_open": false, "workers": 1 }
运行sslocal服务
nohup sslocal -c /etc/shadowsocks.json /dev/null 2>&1 &
测试
运行 curl --socks5 127.0.0.1:8001 http://httpbin.org/ip,如果返回你的 ss 服务器 ip 则测试成功:
下载对应版本Privoxy https://www.privoxy.org/sf-download-mirror/Sources/
wget https://www.privoxy.org/sf-download-mirror/Sources/3.0.28%20%28stable%29/privoxy-3.0.28-stable-src.tar.gz tar -zxvf privoxy-3.0.28-stable-src.tar.gz cd privoxy-3.0.28-stable-src
新建用户
useradd privoxy
安装
autoheader && autoconf ./configure make && make install
配置
vim /usr/local/etc/privoxy/config listen-address 0.0.0.0:8118 # 8118 是默认端口,可以修改,但要记得修改于此对应服务的文件,后面pac等会用到 forward-socks5t / 127.0.0.1:8001 . # 这里的端口写 shadowsocks 的本地端口(注意最后那个 . 不要漏了)
我的privoxy config内容如下 cat /usr/local/etc/privoxy/config
user-manual /usr/local/share/doc/privoxy/user-manual/ confdir /usr/local/etc/privoxy logdir /var/log/privoxy actionsfile match-all.action # Actions that are applied to all sites and maybe overruled later on. actionsfile default.action # Main actions file actionsfile user.action # User customizations filterfile default.filter filterfile user.filter # User customizations logfile logfile listen-address 0.0.0.0:8118 toggle 1 enable-remote-toggle 0 enable-remote-http-toggle 0 enable-edit-actions 0 enforce-blocks 0 buffer-limit 4096 enable-proxy-authentication-forwarding 0 trusted-cgi-referer http://www.example.org/ forward-socks5t / 127.0.0.1:8001 . forwarded-connect-retries 0 accept-intercepted-requests 0 allow-cgi-request-crunching 0 split-large-forms 0 keep-alive-timeout 5 tolerate-pipelining 1 socket-timeout 300
启动
privoxy --user privoxy /usr/local/etc/privoxy/config
vim /etc/profile
增加下面两行
export http_proxy=http://127.0.0.1:8118 #这里的端口和上面 privoxy 中的保持一致 export https_proxy=http://127.0.0.1:8118
测试生效:有返回google的页面代码就是成功了,如果返回的是privoxy的一些错误信息那说明啥你觉得呢。。。可以试着重启次系统,然后在把ss和privoxy重启一次再
curl www.google.com
#cat /etc/rc.local ulimit -SHn 65535 nohup sslocal -c /etc/shadowsocks.json /dev/null 2>&1 & privoxy --user privoxy /usr/local/etc/privoxy/config
点击链接加入群聊【QQ群】:https://jq.qq.com/?_wv=1027&k=5vPMwvA
安装nginx 不管源码还是yum直接安装都可以,安装好后将include /etc/nginx/conf.d/*.conf;添加到nginx.conf配置文件内
我是用yum直接安装的
systemctl enable nginx systemctl start nginx
echo "include /etc/nginx/conf.d/*.conf;" >> /etc/nginx/nginx.conf
cat >> /etc/nginx/conf.d/ssproxy.conf << EOF stream { upstream liuxueproxy { server ip1:port weight=2; server ip1:port weight=2; server ip1:port weight=2; server ip1:port weight=2; server ip1:port weight=2; server ip1:port weight=2; } server { listen 8110; listen 8110 udp; proxy_pass liuxueproxy; } } EOF
nginx 测试
nginx -t
nginx -s reload
防火墙端口放行8118、8110
firewall-cmd --zone=public --add-port=8118/tcp --permanent firewall-cmd --zone=public --add-port=8118/udp --permanent firewall-cmd --zone=public --add-port=8110/tcp --permanent firewall-cmd --zone=public --add-port=8110/udp --permanent firewall-cmd --reload #也可以用下面这种,将ip地址改成你本地局域网的网段就可以了 firewall-cmd --permanent --zone=public --add-rich-rule 'rule family="ipv4" source address="192.168.1.0/8" port port=8118 protocol="udp" accept' ; firewall-cmd --permanent --zone=public --add-rich-rule 'rule family="ipv4" source address="192.168.1.0/8" port port=8118 protocol="tcp" accept' ; firewall-cmd --permanent --zone=public --add-rich-rule 'rule family="ipv4" source address="192.168.1.0/8" port port=8110 protocol="udp" accept' ; firewall-cmd --permanent --zone=public --add-rich-rule 'rule family="ipv4" source address="192.168.1.0/8" port port=8110 protocol="tcp" accept' ; firewall-cmd --reload
其他。。。。。。 PAC
pip install --user gfwlist2privoxy cd /tmp wget https://raw.githubusercontent.com/gfwlist/gfwlist/master/gfwlist.txt ~/.local/bin/gfwlist2privoxy -i gfwlist.txt -f gfwlist.action -p 0.0.0.0:8001 -t socks5 cp gfwlist.action /usr/local/etc/privoxy/ #然后重新启动privoxy,或者整个系统重启
Privoxy 配置
action 文件,其中又包括 match-all.action,default.action,user.action
filter 文件,其中包括 default.filter, user.filter
match-all.action,default.action,default.filter 建议不要修改, Privoxy 升级时会覆盖掉,自定义内容可以放入 user.action 和 user.filter 文件中。action 文件定义 Privoxy 动作,比如
{+block{禁止访问垃圾百度}}
.baidu.com
{+block} 是一个动作,block 后面的 {} 注释,可省略; .baidu.com 是上述动作对象,分为两个部分,host 和 path, host 部分支持通配符,path 部分指的是 / 后部分网址,支持 POSIX 1003.2 正则表达式。更加具体的可以参考官网文档。上述配置生效之后 baidu.com 的任何请求都会返回 403 。filter 文件定义过滤响应的规则,比如
FILTER: replaceText 替换文本
s|网易|Google|g
FILTER 大写表示定义过滤规则, replaceText 表示规则名称,后面接注释;第二行定义具体规则,如果使用过 vi 或者 sed 工具,那么一定很熟悉这个 s 替换命令。定义了 user.filter 过滤规则之后,需要在 user.action 文件中应用规则
{+filter{replaceText}}
.163.com
这样访问 163.com 网站中任何带有“网易”的字都会被替换为 Google,当然如果网页启用了 HTTPS,那么 Privoxy 也无能为力。Privoxy 唯一能够对 HTTPS 网站做的就是 block 了。这也就意味着屏蔽 HTTPS 网站页面内广告的能力下降了。当前 Privoxy 配置的 action 和 filter 文件可以在代理情况下访问 http://config.privoxy.org/show-status 这个网址查看到。
广告屏蔽
前面也提到过 Privoxy 的广告过滤,不过需要注意的是使用去广告功能可能丢失一定的匿名性。
文章不错支持一下吧