前言

作为在国内的开发人员来说

每当你在Baidu上搜索开发中的遇到的Bug时,排在首位的永远是百度知道和CSDN,以及个人博客分享的关于此Bug的处理方法,虽然最后问题得到了解决,但是这个问题可能卡了你好几个小时甚至好几天。但是在国外的Stack Overflow和github的issues上早已有人回答了相关问题。

另外由于技术框架的日益更新和你正在开发的项目使用依赖版本的迭代,这更会带来很多问题。这时候搜索引擎无法为你提供解决方案了,你必须仔细翻阅技术框架的官网的文档。了解被废弃的方法和提供的新特色等。

作为在国内的喜欢猎奇的网名来说

延后的国外消息和被二次处理过的新闻素材总是让你如鲠在喉。更不用说国外比较优秀的问答社区和网络产品。

对我个人来说,我使用的是Ubuntu18.04系统。由于频繁的更新速度和国内大多数软件对此系统的不支持(例如钉钉,微信,SS,Typora和Filezilla我都寻找到了相应的解决方案),和我喜欢开源和对github的重度使用,所以科学上网对我来说,是非常重要和必要的。

选购服务器

首先我们需要在阿里云,腾讯云或者其他云厂商(有人推荐过搬瓦工也不错)购买一个香港的云服务器,推荐低内核,小内存和4M左右带宽的配置的实例。

当然对于手头宽裕的哥们来说,提高相应配置也是很好的,当然这个服务器不仅仅可以当作科学上网的云服务器还可以购买个域名,顺手搭建个人博客也是极好的。

以下是我在阿里云上选购的ECS服务器:1核,1G内存,2M带宽,CentOS7.4系统。

搭建SS服务

连接到服务器

已知你的服务器的用户名,密码,IP的情况下,你可以通过一些ssh工具成功登陆到你的服务器上。

对于Mac和linux用户,这一步不需要多余的软件,只需要在终端上利用ssh usrname@yourip,然后输入密码即可。

对于window用户推荐SecureCRT,Putty和xshell来完成。

服务端配置

安装pip

pip是 python 的包管理工具。在本文中将使用 python 版本的 ss,此版本的 ss 已发布到 pip 上,因此我们需要通过 pip 命令来安装。

在控制台执行以下命令安装 pip:

[root@VM_0_8_centos ~]# curl "https://bootstrap.pypa.io/get-pip.py" -o "get-pip.py"
[root@VM_0_8_centos ~]# python get-pip.py复制代码

安装配置ss

在控制台执行以下命令安装 ss:

[root@VM_0_8_centos ~]# pip install --upgrade pip
[root@VM_0_8_centos ~]# pip install ss
复制代码

安装完成后,需要创建ss的配置文件/etc/ss.json,编辑内容如下:

[root@VM_0_8_centos ~]# vim /etc/ss.json
{"server": "0.0.0.0","local_address": "127.0.0.1","local_port": 1080,"port_password": {"8080": "填写密码","8081": "填写密码"},"timeout": 600,"method": "aes-256-cfb"
}
复制代码

说明:

  • method为加密方法,可选aes-128-cfb, aes-192-cfb, aes-256-cfb, bf-cfb, cast5-cfb, des-cfb, rc4-md5, chacha20, salsa20, rc4, table
  • port_password为端口对应的密码,可使用密码生成工具生成一个随机密码

以上两项信息在配置 ss 客户端时需要配置一致,具体说明可查看 ss 的帮助文档。

如果你不需要配置多个端口的话,仅配置单个端口,则可以使用以下配置:

{"server": "0.0.0.0","server_port": 8080,"password": "填写密码","method": "aes-256-cfb"
}
复制代码

说明:

  • server_port为服务监听端口
  • password为密码

同样的以上两项信息在配置 ss 客户端时需要配置一致。

配置自启动

编辑ss 服务的启动脚本文件,内容如下:

[root@server ~]# vim /etc/systemd/system/ss.service
[Unit]
Description=ss[Service]
TimeoutStartSec=0
ExecStart=/usr/bin/ssserver -c /etc/ss.json[Install]
WantedBy=multi-user.target
复制代码

执行以下命令启动 ss 服务:

[root@server ~]# systemctl enable ss
[root@server ~]# systemctl start ss
复制代码

