038搭梯历程:VPS搭建配置-Windows端&IOS端使用探索

最近深圳项目的案头研究,需要根据排行榜名单分析各国银行同业案例。但Baidu搜索效果实在不佳,Bing似乎只在划水,搜索结果关联性没比百度改善多少,团队苦其久矣。

我自己日常Windows端用Chrome插件或Tampermonkey脚本访问Google,但即使Google能用,还有SunTrust等银行网站也无法正常访问(因为插件只适用于少数网站),影响了资料获取。

所以为提高工作效率,我开始布设全局梯子,分三步:1.VPS服务器配置;2.Windows端使用;3.IOS端使用。步骤1、2各遇到些小问题,核心步骤网上都有概述;本文主要讨论步骤1/2遇到的亮点,及步骤3遇到的一些障碍和解决方法。

1.VPS搭建与服务器配置

A购买&部署

Vultr Server Deploy需顺次选择所在地、系统、套餐额度。

服务器所在地:因项目所在地是福田,我反复Deploy-Ping-Ping-Ping-Destroy尝试了多次,发现新加坡、日本的虽然Ping值低,但22端口通过Putty经常连不上;而Silicon Valley, New York, Toronto等地虽然能连上,但平均Ping值较高,影响访问速度。所以最终选择美西城市Los Angeles。

系统:遵循常规选择CentOS 7*64,没有去研究和CoreOS、Debian等系统的区别。

额度:只关心月流量,500GB足够,总价3.5USD/m,非常便宜(而且按时间计费,猪年春节期间我把服务器删了,节后初七再开启,进一步节约成本)。

(VPS配置完成界面)

B用Putty配置Shadowsocks服务器端

各类教程会说接下来需要输入用户名root和密码登陆后,依次执行三行命令。

因为之前略有接触过Linux,我理解这三句的功能应该分别是:1从Github下载一段sh脚本;2赋予刚下载的sh脚本执行权限;3执行并记录日志。从而在我们一片空白的VPS服务器端,配置好可以用来连网访问的Shadowsocks。

wget –no-check-certificate https://raw.githubusercontent.com/teddysun/shadowsocks_install/master/shadowsocks-go.sh

chmod +x shadowsocks-go.sh

./shadowsocks-go.sh 2>&1 | tee shadowsocks-go.log

(用Putty完成了VPS服务器端的Shadowsocks配置)

Tips:

进入服务器端有两种方式,第一种通过Putty等客户端软件,第二种直接通过网站右上角View Console(也需要输入用户名密码登陆,无法跳过该环节)。

最终我选择Putty,因为Putty可以复制命令行(包括非常复杂的登录密码),鼠标右键直接粘贴;而网站的View Console不支持该功能。

Putty Configuration界面有个用户体验流程上的Bug,即在输入服务器信息候要先选中再点Save,否则会弹出错误框。我在这里打转转了多次,看到网上有讨论此问题时才恍然大悟。

C配置TCP BBR加速器

有些教程介绍到前面配置服务器端就结束了,我偶然看到几篇技术贴还有这么个环节。同样是执行三行命令:

wget –no-check-certificate https://github.com/teddysun/across/raw/master/bbr.sh

chmod +x bbr.sh

./bbr.sh

据我理解,TCP BBR是Google开发的一个拥堵控制工具,BBR指Bottleneck Bandwidth and RRT。它的特点是发生实际网络阻塞时,TCP BBR会主动处理,而传统方式认为数据丢失就是网络阻塞,会重新传输,损耗了效率。下面这张图做了一些对比阐释。

从效果看,我因为基本只用Google,不用来YouTube看视频等大流量操作,所以速度提升直观感受不明显。

毕竟三行代码不长(但执行时间要3-5分钟),敲个放心,我认为每次新设服务器时有必要都执行这步。

2.Windows端Shadowsocks配置

这步很简单,将上一步Putty配置好的服务器IP、端口、密码填入Shadowsocks、更新List、启用即可。

Tips:

先要更新List,确保最新;

有些网站比如SunTrust没有列入List,但也打不开,或者打开时神秘的显示“网站正在维护”,此时若开启Shadowsocks的全局代理模式,强制攀梯访问,便一切正常了。此举让我产生了莫大的欣慰,因为SunTrust既然有这道门槛在,可能我们克服后所做的案头研究,比其它友司更早更透彻。

3.IOS端探索

这一步骤已脱离工作使用范畴,主要是我觉得工作用得少太浪费,想在手机端使用,像Instagram等消耗流量的玩物丧志App非常之多。但执行起来却遇到了一些麻烦。

首先,我按流程操作,希望下载到一个APP,无论是Wingy还是各种名字里包含Wingy的APP:

发现中国区App Store找不到,便切换到美国区App Store。然而以往能正常切换,这次却要求验证我的支付信息,选择Paypal会提示地区不符,选择国内各银行发行的V/M/AE外卡也无法通过。(这时候我可以找天天在Knoxville喂猫和兔子的朋友肖博士借张美国的卡,但我总觉得还有别的方法能自己试出来)

我之前淘宝5块钱买过一个美国App ID,后来知道其实不用买的,自己也有渠道注册(但这类渠道近年来被官方封了很多)。于是直接切换到这个ID登陆。能搜到Wingy,但是要付费,而买来的账号肯定没有绑定付款方式,又卡住了。

接着,我试图放弃APP,直接在IOS里配置:

