用VPS搭建VPN和shadowsocks

一直用的一个shadowsocks服务由于一些原因被停掉了,这对谷歌重度用户的我简直不能忍,就决定自己动手了,对比了下VPS提供商,推荐最多的就是linodedigitalocean了,linode是老牌主机商了,digitalocean是最近兴起的性价比超高的主机商,如果不差钱就买linode,追求性价比就买digitalocean。

由于我最近很差钱,所以digitalocean就是首选了,我选的是最低配的$5一个月的,首次购买点击这个链接注册可以送$10,相当于$5可以用三个月啊,相当划算。

点击注册成功之后,它会让你绑定信用卡或者paypal,绑定成功后就可以购买啦,如下图这样
然后点击Create Droplet,之后就看到类似这样
选旧金山的机房,据说是针对国内用户优化过,速度相比较于其他几个机房要快一些,然后我选的是ubuntu的系统,这个随意吧,自己喜欢哪个就选哪个系统,最后点击创建之后大概需要一分钟
创建成功之后,大概类似这样
然后你的邮箱里面会受到root的密码,这个密码是用来起始登录的,点击Console Access之后,进入系统内部,首次登录,需要修改root密码
修改成功之后就可以在任何地方用ssh登录啦,接下来就是配置VPN了和shadowsocks了,二者选其一即可,关于VPN和shadowsocks的解释再次不赘述,不懂请自行谷歌。

配置VPN

如果是ubuntu系统,可以直接将下面的代码保存为.sh脚本文件,然后只需要修改两个地方

1.第35行修改为自己刚才创建的VPS的ip地址
2.第59行修改为自己的用户名和密码,可以添加多个用户名和密码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
#!/bin/sh
if [ `id -u` -ne 0 ]
then
echo "please run it by root"
exit 0
fi

apt-get -y update

apt-get -y install pptpd || {
echo "could not install pptpd"
exit 1
}

cat >/etc/ppp/options.pptpd <<END
name pptpd
refuse-pap
refuse-chap
refuse-mschap
require-mschap-v2
require-mppe-128
ms-dns 8.8.8.8
ms-dns 8.8.4.4
proxyarp
lock
nobsdcomp
novj
novjccomp
nologfd
END

cat >/etc/pptpd.conf <<END
option /etc/ppp/options.pptpd
logwtmp
localip 127.0.0.1 #修改为你的VPS主机IP
remoteip 192.168.2.10-100
END

cat >> /etc/sysctl.conf <<END
net.ipv4.ip_forward=1
END

sysctl -p

iptables-save > /etc/iptables.down.rules

iptables -t nat -A POSTROUTING -s 192.168.2.0/24 -o eth0 -j MASQUERADE

iptables -I FORWARD -s 192.168.2.0/24 -p tcp --syn -i ppp+ -j TCPMSS --set-mss 1300

iptables-save > /etc/iptables.up.rules

cat >>/etc/ppp/pptpd-options<<EOF
pre-up iptables-restore < /etc/iptables.up.rules
post-down iptables-restore < /etc/iptables.down.rules
EOF

cat >/etc/ppp/chap-secrets <<END
gfw pptpd fuckgfw * #添加你自己的用户名和密码,可以添加多行 格式为: "username" pptd "password" *
END

service pptpd restart

netstat -lntp

exit 0

然后保存为pptp.sh,修改权限,运行完成之后配置就完成啦。

1
2
chmod +x pptp.sh
./pptp.sh

你的VPN账号就是上面第59行设置的用户名和密码啦。

配置shadowsocks

1) 安装shadowsocks服务器

1
2
apt-get install python-pip 
pip install shadowsocks

2) 保存配置文件

1
sudo vim /etc/shadowsocks.json

这样会打开一个空白文件,输入下面配置信息

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

“server”如果你设置为0.0.0.0后不能连接,你可以设为你的vps ip地址试试。

“server_port”这个是可以自己随意指定一个,但是下面连接的时候会用到。

“local_port”这个也是可以随意指定的,但是不要跟“server_port”一样,下面也会用到

“password”自己设一个密码。

3) 运行shadowsocks 服务

1
ssserver -c /etc/shadowsocks.json -d start

如果想关闭的话

1
ssserver -c /etc/shadowsocks.json -d stop

4) 下载shadowsocks客户端
http://shadowsocks.org/en/download/clients.html

5) 打开客户端连接
以windows系统为例,类似这样的图
服务器端口号和代理端口号就是上面设置的两个号,服务器ip就是你的VPS的ip地址,密码就是刚才设置的。点确定即可。然后配合一些代理插件即可上网啦,推荐chrome下的SwitchOmega插件,安装后怎么配置使用可以自行搜索啦,在此不叙述。

本文教了大家两种方法去到外面的世界去看看,大家有问题可以在下面留言。在天朝真的是上个网都这么麻烦,更加深了我想肉身翻墙的信念了,也祝愿大家都早日实现肉身翻墙,哈哈哈哈。。