最近 hosts越来越吃紧,直到现在基本已废,作为一名安卓开发者不得不自己折腾搬瓦工搭建一个用于资料下载以及学习的隧道。搭建完成后,连接方式有必要记录下来用于下次使用
ps:搭建教程自行搜索 测试环境为Ubuntu16.04 LTS (Ubuntu 14.04以上均可)
服务端配置:
很多人都知道怎么去买vps,怎么去安装ss或者ssr,但是具体配置步骤,网上很多并不清晰,且不适合新手,所以简单记录下
仅供学习交流,请勿用于违法犯罪,否则后果自负
步骤一:
准备条件:搬瓦工一台,2.99$即可,服务器选址随意,后台安装ss或者ssr
右边安装即可,然后会有启动后的端口等,网上资料很多,不细究了
步骤二:
这是最重要的一点 配置文件:随意命名,因为是指定位置,无影响,我的是 /etc/shadowsocks.json
ss版(命令为ssserver):
安装完后登录控制台:
ssserver -c /etc/shadowsocks.json -d start #启动 ssserver -c /etc/shadowsocks.json -d stop #关闭
其配置文件shadowsocks.json内容为:wiki
#单用户
{ "server":"remote-shadowsocks-server-ip-addr", "server_port":443, "local_address":"127.0.0.1", "local_port":1080, "password":"your-passwd", "timeout":300, "method":"chacha20-ietf", "fast_open":false, "workers":1 }
#多用户
{ "server":"remote-shadowsocks-server-ip-addr", "local_address":"127.0.0.1", "local_port":1080, "port_password":{ #纯 SS 不带混淆 端口25 密码为123456. "25":"123456", "443":"123456", #注意无论怎么变化,最后一个端口设置,不带逗号! "27":"123456" #此处没有逗号! }, "timeout":300, "method":"chacha20-ietf", "fast_open":false, "workers":1 }
步骤三:
配置完后,运行步骤二开头的命令,关闭下再开启 或者restart
SSR版(未找到直接启动命令,因闹得沸沸扬扬的SSR风波,不推荐SSR):
安装与上面相同,三步走:
安装,配置文件,重新启动SSR/SS
其安装目录为/shadowsocksr,切换进去后会有一个 shadowsocks文件夹,里面有个server.py脚本,至于做了什么我不去研究,这个server.py类似一个启动命令,
cd /shadowsocksr/shadowsocks #到达目的地 python server.py -h #查看帮助说明
python server.py -d stop #停止 python server.py -c /etc/shadowsocks.json -d start #启动
其配置文件shadowsocks.json内容为:
{ "server": "remote-shadowsocks-server-ip-addr", "server_port": 443, "local_address": "127.0.0.1", "local_port": 1080, "password": "password", "timeout": 120, "udp_timeout": 60, "method": "aes-256-cfb", "protocol": "auth_sha1_compatible", "protocol_param": "", "obfs": "http_simple_compatible", "obfs_param": "", "dns_ipv6": false, "connect_verbose_info": 0, "redirect": "", "fast_open": false }
多个用户的配置则为:
如果要多个用户一起使用的话,请写入以下配置:
{ "server": "0.0.0.0", "local_address": "127.0.0.1", "local_port": 1080, "port_password":{ "80":"password1", //端口和密码1 "443":"password2" //端口和密码2 }, "timeout": 120, "udp_timeout": 60, "method": "aes-256-cfb", "protocol": "auth_sha1_compatible", "protocol_param": "", "obfs": "http_simple_compatible", "obfs_param": "", "dns_ipv6": false, "connect_verbose_info": 0, "redirect": "", "fast_open": false }
按照格式修改端口和密码:
"port_password":{ "80":"password1", //端口和密码1 "443":"password2" //端口和密码2 },
如果要为每个端口配置不同的混淆协议,请写入以下配置:
{ "server":"remote-shadowsocks-server-ip-addr", #你的ip "server_ipv6":"::", "local_address":"127.0.0.1", "local_port":1080, "port_password":{ #纯 SS 不带混淆 端口25 密码为123456. "25":"123456", #端口443,密码123456 ,protocol选择auth_chain_a。 #obfs选择tls1.2_ticket_auth,具体插件的介绍如下参考资料中 "443":{"protocol":"auth_chain_a", "password":"123456", "obfs":"tls1.2_ticket_auth", "obfs_param":""}, #注意无论怎么变化,最后一个端口设置,不带逗号! "27":{"protocol":"auth_aes128_md5", "password":"123456", "obfs":"tls1.2_ticket_auth", "obfs_param":""} #此处没有逗号! }, "timeout":400, #默认全局的加密方式,即上边各个端口的默认加密方式。一般为aes-256-cfb>, #此处,选择为chacha20,移动设备性能较好。 "method":"chacha20", #protocol.协议定义插件的默认值,origin即使用原版SS协议,不混淆。 #即上面端口配置中,你没有设置 protocol 和 obfs 情况下,使用的默认值。 "protocol": "origin", "protocol_param": "", #protocol.协议定义插件的默认值,plain即使用原协议,不混淆。 "obfs": "plain", "obfs_param": "", "redirect": "", "dns_ipv6": true, #TCP FAST OPEN ,打开 "fast_open": true, "workers": 1 }
各选项说明:
Name | Explanation | 中文说明 |
---|---|---|
server | the address your server listens | 监听地址 |
server_ipv6 | the ipv6 address your server listens | ipv6地址 |
server_port | server port | 监听端口 |
local_address | the address your local listens | 本地地址 |
local_port | local port | 本地端口 |
password | password used for encryption | 密码 |
timeout | in seconds | 超时时间 |
method | default: “aes-256-cfb” | 加密方式 |
protocol_param | default:”” | 协议插件参数,默认”” |
protocol | default:”auth_sha1_compatible” | 协议插件,默认”auth_sha1_compatible” |
obfs | default:”http_simple_compatible” | 混淆插件,默认”http_simple_compatible” |
obfs_param | default:”” | 混淆插件参数,默认”” |
redirect | default:”” | 重定向参数,默认”” |
dns_ipv6 | default:false | 是否优先使用IPv6地址,有IPv6时可开启 |
fast_open | use TCP_FASTOPEN, true / false | 快速打开(仅限linux客户端) |
workers | number of workers, available on Unix/Linux | 线程(仅限linux客户端) |
其中protocol有如下四种取值:
protocol | 说明 |
---|---|
“origin” | 原版协议 |
“verify_simple” | 带校验的协议 |
“verify_deflate” | 带压缩的协议 |
“verify_sha1″ | 带验证抗CCA攻击的协议,可兼容libev的OTA |
“auth_simple” | 抗重放攻击的协议 |
“auth_sha1″ | 带验证抗CCA攻击且抗重放攻击的协议 |
“auth_sha1_v2″ | 类似”auth_sha1″,提供更好的长度混淆特性 |
其中obfs有如下四种取值:
obfs | 说明 |
---|---|
“plain” | 不混淆 |
“http_simple” | 伪装为http协议 |
“tls_simple” | 伪装为tls协议(不建议使用) |
“random_head” | 发送一个随机包再通讯的协议 |
“tls1.2_ticket_auth” | 伪装为tls ticket握手协议(强烈推荐),同时能抗重放攻击 |
客户端配置:
安装Shadowsocks-qt5
sudo add-apt-repository ppa:hzwhuang/ss-qt5 sudo apt-get update sudo apt-get install shadowsocks-qt5
服务器设置
点击菜单栏中 “Connection > Add > Manually” 进行手动配置
点此查看详细配置信息
右键点击新建的连接,选择connect与代理服务器进行连接
更改系统代理设置
进入代理设置 System settings > Network > Network Proxy
设置Method为Manual
设置Socks为 Host 127.0.0.1 1080
这时的代理设置为全局代理,接下来我们要介绍如何使用PAC文件进行更为智能的代理
2. 安装GenPAC
在多数情况下,我们更希望使用PAC模式的代理,让我们访问国内网站时不再先绕地球跑一圈,在Windows和Mac上的shadowsocks客户端可以轻松切换到PAC模式,而在Ubuntu上我们需要使用pac文件来设置系统代理以达到相同的效果
#首先安装pip sudo apt-get install python-pip #通过pip安装genpac sudo pip install genpac
使用GenPAC生成pac文件
进行这个步骤需要保证shadowsocks已经连接
点此查看更多genpac参数
genpac -p "SOCKS5 127.0.0.1:1080" --gfwlist-proxy="SOCKS5 127.0.0.1:1080" --gfwlist-url=https://raw.githubusercontent.com/gfwlist/gfwlist/master/gfwlist.txt --output="autoproxy.pac"
此时会生成一个名为autoproxy.pac的文件
更改系统代理设置
进入代理设置 System settings > Network > Network Proxy
设置Method为Automatic
设置Configuration URL为autoproxy.pac文件的路径
#例如 /home/lckiss/autoproxy.pac
现在只有当你访问PAC列表内的域名时才会通过代理服务器获取数据
3.开启BBR算法加速
登录服务器控制台,按顺序执行即可
wget --no-check-certificate https://raw.githubusercontent.com/wn789/BBR/master/bbr.sh chmod +x bbr.sh ./bbr.sh
执行完会提示重启,重启后,你可能需要手动重启一次ss,
ssserver -c /etc/shadowsocks.json -d stop ssserver -c /etc/shadowsocks.json -d start
然后你会发现,以前480p都卡的YouTube,现在1080也都是小事
资料来自:
http://www.pandagao.com/2016/05/13/ubuntu-use-shadowsocks-and-pac/
https://www.wn789.com/5632.html
被墙文章:
当然要理解些东西的话推荐:
Linux下不像mac与win可以直接全局代理,往往要配置许多才能达到目的,本人才疏学浅,推荐以下两篇文章:
开发已转战mac,Linux且行且珍惜
Comments | NOTHING