overview

这段时间天朝要进一步封锁网络的新闻频频出现,既然天朝这么想阻止,那么本文就准备让读者对墙、翻墙原理有一个基础的认识,并在读完后能自主搭建基于VPS的翻墙服务(macos环境)😈。

互联网说的直白一些,就是连接了全世界几十亿设备的网络。但是在我天朝,其实大家一直用的‘互联网’都是局域网,我们被国家保护在一堵四面环绕的围里。渴望自由的人们想出了一些方法来打破这种束缚,其中非常常用的一种方式就是VPN。也就是本文说的这种。

那么墙的基本原理是什么?
平时大家访问一个网站,需要输入一个域名(就是哪个三达不溜点叉叉叉点卡姆的东西 eg:www.baidu.com)。输入域名回车后,浏览器需要通过DNS将域名解析成ip地址进行访问。所以当你访问网址时,实际你是在访问这个网址的ip地址。天朝就通过对DNS的劫持和污染,让你输入的GoogleFacebook在解析的时候,返回一个错误的ip地址,自然就访问失败了。 ヽ(。>д<)p

ps:知道了原理的同学,可能会想“那我如果知道了想访问网站的ip,是不是就可以直接访问了?”,答案是:yes!但是有一些ip也是被墙了的,不过别怕这里有你想要的东西~ 坏笑.gif~

关于VPN

VPN(虚拟专用网络)原本的目的是保护公司和公司之间的商业机密,通过加密的方式,让通讯者之外的人无法获取传输的内容。本文使用Shadowsocks来实现这一过程。

vpn

而正是得益于这种机制,外界无从得知我们想干嘛。😏
这一切的基础,就是要有一个VPS啊!

关于VPS

VPS(虚拟专用服务器)在购买之后,我们可以在上面做很多事情,比如搭建网站、存储小电影影视作品、爬虫等。买完VPS的时候,需要选择顺手的操作系统,常用的有CentOSDebianUbuntu等,这个选择上就仁者见仁了,反正我现在在用CentOS 😎

VPS其实跟现在你用的电脑没有太大差别,只不过VPS的操作大多在Terminal(终端)进行,所以需要使用者对终端命令有所了解,比如yum是CentOS下的包管理工具,firewalld是CentOS下的防火墙操作命令等。

有很多服务商提供VPS的购买服务,常见的有VultrDigital OceanLinode等,这几家价钱差不多,我是在Vultr上买的$5/month的服务,here是我的推荐码,通过点这个链接注册的话,会有惊喜哦💰。

对墙、VPN以及VPS有了基础的认识之后,是时候搞出一些事情了!

搭建翻墙环境之——服务端

搞事情当然先从购买VPS开始啦~

购买服务器

购买服务器国人一般都会买新加坡,或者日本的服务器,理论上相对较美国的服务器会快一些。

存储空间大小、带宽等配置可根据自身需求定义。

购买完成后,会有几十秒的服务器配置时间,配置完成后,就可以登录刚买的VPS了。

登录服务器

终端中输入:

1
$ ssh 用户名@ip地址

第一次登录会将此服务器信息加入known hosts中,询问是否继续时输入yes

紧接着输入服务器密码,终端不会显示已输入密码,小心手滑打错哦

Enter! I’m in!

happy

在新购买的服务器内,可以 ping 一下 google

1
$ ping -c 10 google.com

你会在 ping 10次之后自动结束,如果可通过尾部信息查看丢包率、耗时信息等

1
2
3
--- google.com ping statistics ---
10 packets transmitted, 10 received, 0% packet loss, time 9012ms
rtt min/avg/max/mdev = 2.129/2.212/2.310/0.075 ms

安装 shadowsocks

安装 shadowsocks 其实非常简单,只需要安装 python 后,通过 pip 安装即可,写了一个非常简单的 shell

1
2
3
4
5
6
7
8
#! bin/sh

yum -y install python-pip # 1.安装 python
pip install shadowsocks # 2.通过 pip 安装 shadowsocks
cp ./shadowsocks.json /etc/ # 3.将已有的 shadowsocks.json 文件拷贝到 /etc/ 目录
firewall-cmd --permanent --add-port=2333/tcp # 4.允许端口 2333 通过防火墙
firewall-cmd --reload # 5.重新加载防火墙配置
ssserver -c /etc/shadowsocks.json -d start # 6.以后台模式开启 shadowsocks

在服务器中创建一个 install.sh 文件,将如上代码拷贝进去并保存

运行 shell 之前,友情提示:你应该会获得一个 No such file… 的错误…

那是因为第3步,拷贝 shadowsocks.json 文件,导致的,这个脚本是我将放有配置好的 .json 文件 install.sh 文件的文件夹拷贝到服务器之后执行的,你可以不用使用scp进行拷贝,在执行脚本之前,先创建如下文件

1
cd /etc

进入 etc 目录,创建新的 shadowsocks.json 文件,并将如下内容拷贝进入,修改your_port、your_password为自己的端口、密码,保存

1
2
3
4
5
6
7
8
9
10
{
"server":"0.0.0.0",
"server_port":your_port,
"local_address": "127.0.0.1",
"local_port":1080,
"password":"your_password",
"timeout":300,
"method":"aes-256-cfb",
"fast_open": true
}

创建完之后执行脚本

1
$ sh install.sh

服务端配置 Done!

搭建翻墙环境之——本地

本地需要和VPS搭建好的环境打通联系,就需要下载ShadowsocksX应用了,下载后运行,点击小飞机-服务器-打开服务器设定,点击➕ 添加一个新的服务器配置

其中
地址=服务器ip
端口=如上你自己修改的your_port端口
密码=如上你自己修改的your_password密码

确定,本地配置 Done!

Final

此时你的shadowsocks应该是打开状态,VPS的配置也已经完成并启动,打开浏览器输入 google.com,就可以尽情享受自由的感觉了~

yeah

基于我的初衷只是让读者了解一些概念,和一些实际操作的步骤,有很多细节如果展开的话,两三篇博客都不够…所以,如果有兴许可以翻墙之后去谷歌搜索哦~