检查 ss 服务是否已成功启动,可以执行以下命令查看服务的状态:

systemctl status ss -l

如果服务启动成功,则控制台显示的信息应该类似这样:

确认服务启动成功后,配置防火墙规则,开放你配置的端口并且配置云厂商的安全组。不然客户端是无法连接的:

[root@server ~]# firewall-cmd --zone=public --add-port=8080/tcp --permanent
success
[root@server ~]# firewall-cmd --zone=public --add-port=8081/tcp --permanent
success
[root@server ~]# firewall-cmd --reload
success
复制代码

配置客户端

我这里配置的是windows和Ubuntu的客户端,windows配置挺方便的,点击即用,不需要安装。

Windows客户端

github.com/ss/ss-windo…

Mac客户端

github.com/ss/ssX-NG/r…

Android客户端

github.com/ss/ss-andro…

运行客户端程序,右键点击ss图标,然后点击编辑服务器:

配置对应的信息:

然后显示已启用代表配置成功:

接着测试能否上Google搜索即可,以下的配置BBR加速则是选看,不配置也是可以正常使用ss的。

Ubuntu客户端配置

安装ss-Qt5

Ctrl+Alt+T打开终端,输入以下命令安装好GUI界面ss-qt5

sudo add-apt-repository ppa:hzwhuang/ss-qt5
复制代码

Ubuntu18.04在安装ss-qt5时就会出现错误 仓库 “ppa.launchpad.net/hzwhuang/ss… bionic Release” 没有 Release 文件 原因:ppa:hzwhuang/ss-qt5 并没有18.04版本的源 解决方法:修改/etc/apt/sources.list.d/hzwhuang-ubuntu-ss-qt5-bionic.list文件,将

bionic(18.04版本代号)改成xenial(16.04版本代号) 然后再执行

sudo apt-get update
sudo apt-get install ss-qt5复制代码

终端走ss代理

Ubuntu下让终端走SS代理需要第三方软件的帮助,即privoxy。

privoxy

privoxy 是非快取式 (non-caching) 的网页代理伺服器,具有进阶的过滤能力,可强化隐私权,还可以修改网页资料、管理 HTTP cookies、去除广告等。

安装 privoxy

sudo apt-get install privoxy复制代码

安装完成后在 /etc/privoxy 目录下可以找到配置文件 config。

配置 privoxy

一般地,改配置前应该备份配置。

mv /etc/privoxy/config /etc/privoxy/config.back复制代码

然后打开 config 文件,找到listen-address那一行,修改值为 privoxy 监听的地址,一般使用默认。

然后再找到forward-socks5那一行,去掉注释,值为SS代理监听的地址。

让终端走SS代理

修改配置后,重启 privoxy。

sudo /etc/init.d/privoxy restart复制代码

终端下添加 http 代理

export http_proxy=”127.0.0.1:8118“export https_proxy=”127.0.0.1:8118”复制代码

然后就可以愉快的用终端科学上网了。

全局代理设置

在Ubuntu中 设置 -> 网络 -> 手动,在HTTP代理和HTTPS代理中添加相应配置。

配置BBR加速

什么是BBR:

TCP BBR是谷歌出品的TCP拥塞控制算法。BBR目的是要尽量跑满带宽,并且尽量不要有排队的情况。BBR可以起到单边加速TCP连接的效果。

Google提交到Linux主线并发表在ACM queue期刊上的TCP-BBR拥塞控制算法。继承了Google“先在生产环境上部署,再开源和发论文”的研究传统。TCP-BBR已经再YouTube服务器和Google跨数据中心的内部广域网(B4)上部署。由此可见出该算法的前途。

TCP-BBR的目标就是最大化利用网络上瓶颈链路的带宽。一条网络链路就像一条水管,要想最大化利用这条水管,最好的办法就是给这跟水管灌满水。

BBR解决了两个问题:

  • 在有一定丢包率的网络链路上充分利用带宽。非常适合高延迟,高带宽的网络链路。
  • 降低网络链路上的buffer占用率,从而降低延迟。非常适合慢速接入网络的用户。

Google 在 2016年9月份开源了他们的优化网络拥堵算法BBR,最新版本的 Linux内核(4.9-rc8)中已经集成了该算法。

