安装SSR
# 需要本地git 环境
yum install -y git
git clone https://github.com/SAMZONG/gfwlist2privoxy.git
cd gfwlist2privoxy/
mv ssr /usr/local/bin
chmod +x /usr/local/bin/ssr
配置SSR
[root@localhost ~]# ssr install
Cloning into '/usr/local/share/shadowsocksr'...
remote: Counting objects: 5490, done.
remote: Total 5490 (delta 0), reused 0 (delta 0), pack-reused 5490
Receiving objects: 100% (5490/5490), 1.71 MiB | 410.00 KiB/s, done.
Resolving deltas: 100% (3799/3799), done.
[root@localhost ~]# ssr config # 配置文件路径 /usr/local/share/shadowsocksr/config.json
{
"server": "0..0.0.0", // ssr服务器ip
"server_ipv6": "::",
"server_port": 8080, // ssr服务器端口
"local_address": "127.0.0.1",
"local_port": 1080,
"password": "123456", // 对应password
"method": "none", // 这里对应SSGlobal配置中的Encryption
"protocol": "auth_chain_a", //对应protocl
"protocol_param": "",
"obfs": "http_simple", //对应obfs
"obfs_param": "hello.world", //对应obfs_param
"speed_limit_per_con": 0,
"speed_limit_per_user": 0,
"additional_ports" : {}, // only works under multi-user mode
"additional_ports_only" : false, // only works under multi-user mode
"timeout": 120,
"udp_timeout": 60,
"dns_ipv6": false,
"connect_verbose_info": 0,
"redirect": "",
"fast_open": false
}
主要修改这几个信息:
"server_port":8388, //端口
"password":"password", //密码
"protocol":"origin", //协议插件
"obfs":"http_simple", //混淆插件
"method":"aes-256-cfb", //加密方式
启动关闭
ssr start
ssr stop
删除
ssr uninstall # 这里操作会删除/usr/local/share/shadowsocksr
以上,本地监听服务已经配置完成了,在填写的过程中,要注意你的本地监听地址和监听端口,默认是127.0.0.1:1080,如果你修改了设置,那么在后续配置中也要配合修改。
安装privoxy
yum install -y epel-release
yum install -y privoxy
全局模式
代理模式同其他平台上方式,将所有http/https请求走代理服务,如果需要全局代理的话按照如下操作即可,如果要使用PAC模式,请跳过此部分。
# 添加本地ssr服务到配置文件
echo 'forward-socks5 / 127.0.0.1:1080 .' >> /etc/privoxy/config
# Privoxy 默认监听端口是是8118
export http_proxy=http://127.0.0.1:8118
export https_proxy=http://127.0.0.1:8118
export no_proxy=localhost
# 启动服务
systemctl start privoxy.service
PAC模式
使用GFWList是由AutoProxy官方维护,由众多网民收集整理的一个中国大陆防火长城的屏蔽列表,这里感谢@Otokaze 为我们提供了转换shell自动转换脚本,为了方便修改,我fork了这个项目,将这篇教程所用到的资源进行了汇总,你可以在最开始git clone的目录中找到执行脚本。
[root@localhost ~]# cd gfwlist2privoxy/
[root@localhost gfwlist2privoxy]# ls
gfw.action gfwlist2privoxy README.md ssr
[root@localhost gfwlist2privoxy]# bash gfwlist2privoxy
proxy(socks5): 127.0.0.1:1080 # 注意,如果你修改了ssr本地监听端口是需要设置对应的
{+forward-override{forward-socks5 127.0.0.1:1080 .}}
=================================================================
"cp -af /root/gfwlist2privoxy/gfw.action /etc/privoxy/"
[root@localhost ~]# cp -af gfw.action /etc/privoxy/
[root@localhost ~]# echo 'actionsfile gfw.action' >> /etc/privoxy/config
# Privoxy 默认监听端口是是8118
export http_proxy=http://127.0.0.1:8118
export https_proxy=http://127.0.0.1:8118
export no_proxy=localhost
# 启动服务
systemctl start privoxy.service
proxy 环境变量
# privoxy默认监听端口为8118
export http_proxy=http://127.0.0.1:8118
export https_proxy=http://127.0.0.1:8118
export no_proxy=localhost
# no_proxy是不经过privoxy代理的地址
# 只能填写具体的ip、域名后缀,多个条目之间使用','逗号隔开
# 比如: export no_proxy="localhost, 192.168.1.1, ip.cn, chinaz.com"
# 访问 localhost、192.168.1.1、ip.cn、*.ip.cn、chinaz.com、*.chinaz.com 将不使用代理
代理测试
# 访问各大网站,如果都有网页源码输出说明代理没问题
curl -sL www.baidu.com
curl -sL www.google.com
curl -sL www.google.com.hk
curl -sL www.google.co.jp
curl -sL www.youtube.com
curl -sL mail.google.com
curl -sL facebook.com
curl -sL twitter.com
curl -sL www.wikipedia.org
# 获取当前 IP 地址
# 如果使用 privoxy 全局模式,则应该显示 ss 服务器的 IP
# 如果使用 privoxy gfwlist模式,则应该显示本地公网 IP
curl -sL ip.chinaz.com/getip.aspx
管理脚本
在以上部署操作完成后,应该已经可以正常科学上网了,但是如果需要进行管理时,需要分别管理ssr和privoxy,为了方便管理,这里写了一个shell脚本方便管理: ssr_manager
#!/bin/bash
# Author Samzong.lu
case $1 in
start)
ssr start &> /var/log/ssr-local.log
systemctl start privoxy.service
export http_proxy=http://127.0.0.1:8118
export https_proxy=http://127.0.0.1:8118
export no_proxy="localhost, ip.cn, chinaz.com"
;;
stop)
unset http_proxy https_proxy no_proxy
systemctl stop privoxy.service
ssr stop &> /var/log/ssr-log.log
;;
autostart)
echo "ssr start" >> /etc/rc.local
systemctl enable privoxy.service
echo "http_proxy=http://127.0.0.1:8118" >> /etc/bashrc
echo "https_proxy=http://127.0.0.1:8118" >> /etc/bashrc
echo "no_proxy='localhost, ip.cn, chinaz.com'" >> /etc/bashrc
;;
*)
echo "usage: source $0 start|stop|autostart"
exit 1
;;
esac
使用
mv gfwlist2privoxy/ssr_manager /usr/local/bin
chmod +x ssr_manager
# 启动服务
ssr_manager start
# 关闭服务
ssr_manager stop
# 添加开机自启动
ssr_manager autostart
通常使用socks5做代理进行扶墙,但是socks5无法进行http的代理,则需要privoxy搭配将http转发给socks5以达到目的。
配置方法:
vim /usr/local/privoxy/etc/config
1、修改:
enable-remote-toggle 1
enable-remote-http-toggle 1
2、注释:
#actions file user.action
3、注释:
#filterfile user.filter
4、修改:
8087
为privoxy本地的http监听端口
改为 0.0.0.0:8087
允许局域网的连接
listen-address :8087
5、在最后添加:
127.0.0.1:1080
是shadowsocks的本地监听地址,最后多一个点
forward-socks5 / 127.0.0.1:1080 .
注:
配置结束后启动privoxy,此时本地扶墙的代理地址就是127.0.0.1:8087
此时其他电脑就可以指向这台服务器实现代理上网了。
最近又出来了一种新的方式v2ray
这个安装简单,安装后可以直接用或结合privoxy
使用官方一键安装脚本
bash <(curl -L -s https://install.direct/go.sh)
此脚本会自动安装以下文件:
/usr/bin/v2ray/v2ray:V2Ray 程序;
/usr/bin/v2ray/v2ctl:V2Ray 工具;
/etc/v2ray/config.json:配置文件;
/usr/bin/v2ray/geoip.dat:IP 数据文件;
/usr/bin/v2ray/geosite.dat:域名数据文件;
然后就可以修改配置文件启动v2ray服务
示例客户端配置
{
"log":{"access": "/var/log/v2ray/access.log",
"error": "/var/log/v2ray/error.log",
"loglevel": "debug"},
"dns":{},
"stats":{},
"inbounds":[
{
"port":"1080",
"protocol":"socks",
"settings":{
"auth":"noauth",
"udp":true
},
"tag":"in-0"
},
{
"port":"1081",
"protocol":"http",
"settings":{},
"tag":"in-1"
}
],
"outbounds":[
{
"protocol":"vmess",
"settings":{
"vnext":[
{
"address":"xxxxxx",
"port":4543,
"users":[
{
"id":"ea1294d2-fdf1-4830-b147-xxxxxxxxxx",
"alterId":2
}
]
}
]
},
"tag":"out-0",
"streamSettings":{
"network":"ws",
"security":"tls",
"tcpSettings":{},
"tlsSettings":{
"serverName":"xxxxxx"
}
}
},
{
"tag":"direct",
"protocol":"freedom",
"settings":{}
},
{
"tag":"blocked",
"protocol":"blackhole",
"settings":{}
}
],
"routing":{
"domainStrategy":"IPOnDemand",
"rules":[
{
"type":"field",
"ip":[
"geoip:private"
],
"outboundTag":"direct"
}
]
},
"policy":{},
"reverse":{},
"transport":{}
}
ifconfig eth0 mtu 1280 up
go.sh 支持如下参数,可在手动安装时根据实际情况调整:
-p 或 –proxy: 使用代理服务器来下载 V2Ray 的文件,格式与 curl 接受的参数一致,比如 “socks5://127.0.0.1:1080” 或 “http://127.0.0.1:3128″。
-f 或 –force: 强制安装。在默认情况下,如果当前系统中已有最新版本的 V2Ray,go.sh 会在检测之后就退出。如果需要强制重装一遍,则需要指定该参数。
–version: 指定需要安装的版本,比如 “v1.13″。默认值为最新版本。
–local: 使用一个本地文件进行安装。如果你已经下载了某个版本的 V2Ray,则可通过这个参数指定一个文件路径来进行安装。
示例:
使用地址为 127.0.0.1:1080 的 SOCKS 代理下载并安装最新版本:./go.sh -p socks5://127.0.0.1:1080
安装本地的 v1.13 版本:./go.sh –version v1.13 –local /path/to/v2ray.zip