28/06/2014
巧用VPS转接百度网盘
这两天有几个软件更新,但无奈于海外下载百度网盘内容太慢,无论是用迅雷还是离线下载都无法达到满意的要求,所以想尝试用VPS挂接百度网盘URL下载。
首先进入百度网盘,点击想下载的内容,当Safari开始下载相关内容时,选择暂停,然后右键获取到下载真实URL。
例如我获取到的链接是:
http://hot.cdn.baidupcs.com/file/a44a775a44193df77477d0022cf16c3e?xcode=168b3b9be1c383da55436e367e5220b3469664a5876d7f6f&fid=3020216975-250528-1060170056641923&time=1403942159&sign=FDTAXER-DCb740ccc5511e5e8fedcff06b081203-WeWaL4r65yDN73sky%2FsQzrRIhaw%3D&to=hc&fm=N,B,U,ny&sta_dx=1596&sta_cs=2&sta_ft=1&sta_ct=0&newver=1&expires=8h&rt=pr&r=110563042&logid=1007659999&vuk=3020216975
这个链接能看出,链接有效期只有8小时,所以如果使用常规方式下载很慢的情况下,没有下载完就会过期的。
通过SSH链接VPS,然后命令如下:
sudo wget “http://hot.cdn.baidupcs.com/file/a44a775a44193df77477d0022cf16c3e?xcode=168b3b9be1c383da55436e367e5220b3469664a5876d7f6f&fid=3020216975-250528-1060170056641923&time=1403942159&sign=FDTAXER-DCb740ccc5511e5e8fedcff06b081203-WeWaL4r65yDN73sky%2FsQzrRIhaw%3D&to=hc&fm=N,B,U,ny&sta_dx=1596&sta_cs=2&sta_ft=1&sta_ct=0&newver=1&expires=8h&rt=pr&r=110563042&logid=1007659999&vuk=3020216975” -O m511.zip
其中-O命令是制定文件名,避免百度网盘文件名过长下载出错的问题,这个名称可以自起。
之后就是下载步骤了,下载完成后就不需要多讲了,直接HTTP远程挂下来就可以了,可以多开一些并发连接,顺便测试下服务器负载:-)。
30/08/2014
Linode利用Nginx搭建透明代理
By dch1 in Life No Comments Tags: Linode, Nginx, Transparent Proxy, VPS
首先感谢小雨,在多年前帮我的博客捉虫之后,又给我带来了新玩法。如果以后定期来看看就更好了(当然,I don’t mind if you couldn’t do it)
其次,我们仅限讨论纯技术圈的内容,对于科学上网,相信大家都懂,本篇文章仅当抛砖引玉。
本篇文章是按照实验顺序写的,我是一边实验一边写这篇文章的,感觉这样学到的东西更多一些。
之前在网络上有很多人搭建代理,其实代理无非就那几种,当然随着技术手段的多样化,加密方式也同样迭代很多。之前接到这个题目做过一些research,但国外鬼佬网站多是关于反向代理的讨论,我在这里插一句,反向代理其实表面不多,其实行业内经常使用,例如澳大利亚很多政府网站(移民部的签证提交页面就是我当时注意到的第一个反向代理),另外很多云加速更是如此(例如大名鼎鼎的CloudFlare云加速,其实很多云加速归根结底宣传的优势都是反向代理与生俱来就拥有的,不足以过多炫耀……),原理也不比这篇文章介绍的复杂太多。
首先拿到一个VPS,假设已经安装好Nginx环境(我在这里省略这些步骤,具体安装方法请翻阅之前的文章),我的试验并不是搭建在Linode上的(这里有赚点击的嫌疑?),Anyway,是搭建在一个128M OpenVZ的VPS上(就靠Nginx如此高性能的服务器程序在这类VPS上发挥余热了,谁知道我这个服务商超售多少呢)。
言归正传,首先根据前辈的代码,进入 /etc/nginx/sites-available ,在default文件的合适位置粘贴以下代码,这里调试的端口是HTTP 8080 端口。我在中间注释了4行,原因是我暂时不需要考虑出错页面,这是代理嘛,暂时不考虑本地放置内容。
然后我们 sudo service nginx restart 重启nginx服务器,一般不会出错就对了。我们直接可以浏览器访问VPS的8080端口看效果,会提示 504 Gateway Time-out 错误,这证明端口已经打开。我们可以直接设置浏览器的代理登录IP查询网站查看IP是否有变化。
如果有问题,还可以用命令: netstat -an | egrep ‘Proto|LISTEN’ 查看开放端口,注意防火墙响应设置应当放行。
上面的设置有明显问题,其一是没有限制,很容易被监听公开到代理网站上,并导致VPS超高流量。其二,没有SSL协议,一切都是浮云啊。
我们先解决SSL的问题,为了图方便,我们直接用服务器生成自签名证书吧!(直接搬运的现成代码,原谅我吧,非root记得前面加sudo)然后代码就变成了这样拼凑的结果:以上这段代码MARK备用,貌似不是很管用,暂时先考虑443明文吧,突破局域网封锁。
明文代码443突破封锁就比较简单了:
至此,客户端已经完全可以访问到,IE稍微设置下就可以实现内外网分离,唯一开放的443端口可以用于标准HTTP代理,SSL直接通过原生端口使用,不走代理。
当然,自己开的代理当然不希望被其他网站嗅探到变成对公众开放的服务器(不是我没有共享精神,资源流量伤不起啊),可以添加IP地址列表过滤,简单暴力。同时再增加点资源方面的限制。
第一阶段任务完成了,VPS终于通过Nginx变成了专属代理。
References:
https://ef.gy/using-nginx-as-a-proxy-server
https://blog.akendo.eu/debiannginx-with-ssl/