前几天给hardbirch的vps重装了系统,从CentOS换到Debian。今天试图重新利用这个VPS做VPN服务器,所以折腾就这么开始了。其实,不论是什么系统,架设VPN服务器的思路都是一样的,只是在一些细节上有些变化。下面以Debian为例详细介绍一下。
一、检查环境
做VPN的VPS需要把PPP和TUN启用
cat /dev/ppp
显示cat: /dev/ppp: No such device or address为正常。否则,尝试运行以下命令后再试一下(我的VPS就是这种情况,导致废弃了一个月,今天才发现这方法!)
rm /dev/ppp
mknod /dev/ppp c 108 0
cat /dev/net/tun
显示cat: /dev/net/tun: File descriptor in bad state为正常
如果顺利通过,那么很好,继续往下看吧,否则,就要去VPS的控制面板上看看有没有开关,或者直接发ticket要求开通。
二、安装pptpd
apt-get install pptpd
很快就会安装完毕的
三、配置pptpd
vi /etc/pptpd.conf
去掉下面两行的注释
localip 192.168.0.1
remoteip 192.168.0.234-238,192.168.10.245
如果本机使用路由器之类的上网,而ip段又正好是192.168.0.xxx的话,那需要把上面的ip改成其他ip段,比如:
localip 192.168.100.1
remoteip 192.168.100.234-238
四、配置 DNS
vi /etc/ppp/options
加入这两行(文件很长,直接在头部加入即可)
ms-dns 8.8.8.8
ms-dns 8.8.4.4
五、开启IP转发
vi /etc/sysctl.conf
去掉net.ipv4.ip_forward=1的注释 肉眼找不到可以输入/net.ipv4.ip_forward=1,按回车搜索。
六、添加用户名密码
vi /etc/ppp/chap-secrets
用户名 pptpd 密码 * 按照这样的格式输入(注意最后的*也要加上)
七、编写转发规则
vi /etc/pptpdfirewall.sh
这是新建的空白文件。写入一下内容
/sbin/iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -j SNAT –to-source ***.***.***.***
/sbin/iptables -A FORWARD -s 192.168.0.0/24 -p tcp -m tcp –tcp-flags FIN,SYN,RST,ACK SYN -j TCPMSS –set-mss 1356
其中的***.***.***.***替换成VPS的公网IP。如果是之前讲的ip段冲突的情况,要把两个192.168.0.0/24都改成192.168.100.0/24(用自定义IP的话,自己参照着写)
然后设置文件为可执行
chmod 755 /etc/pptpdfirewall.sh
八、加入开机启动
vi /etc/init.d/rc.local
在文件尾加上
sh /etc/pptpdfirewall.sh
九、重启VPS
reboot
注意,不要用网上所谓的给require-mppe-128加注释的方法。这个方法治标不治本,因为mppe是用于加密的,注释了等于没有加密,数据还是公开的,这样可能平时能访问一些网站,但是关键时刻和关键网站就无能为力了,因为数据照样能被过滤的。不加密的VPN一点用处都没有,还不如直接用SSH的好。