对于TCP单边加速,并非所有人都很熟悉,不过有另外一个大名鼎鼎的商业软件“锐速”,相信很多人都清楚。特别是对于使用国外服务器或者VPS的人来说,效果更佳。

BBR项目地址:

github.com/google/bbr

升级内核,第一步首先是升级内核到支持BBR的版本:

yum更新系统版本

yum update复制代码

查看系统版本

[root@server ~]# cat /etc/redhat-release
CentOS Linux release 7.4.1708 (Core)
[root@server ~]# 复制代码

安装elrepo并升级内核

[root@server ~]# rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org
[root@server ~]# rpm -Uvh http://www.elrepo.org/elrepo-release-7.0-2.el7.elrepo.noarch.rpm
[root@server ~]# yum --enablerepo=elrepo-kernel install kernel-ml -y复制代码

更新grub文件并重启系统

[root@server ~]# egrep ^menuentry /etc/grub2.cfg | cut -f 2 -d \'
CentOS Linux 7 Rescue 8619ff5e1306499eac41c02d3b23868e (4.14.14-1.el7.elrepo.x86_64)
CentOS Linux (4.14.14-1.el7.elrepo.x86_64) 7 (Core)
CentOS Linux (3.10.0-693.11.6.el7.x86_64) 7 (Core)
CentOS Linux (3.10.0-693.el7.x86_64) 7 (Core)
CentOS Linux (0-rescue-c73a5ccf3b8145c3a675b64c4c3ab1d4) 7 (Core)
[root@server ~]# grub2-set-default 0
[root@server ~]# reboot复制代码

重启完成后查看内核是否已更换为4.14版本

[root@server ~]# uname -r
4.14.14-1.el7.elrepo.x86_64
[root@server ~]#复制代码

开启bbr

[root@server ~]# vim /etc/sysctl.conf    # 在文件末尾添加如下内容
net.core.default_qdisc = fq
net.ipv4.tcp_congestion_control = bbr复制代码

加载系统参数

[root@vultr ~]# sysctl -p
net.ipv6.conf.all.accept_ra = 2
net.ipv6.conf.eth0.accept_ra = 2
net.core.default_qdisc = fq
net.ipv4.tcp_congestion_control = bbr
[root@vultr ~]#复制代码

如上,输出了我们添加的那两行配置代表正常。

确定bbr已经成功开启

[root@vultr ~]# sysctl net.ipv4.tcp_available_congestion_control
net.ipv4.tcp_available_congestion_control = bbr cubic reno
[root@vultr ~]# lsmod | grep bbr
tcp_bbr                20480  2
[root@vultr ~]# 复制代码

输出内容如上,则表示bbr已经成功开启。

版权声明: 作者:穆书伟

github出处:github.com/sanshengshu…    

个人博客出处:www.mushuwei.cn/

