买的vultrvps一直只是用来做shadowsocks服务,因为自己日常就是google&youtube,反正就是浏览器使用了,够用,然后命令
行或者某些特殊的软件,就用某梯的vpn了,可是就在前几天某梯奔掉了,不凑巧的是,正好我需要gulp安装sass,需要fq,手里也有vps,所以就搭建了个vpn。

安装pptpd

安装pptpd

1
$ apt-get install pptpd

修改配置文件

1
$ vim /etc/pptpd.conf

找到如下内容,去掉注释

1
2
localip 192.168.0.1 #VPN服务器的虚拟ip
remoteip 192.168.0.201-245 #分配给VPN客户端的虚拟ip

设置dns

1
$ vim /etc/ppp/pptpd-options

找到如下内容,修改为google的dns

1
2
ms-dns 8.8.8.8 #google dns
ms-dns 8.8.4.4 #google dns

编辑用户配置文件来添加用户

1
$ vim /etc/ppp/chap-secrets

依次为:用户名,服务类型,密码,随机ip(*代表随机分配)

1
user pptpd password *

重启PPTPD服务

1
$ /etc/init.d/pptpd restart

配置网络和路由规则 设置ipv4转发

1
$ vim /etc/sysctl.conf

去掉文件中这一行的注释:

1
net.ipv4.ip_forward=1

立即生效

1
sysctl -p

安装iptables

1
$ apt-get install iptables

设置iptables NAT转发

注意这里eth0代表你的外网网卡,请用ifconfig查看

1
$ iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -o eth0 -j MASQUERADE

如果上面的命令报错,那么可以尝试以下的命令,其中xxx.xxx.xxx.xxx代表你的VPS外网ip地址

1
$ iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -o eth0 -j SNAT --to-source xxx.xxx.xxx.xxx

保存规则

1
$ iptables-save >/etc/iptables-rules

编辑网卡文件,使之加载网卡时自动加载规则

1
$ vim /etc/network/interfaces

文件末尾加入:

1
pre-up iptables-restore </etc/iptables-rules

保存

1
$ iptables-save >/etc/iptables-rules

安装iptables配置持久化

1
$ apt-get install iptables-persistent

运行保存配置命令

1
$ service iptables-persistent start

设置MTU来确保过大的包不会被丢弃(这个可以不做)

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

MAC连接问题

如果macos能够连接上vpn但是不能上外网,ip.cn 还是本地ip,在vpn高级里边勾选通过VPN连接发送全部流量,搞定。

题外话

vultr 是我用过的性价比最高的一款vps,因为有日本机房,所以速度非常快。如果你还在纠结不知道用什么样的vps,不妨试试vultr吧。点我vultr
注册可得20$奖励,每个月使用5$,就可以用四个月哦,当然我也会相应的得到一些回报。

参考 blog