on
快速搭建Algo VPN
Algo VPN
老大哥说话算话,最近国内很多VPN果然都被封掉了,我等屁民为了能好好写代码不得不想办法自己弄个VPN。 在看了不少网上的教程,发现用 Algo VPN 应该是最简单的方法了。这个VPN的好处,这篇文章说了很多,我就不一一翻译了。我觉得这个VPN最大的好处就是可以屏蔽很多广告😋。
自己搭建VPN就需要在国外有个服务器也就是VPS,我这里介绍一个最简单的方法就是用 DigitalOcean 的服务器,每个月的成本是 5$。
搭建Algo VPN服务器
虽然AlgoVPN提供在不同的云服务器上不同搭建方法, 比如 DigitalOcean , Amazon EC2, Microsoft Azure. 下面我简单介绍怎么在 DigitalOcean 上搭建:
-
首先在 DigitalOcean 上注册一个帐号.
-
下载Algo. 把下载的压缩包解压.
-
安装 Algo 的依赖包. 打开你的终端. 你至少需要安装
python
. 然后cd
进入algo-master
这个解压得到的文件夹 , 然后在终端中运行:- macOS:
$ python -m ensurepip --user $ python -m pip install --user --upgrade virtualenv
- Linux (deb-based):
$ sudo apt-get update && sudo apt-get install \ build-essential \ libssl-dev \ libffi-dev \ python-dev \ python-pip \ python-setuptools \ python-virtualenv -y
- Linux (rpm-based): See the Pre-Install Documentation for RedHat/CentOS 6.x
- Windows: See the Windows documentation
- macOS:
- 安装 Algo 剩下的依赖包. 在同一个终端下运行:
$ python -m virtualenv env && source env/bin/activate && python -m pip install -U pip && python -m pip install -r requirements.txt
在macOS上,可能需要安装
cc
。 直接按确定,会自动安装的。 -
设置VPN用户. 在
config.cfg
这个文件里设置用户. 如果没用特定的设置,将会自动生成两个默认用户名。 - 开始搭建. 在 Algo 这个文件夹里,运行
./algo
就可以开始自动搭建VPN服务器了。-
这里需要选择云服务器的位置, DigitalOcean 提供全球不同区域的服务器, 如果你主要在国内使用VPN, 建议选择新加坡或者印度班加罗尔的数据中心. 对比在国内访问 DigitalOcean 不同区域服务器的网速.
- 选择服务器
- 第二步需要在 DigitalOcean 的获得一个API token. 这个token可以在DigitalOcean的 settings/api 里生成。
- 选择服务器位置
-
后面几步直接按确定接受默认选项就行了。如果想做更高级的配置这里有更详细的解释 deploy-from-ansible.md。
好了!如果没有出现问题的话,你就能得到自己的VPN了。最近一次测试,我发现在自动搭建过程中可能出现以下错误:
TASK [cloud-digitalocean : Tag the droplet] ************************************
failed: [localhost] (item=staging) => {"failed": true, "item": "staging", "msg": "error tagging resource '73204383': param is missing or the value is empty: resources"}
failed: [localhost] (item=dbserver) => {"failed": true, "item": "dbserver", "msg": "error tagging resource '73204383': param is missing or the value is empty: resources"}
Debugger invoked
(debug) c
...
fatal: [localhost]: FAILED! => {"changed": false, "failed": true, "msg": "Failed as requested from task"}
解决方法如下,将下面的代码保存在一个文件中do_tag.patch
, 然后运行 patch -b -p0 < do_tag.patch
。
--- ./env/lib/python2.7/site-packages/ansible/modules/core/cloud/digital_ocean/digital_ocean_tag.py.orig 2017-12-02 09:42:56.044524930 -0500
+++ ./env/lib/python2.7/site-packages/ansible/modules/core/cloud/digital_ocean/digital_ocean_tag.py 2017-12-02 09:43:14.245074861 -0500
@@ -242,7 +242,7 @@
module = AnsibleModule(
argument_spec=dict(
name=dict(type='str', required=True),
- resource_id=dict(aliases=['droplet_id'], type='int'),
+ resource_id=dict(aliases=['droplet_id'], type='str'),
resource_type=dict(choices=['droplet'], default='droplet'),
state=dict(choices=['present', 'absent'], default='present'),
api_token=dict(aliases=['API_TOKEN'], no_log=True),
如果没有错误,会得到以下信息,然后记下 p12 (user certificate) 的密码,之后需要用到。
"\"#----------------------------------------------------------------------#\"",
"\"# Congratulations! #\"",
"\"# Your Algo server is running. #\"",
"\"# Config files and certificates are in the ./configs/ directory. #\"",
"\"# Go to https://whoer.net/ after connecting #\"",
"\"# and ensure that all your traffic passes through the VPN. #\"",
"\"# Local DNS resolver 172.16.0.1 #\"",
"\"# The p12 and SSH keys password is XXXXXXXX #\"",
"\"#----------------------------------------------------------------------#\"",
VPN的使用
你需要用在 configs
这个文件夹里的文件来设置手机或者电脑上的VPN. 所有的文件都会自动生成在以 Algo VPN 服务器的 IP 地址命名的文件夹里。 如果不知道怎么用这些配置文件,这里有更详细的解释。 因为这里文章里已经讲得很清楚了,我就不翻译了。