一墙之隔-看向世界和直面速度与激情相关推荐

  1. 这15部评分9.0以上纪录片,让你放假后足不出户就可以看遍世界!(附链接)

    如果不出去走走, 你会以为眼前的就是全世界. 总是有那么一些人,他们充满了对世界的热爱和好奇,他们不远万里穿越世界每一个未知的角落,让我们坐在家里也能领略到世界的美丽!也激发着所有人对这个世界的认知和 ...

  2. 小Y看浮屠世界-往复式单螺杆混炼挤出机构造特征及其运用

    小Y看浮屠世界-往复式单螺杆混炼挤出机构造特征及其运用 TAG: 炼胶机 乳腺增生的治疗 煤炭化验设备 发电机 一,前言 随着塑料加工业中高分子资料工业的飞速开展,往复 式单螺杆混炼挤出机的开发运用日 ...

  3. 美元霸权·《看懂世界格局的第一本书·2》

    这次看到这个<看懂世界格局的第一本书·二>时候,完全没有看到第一部时候的惊喜了,好像是惊喜和刺激完全被磨灭掉的原因.作为一个作者,分析说明只能说大而化之,内容和结构上都相比第一部来说逊色极 ...

  4. 美国的美元霸权·《看懂世界格局的第一本书·2》

    美国的美元霸权 这个事情嘛已经有很多专家写了一部又一部的著作来分析,所以我就用最简单的语言来概括一下吧.最早以英国的日不落帝国的世界霸权建立在全球殖民地的基础上,后来,在一战和二战中,欧洲国家彻底沦为 ...

  5. 我的世界服务器修改速度,我的世界速度提升指令是什么_我的世界速度提升指令介绍_玩游戏网...

    我的世界速度提升指令是什么?小编这里带来了我的世界速度提升指令介绍,还不太清楚的玩家们就进来看看吧! 我的世界速度提升指令是什么? 小伙伴们在游戏中可以通过作弊模式来输入各种指令,你想要获得的状态都是 ...

  6. 放开手脚去看这个世界

      晚上打开抖音无意看到一句话,觉得很有道理:"放开手脚去看这个世界".长这么大,很多时候总是犹犹豫豫,准备给别人发微信编辑了半天又立马删掉最终啥都没说:平时和领导请教事情,总是在 ...

  7. 电脑上传网速怎么测试软件,宽带上传速度怎么测试 教你如何看电脑宽带上传速度...

    网速一般分为下载速度和上传速度,一般我们测算网速只是测试下载速度,只要电脑从网上下载速度快,用户通常比较满意.但你知道吗?上传速度也是值得关注的,尤其是在云网络时代,很多朋友都要传文件到网盘或者视频网 ...

  8. 小Y看浮屠世界-纸杯世界:含有荧光增白剂的爆米花桶只是冰山一角

    小Y看浮屠世界-纸杯世界:含有荧光增白剂的爆米花桶只是冰山一角 TAG:钢纤维 泡沫混凝土 消声器 在纸杯世界里,还有荧光增白剂的爆米花桶并不是终结,相反只是一根导火索.它引爆了人们疏忽的纸杯的平安问 ...

  9. 看!世界各国都在积极布局人工智能

    来源:ATYUN AI平台 人工智能是引领未来的战略性技术,世界主要发达国家将人工智能作为提升本国竞争力的重大战略,围绕顶尖人才和核心技术等进行部署,力争在新一轮的科技竞争中取得主导权,从而引领世界潮 ...

  10. 看完了 世界是平的,很好的书

    看完了"世界是平的".因为比较忙,一天只能看一点.不过也好,每次都有新的想法. 这是一本引人向善,催人奋进书籍.阐述了21世界我们要面临或者正在经历的经济生活的实质和规律.现在每个 ...

最新文章

  1. 图像处理工具包ImagXpress的多页TIFF编辑API的使用(1)
  2. 2012 Hadoop summit
  3. inovance变频器说明书参数设置_变频器控制电机速度时,面板调速如何切换为电位器调速...
  4. 预装鸿蒙系统的手机,首款预装鸿蒙系统的手机入网,麒麟9000加持,型号亮了...
  5. 类模板非类型形参实现Stack
  6. PHP多进程编程初步
  7. 用了Python,老板再也不用担心我写不了CUDA了!
  8. RQNOJ36 数石子 并查集 简单应用
  9. Discrete Logging ZOJ - 1898 (模板题大小步算法)
  10. ERROR 1129 (HY000): mysqladmin flush-hosts
  11. PCWorld:微软Google进军社交搜索需解决八问题
  12. 2021-09-14联想云教室连接不上服务器解决办法
  13. 系统管理员已经限制你可以使用的登录类型(网络或交互式)
  14. SAP BASIS ADM100 中文版 Unit 5(1)
  15. 用xpath解析网页
  16. 武林三国辅助工具介绍
  17. 图表点编辑数据无反应_word插入图表无法编辑数据
  18. JAVA   变量
  19. HTML 使用table标签制作个人简历
  20. Java是什么?我们为什么要学习Java?

热门文章

  1. 滚滚长江东逝水(三国演义插曲)铃声 滚滚长江东逝水(三国演义插...
  2. 基于verilog的数字万年历时钟设计
  3. Android源码分析-dex2oat
  4. 基于matlab的直流电机仿真,基于MATLAB的无刷直流电机控制系统仿真
  5. 软件测试可用性测试方法,几种常用的可用性测试的方法
  6. uniapp app端根据支付宝qr链接 直接打开支付宝app支付页面
  7. Xshell下载文件到本地
  8. 论站长赚钱之七剑下天山
  9. CCF201809-4 再卖菜(100分)
  10. linux自动登录drcom,Ubuntu用drcom客户端登陆