(一个村的希望)配合pac方式+小飞机客户端方式SSR+privoxy+nginx转发出门的学习思路

思路仅供参考。。。仅测试、练习、学习、参考,如有违规删之。

如果有拷贝,请留下链接地址。

你是村里的骄傲~

针对题目有两个方式:

一种是买完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 的广告过滤,不过需要注意的是使用去广告功能可能丢失一定的匿名性。

- THE END -
版权声明:
转载原创文章请注明,文章出处://kinggoo.com
原文地址:https://kinggoo.com/ssrprivoxynginx.htm
发表评论?

0 条评论。

发表评论


此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据