但发现IOS里只支持IKEv2, IPsec, L2TP三种连接类型,而无论哪种方式,都没有按ShadowSocks(以下简称SS)的“IP+端口号+密码+加密方式”的填写途径。所以看来IOS本身不支持SS这类连接方式,必须回到APP。

所以,我只能找个免费的APP:

大量奇奇怪怪名字的APP,要么评价甚少(寥寥几条),要么评价不好(说是盗取服务器配置信息的),要么开发者较为吓人(是Beijing某某某公司),我实在不敢使用。

而Wingy是唯一看上去开发者和评价都正常的APP,却要付钱。我想通过第三方软件直连下载,在应用商店也没找到Wingy app安装包文件(其实这条路不通过i4Tools这类软件,而通过搜索引擎应该可以走通)。

所以我以“Vultr IOS App”等为关键字,搜索还可以用哪些APP,发现都是Wingy等这些我已经试过的绝路。

最后我便回到Shadowsocks官网,看官方推荐,首行的BigBoss已经停止更新多年,Github都打不开;次行提示可用Outline。

开始探索Outline:

但Outline打开后并不能直接配置SS服务器,界面提示“ss://access-key”,我没有,提示要到网站生成。

Outline网站不能直接生成access-key,需要先安装个Windows下的Outline Manager,安装打开后,我通过提示的一行命令再登陆Putty完成Outline配置,点击Done时却提示端口未打开。

网上论坛告知有两种方式,一种是输入“sudo ufw allow 端口号 /udp /tcp”,尝试后提示“command not found",另一种是在服务器端新增防火墙规则,强行打开1024~65535的TCP端口。然而我刚新增一条accept TCP 1024~65535开放端口的规则,底下就自动多了条drop any 0-65535封闭端口的规则,还删不掉。那岂不是连自己都连不上了?于是我用Putty尝试通过22端口连接,果然超时失败。

所以我去搜Vultr帮助文档,这个死锁怎么解决。发现官方说额外自动加的这条规则只应用于“all other packets”,即类似于白名单模式,所以应该不影响我登陆服务器。后来想到我开通的是1024~65535,即自动封禁了1-1023,其中包括22,所以才登陆不了。所以我把Firewall Rule改成允许1-65535端口,果然Putty又登陆成功了。(但Ping却不成功,并不是因为端口问题,而是Ping程序采用ICMP协议,所以在Firewalls Rules中加一条Accept ICMP就可以正常Ping了。)

既然这样,那网上给的建议应该有效,而测试后发现Outline Manager依然无法连接。看到网上很多都说遇到这个问题。之后我还尝试过从GitHub Full Release中获取1.1.4老版本Outline,依然不行。有两种可能,一是网上说的Outline用于连接Vultr服务器的TCP流量直接被墙了,但这个理由有点牵强,为什么别的流量不被墙;另一种是Outline提示信息没错,端口真的没有开放。验证方法是换个第三方去验证这个端口是否开放。从PortCheckers.com等其它网站交叉验证看,果然是关闭的(在Vultr设置为No Firewell状态下)。

放弃Outline,探索Potatso Lite:

我重新以Outline为关键词搜索,发现是有相关的文章,但也有不少遇到和我一样问题,那只能先放弃。一番搜索后我找到免费的Potatso Lite,很快连上,非常顺畅。

后记:

后来发现有很多“一键Shadowsocks脚本”,即按配置好的用户名/端口/密码,一键完成服务器SS配置+TCP BBR优化。后续使用确实这样更方便,但若想弄清原理,一步步走下来会更有意思。

我把部署好的梯子发给小伙伴使用,一位问我“为什么要叫Shadowsocks呢”?恰好我今天下午也在恍惚间思考这个问题,为什么踩着阴影袜子爬梯子。我尝试Google,但只了解到SS最初是位叫clowwindy的中国程序员于2012年开发的,并没有说起名缘由。

深圳是个好地方,所谓寒冬腊月,每晚穿个短袖T恤就可以到处闲逛,而且吃的非常开心,没到一个月吃了个遍,既有陈鹏鹏鹅肝,又有四季椰林的椰子鸡,又有老牌肠粉,还有烧腊,再金稻园喝个粥,猪肚鸡、八合里牛肉丸、车公庙春满园或点都德的茶点……总体来说,深圳市政的安全、环境的整洁,让人有种贴近真实的心安感,适合久居。

最近看完美剧《相对宇宙Counterpart》第一季,描述的是我们的世界在某一刻被复制分叉成两个世界,彼此之间只有一个地下的梯子连接。两个世界各自独立地越走越远,每个人、每个个体点滴决策的细小差异,最终汇聚成两个世界的演进殊途。

然而很多年后,当光头老爷子、短发女杀手穿过地下梯子进入另一个世界和另一个“自己”对话时,虽然世界分叉了多久,两个“自己”的职业和家庭已完全不同。但毕竟曾拥有同一份童年和分叉前的经历,从世界维度聚焦回到个体看,差异又显得没那么大。

我们只有唯一的世界,即使没分叉,若以高考、毕业等同一份经历类比分叉点,以同窗同伴类比被分叉的自己,其实也走出了万千条不同的时间轴。希望若干年后的某一天,梯子拆除,久别重逢,故人犹在,尚能乘醉听箫鼓,归去凤池夸。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20190211G11Y0H00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。

扫码关注云+社区

领取腾讯云代金券

年度创作总结 领取年终奖励