科学上网教程(一)——VPS上搭建SSR
1 2 3 4 5 6 7 8 |
更新 2016.06.26 与SSR有关部分基本完成。 2016.09.29 更新SSR部分内容 2016.10.09 更新SSR内容,更新Android端接入。 2016.11.09 更新SSR混淆相关内容,更新SSR-Android,更新部分介绍。 2016.11.20 整合一部分VPS优化内容 2016.12.11 删减调整一部分内容 2016.12.15 替换锐速优化为 BBR,整合TCP优化 |
基本从0开始的教程,当作自己的备份了。
- 吐槽
作为一个伪程序员,每次最苦恼的就是Android SDK的更新,当初安装Android Studio时候就因为防火墙折腾了整整2周,简直就是把自学Android的那点耐心都磨没了。各种的搜索文档,离了google效率下降70%!科学上网简直成了程序员的必备生存技能了。
谁比较需要单独购买VPS科学上网?
- 只是翻墙简单浏览网页,就不必要再单独花费人民币了,蓝灯、和各个网站的免费ss账户,是你的主菜。
- 偶尔看看视频、不想画太多精力在寻找免费资源上。可以直接购买现成的ss/vpn账户,在G+相应的社区可以找到很多比较靠谱的提供商。
- 常年泡视频网站又受不了国内视频网站乱七八糟、24h使用google服务、对稳定性和流量有一定要求、愿意使用一点时间来折腾VPS。比较适合单独购买VPS来科学上网。VPS选择如下会提及。
搜索文档,更新软件源、折腾个人网站又不想备案的、折腾开源的这部分大神谁会来看这个啊,早自己分分钟写个轮子了
VPS选择
选择VPS看那几点
一定要根据自己的具体使用场景和网络环境来选择VPS服务。
选择VPS的一般要注意的几点
自己的具体网络环境
- 简单来说,一般联通的国际出口稳定性大于电信、移动的国际出口看心情有的地区甩电信联通几条街,坏的时候根本没速度。电信网路比较特殊,国际出口充足,但是限速到不能忍,不挤的时候嗖嗖的,高峰期渣到爆炸。
- 移动网络具体情况不太清楚。
VPS地点。
日本VPS电信网络访问要绕道美国绕道ping一般在200到300了,(9.29)联通直连日本,ping在100上下!(11.09)联通目前也分地区有限速。电信目前分地区直连日本,直连ping在100或者多一点。(有运气成分,多刷几个ip试试)- 美国的VPS联通/电信访问延迟基本相当。一般选择靠近美国西海岸节点旧金山、洛杉矶、纽约等地点。
- 新加坡节点,在靠近南方地区,可以ping在100以内稳定!youtube 4k不卡。但在偏北一些地区ping不稳定。(9.29)Vultr新开新加坡节点,北方部分地区直连。
- 香港VPS,这个比较特殊,香港的VPS ping值可以低到20几,但是香港本身的国际出口就小,VPS价格也偏高,另外香港毕竟也在政府的直接管辖内,隐私方面风险比其他地区节点要大一些。建议土豪级别的游戏玩家使用。
(12.11)Vultr-相关参考
- 日本节点-IP
注意以下结论仅供参考,实际不同网络不同ip表现不一定相同- 108.开头普遍反应较好,电信/联通稳定性比45开头要好,比较难刷到。
- 45.7X-youtube-1080p,无压力
- 45.3X-youtube-1080p ,略卡
- 美国节点
- IP 以108开头最为稳定/丢包延迟都较其他ip好一些
- 位置首选洛杉矶,但联通部分地区连接较卡顿,以实测为准。
- 西雅图节点,论坛反映较为稳定(仅供参考)
VPS虚拟化架构。具体解释请自行google,只说明对科学上网的影响。
- OpenVZ(简称OVZ) 便宜!但是没法进行修改内核、加锐速之类的优化操作。访问速度基本取决于你的本地网络环境优化的可能性。(不是没有可以加速的手段,就是在基本相同情况下,不如其他架构的vps可以榨干VPS的传输性能)。加速手段:Finaspeed(已停止更新) 和net-speeder。
- Xen性能较好,实际用的不多,不做更多评论
- Hyper-VH完美支持Windows系统,Hyper-V同样可以超售内存和硬盘,如果服务商超卖较多可能会有性能问题,Linux操作系统性能较低。
- KVM全功能虚拟化架构,可上传ISO手动安装系统。KVM VPS相对其它架构的VPS较为自由。虚拟化性能比Xen略低。可以使用TCP优化和锐速,价格比一半OVZ的要高一些。(
本教程以KVM为例
)
VPS提供商
- 这个就比较多了,尽量选择购买人较多的,而且一般支持支付宝的服务商被国人玩半残居多(比如搬瓦工。。超售严重),所以
购买不支持支付宝的vps提供商
要靠谱一点。注册paypal国际版(注:是国际版paypal 不是国内的贝宝!)一般的vps提供商都支持paypal付款。与使用信用卡相比,具体的优惠政策不同,详情请自行google。 - 推荐一个VPS的评测网站,相对更新很快。
vps部署
我选择的是Vultr VPS
。5刀/月,1T流量 怎么折腾都够了。
本节内容转载自
https://mpc2008cn.github.io/2015/10/22/vps/
就是从这开始折腾的,有删减和修改。
服务器选择
操作系统
选择Debian 7 x64/Debian 8 x64,centos跟ubuntu都不能完美开启锐速。
选择硬件
一个月可以免费用$5的配置,科学上网就够了,建站等需求需要更大的。
配置securecrt(不必在意ip地址)
- 下载securecrt
- 复制服务器的IP地址,初始用户名,初始密码
- securecrt连接vps
解压下载的secure crt,双击\SecureCRT_EN\SecureCRT\中的SecureCRT.exe
部署ShadowSocksR
为什么选择SSR而不是原版的SS
- 主要原因如下
- 可以直接启用chacha20加密,在移动设备上比较好使
- TFO(TCP Fast Open)直接自带,减少握手次数。
- 二次混淆和抗重放等附加功能(关于这个有争议)关于
shadowsocksR的相关争论在以下网址中,至于用户而言,现在ssr开源,一定的网络环境下比原版的ss稳定就够了。
- 一些争议如下
https://www.librehat.com/about-shadowsocks-r-and-the-security-of-shadowsocks/
- 现在SSR客户端更新主页在ZeroNet中
(10.9)无需安装ZeroNet,直接访问地址
- ZeroNet简介和接入
- 用到的一键安装脚本@秋水逸冰
安装SSR
- 复制以下代码到登陆成功的securecrt
1 2 3
wget --no-check-certificate https://raw.githubusercontent.com/teddysun/shadowsocks_install/master/shadowsocksR.sh chmod +x shadowsocksR.sh ./shadowsocksR.sh 2>&1 | tee shadowsocksR.log
- 如图,回车。
- 输入设定初始密码,也可以直接回车。
- 输入初始端口,也直接回车
- 嗯,回车
- 最后会提示——成功
修改shadowsocks.json配置文件
- WinSCP 是一个 Windows 环境下使用的 SSH 的开源图形化 SFTP 客户端。同时支持 SCP 协议。它的主要功能是在本地与远程计算机间安全地复制文件,并且可以直接编辑文件.
- 下载WinSCP绿色中文版。
- 解压缩打开winscp,保持默认配置不变,输入VPS的ip地址、用户名、密码。点击登陆。
- 默认在/root文件夹下,要进入/etc文件夹下找到shadowsocks.json
- 正式开始编辑shadowsocks.json文件
因为SSR的android端暂时无人接手更新,所以我们配置两个端口来满足手机端和PC端应用。同理,如果是合租VPS下,可以配置多个端口提供给不同用户。(9.29)SSR android版已经较为稳定,可以使用SSR混淆插件。ps:ssr 最近更新频繁,需要等待一段时间稳定发布后,再更新教程)(10.9)
下面是一个shadowsocks.json的模板不加注释的版本
可以直接复制粘贴,覆盖原始的shadowsocks.json文件。
参考资料网址
shadowsocks.json文件各项配置说明https://github.com/breakwa11/shadowsocks-rss/wiki/Server-Setup
混淆插件说明
- 注释版本
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
{ "server":"0.0.0.0", "server_ipv6":"::", "local_address":"127.0.0.1", "local_port":1080, "port_password":{ #手机端端口443 密码为123456. "443":"123456", #第二个端口3389,密码123456 ,protocol选择auth_aes128_md5。obfs选择tls1.2_ticket_auth,具体插件的介绍如下参考资料中 "3389":{"protocol":"auth_aes128_md5", "password":"123456", "obfs":"tls1.2_ticket_auth", "obfs_param":""}, #注意无论怎么变化,最后一个端口设置,不带逗号! "25":{"protocol":"auth_sha1_v4", "password":"123456", "obfs":"tls1.2_ticket_auth", "obfs_param":""}#此处没有逗号! }, "timeout":400, #默认全局的加密方式,即上边各个端口的默认加密方式。一般为aes-256-cfb, 此处,选择为chacha20,移动设备性能较好。 "method":"chacha20", #protocol.协议定义插件的默认值,origin即使用原版SS协议,不混淆。 "protocol": "origin", "protocol_param": "", #protocol.协议定义插件的默认值,plain即使用原协议,不混淆。 "obfs": "plain", "obfs_param": "", "redirect": "", "dns_ipv6": false, #TCP FAST OPEN ,打开 "fast_open": true, "workers": 1 }
- 无注释版本,可以复制粘贴覆盖原始文件
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
{ "server":"0.0.0.0", "server_ipv6":"::", "local_address":"127.0.0.1", "local_port":1080, "port_password":{ "3389":{"protocol":"auth_aes128_md5", "password":"123456", "obfs":"tls1.2_ticket_auth", "obfs_param":""}, "25":{"protocol":"auth_sha1_v4", "password":"123456", "obfs":"tls1.2_ticket_auth", "obfs_param":""} }, "timeout":400, "method":"chacha20", "protocol": "origin", "protocol_param": "", "obfs": "plain", "obfs_param": "", "redirect": "", "dns_ipv6": false, "fast_open": true, "workers": 1 }
- 配置完成后,重启SSR,以root账户登陆securecrt,复制以下代码,重启ssr。
1
/etc/init.d/shadowsocks restart
(11.09)混淆插件选择(新手可略过)
混淆插件简介
- ShadowsocksR目前支持的混淆插件(此类型的插件用于定义加密后的通信协议):
plain ,http_simple ,http_post,random_head ,tls1.2_ticketauth 协议定义插件(用于定义加密前的协议):
origin,verify_sha1,auth_sha1,auth_sha1_v2,auth_sha1_v4,auth_aes128_md5/auth_aes128_sha1 - ShadowsocksR 协议插件文档
混淆插件选择
- 通用
- 推荐auth_aes128_md5或auth_aes128_sha1+tls1.2_ticket_auth
这种组合目前混淆效果最好,有利于个人VPS的长时间使用。 - auth_aes128_md5或auth_aes128_sha1+随意,即使使用rc4加密亦可(SSR作者语)
- 玩游戏,或对延迟有要求,不要使用tls1.2_ticket_auth
- 推荐auth_aes128_md5或auth_aes128_sha1+tls1.2_ticket_auth
- 网络封锁/监控环境下
- 例如学校教育网/公司内网/广电宽带等等,封杀了BT/禁止访问网盘等等等等。
- 使用http_simple、http_post或tls1.2_ticket_auth 混淆访问的目标网址。再配合443/80端口通常可以解决问题。
- Android
- 如果之前使用的是auth_sha1_v2,推荐以auth_aes128_md5或auth_aes128_sha1代替。
- 手机运算能力较差的推荐使用auth_sha1_v4替换auth_sha1_v2
使用最新混淆插件
- vps端,需要先保存shadowsocks.json文件。再执行卸载
1
./shadowsocksR.sh uninstall
之后重新执行安装脚本即可
VPS优化
- 详情在科学上网教程(二)——VPS优化加速
- 这里只提及Tcp优化+BBR
TCP优化
- 增加TCP连接数量
1
nano /etc/security/limits.conf
添加两行:
1 2
* soft nofile 51200 * hard nofile 51200
保存(Ctrl + X —— y ——回车)
- 设置ulimit:
1
ulimit -n 51200
TCP-BBR(推荐)
- BBR (Bottleneck Bandwidth and RTT)是由google工程师编写的新的 TCP 拥塞控制算法,目的是要尽量跑满带宽, 并且尽量不要有排队的情况, 加速效果不比锐速差,
完全开源,对隐匿性要求高而无法使用锐速的人士,也可以放心使用
开源地址 - 测试环境 Debian 7 x64 Vultr
- 启用TCP-BBR涉及VPS更换内核,所以如果步骤错误,或者VPS不兼容最新的内核,会导致无法开机等错误,脚本来自于逗逼根据地
- 锐速不支持,更换后的4.9内核
- 低版本linux内核加入TCP-BBR,正在测试中,稳定后会放出教程
- 连接SSH,输入下面命令,更新内核
1
wget -N --no-check-certificate https://soft.dou-bi.co/Bash/bbr.sh && chmod +x bbr.sh && bash bbr.sh
- Debian系统,更换内核时会询问你是否终止删除内核,选择 No 方向键 选择,回车键 确认)
- 安装完毕,自动重启VPS,重连SSH
- 修改sysctl.conf
1
nano /etc/sysctl.conf
复制代码:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
#TCP配置优化(不然你自己根本不知道你在干什么) fs.file-max = 51200 #提高整个系统的文件限制 net.core.rmem_max = 67108864 net.core.wmem_max = 67108864 net.core.netdev_max_backlog = 250000 net.core.somaxconn = 4096 net.ipv4.tcp_syncookies = 1 net.ipv4.tcp_tw_reuse = 1 net.ipv4.tcp_tw_recycle = 0 net.ipv4.tcp_fin_timeout = 30 net.ipv4.tcp_keepalive_time = 1200 net.ipv4.ip_local_port_range = 10000 65000 net.ipv4.tcp_max_syn_backlog = 8192 net.ipv4.tcp_max_tw_buckets = 5000 net.ipv4.tcp_fastopen = 3 net.ipv4.tcp_mem = 25600 51200 102400 net.ipv4.tcp_rmem = 4096 87380 67108864 net.ipv4.tcp_wmem = 4096 65536 67108864 net.ipv4.tcp_mtu_probing = 1 net.ipv4.tcp_congestion_control = bbr #END OF LINE
保存(Ctrl + X —— y ——回车)
应用
1
sysctl -p
- 重启SSR
1
/etc/init.d/shadowsocks restart
shadowsocksR客户端配置
- 现在SSR最新的更新在0网中,
直接访问不便
给出个ssr的客户端集合
>http://userscloud.com/go/embed/iss72k58dh2l/
**(10.9)无需安装ZeroNet,直接访问即可
- 下载如图所示3个,ssr客户端,ss手机端/扫描插件。解压ssr客户端,并进入。
- 解压ShadowsocksR-win-3.8.2e.7z(以具体客户端版本为准),打开。
- 对应上文中SSR服务端配置
输入对应端口配置,ip地址,密码等。 - 右键shadowsocks快捷图标,选择启用系统代理
现在应该可以访问 谷歌了:) - 使用Chrome+SwitchyOmega
Chrome下插件SwitchyOmega可以根据要访问的网址判断是否需要经过代理,做到智能的科学上网。并且现在这个插件的配置可以云同步,再也不用本地保存了!具体教程如下
SwitchyOmega使用ss代理配合gfwlist
https://github.com/FelisCatus/SwitchyOmega/wiki/GFWList
http://www.jianshu.com/p/37ef0b9ecc08 - SSR-Android端
https://bit.no.com:43110/shadowsocksr.bit/
下载ssr-android。目前更新最新版为3.2.3.4版。使用方式与影ss-android版基本相同。VPS推荐设置混淆为auth_sha1_v4 端口配合使用- (12.11)
ssr-android更新到3.2.7.14.版,增加auth_aes128_md5和auth_aes128_sha1,推荐更新!
我用vultr高频vps,感觉还不错。老铁,你CDN的好多图片都不显示