VPS - Virtual Private Server 虚拟专用服务器
VPN - Virtual Private Network 虚拟专用网络
VPN应该已经不陌生了,但是VPS一直没有接触过,昨天在budgetvm网站上看到一款月付$4.9的入门型订单,1G/1G/50G 3TB的配置,看起来还不错,而且支持支付宝,于是乎就买了一个月,看看这东西到底有什么神奇的地方。因为加cPanel是要额外收钱的,所以我只有一个裸机,但是官方页面提供简单的配置:更换操作系统,带宽监控,IPMI(一个类似terminal的DD)。基本上功能是够用了,而且VPS server有公网的IP地址,可以直接ssh 22端口或者http 80端口访问,不知道运行商是怎么做到的。
VPS实际也就是虚拟化,没有传说中的那么贵,也不神奇,真要去架设这套系统,那才是技术活。拿到了server,接下来能干什么呢?除了有公网可以自由访问之外,好像也没有多大用途,暂时不如弄个VPN试试,看看能不能代理访问。网上在VPS部署VPN的相关的资料很多,试了一圈,从squid+stunnel到ppp+pptp,按部就班,结果不是很理想,因为不了解Linux上有哪些好用的VPN软件和各协议的基础知识,所以配置和测试都得google,很费劲,想省事可以参考linuxeye上的一个一键安装脚本(http://mirrors.linuxeye.com/scripts/vpn_centos.sh),CentOS上使用挺方便,:- 运维的人才真的有实力,深入和专业!但是在我的VPS上部署PPTP后客户端链接不了,在win7上总是返回619和651错误,悲催。
PPP - Point to Point Protocol 点对点协议
PPTP - Point to Point Tunneling Protocol 点对点隧道协议
最后,根据各方经验总结一下pptp安装的 一些步骤,以便日后有兴趣了再继续参考:
1.安装pptp和ppp
2.配置/etc/pptpd.conf
修改本地地址和远程地址,格式如下:
localip 172.20.0.1
remoteip 172.20.0.100-200
意思是VPN Server会使用172.20.0.1作为本地地址和被分配为100-200地址的远程访问过来的客户端进行通信
PS:按照上面的配置,启动pptp之后没看到本地有自动添加172.20.0.1这个地址,所以考虑是否需要手动静态添加172.20.0.1地址呢?试两种方法:
ifconfig eth0:1 172.20.0.1 netmask 255.255.255.0 ip
和
tunctl -b
ipconfig tap0 172.20.0.1 netmask 255.255.255.0 up结果依旧链接不上
3.在/etc/ppp/chap-secrets中添加用户,格式如下,可以添加多条:
user1 pptpd password1 *
意思客户端通过pptp登录服务器任何地址时,输入用户名user1和密码password1
4.可选,修改/etc/ppp/options.pptpd,添加DNS,推荐OpenDNS或者Google DNS:
OpenDNS: 208.67.222.222 | 208.67.220.220
Google DNS: 8.8.8.8 | 8.8.4.4
格式如下:
ms-dns 208.67.222.222
ms-dns 208.67.220.220
5.修改/etc/sysctl.conf,将
net.ipv4.ip_forward = 0
修改为
net.ipv4.ip_forward = 1
然后重新加载配置
sysctl -p
6.配置iptables,已经看不懂了,权且记录以备验证
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
(上述配置为了让clients之间能互相访问,eth0和下述地址都需要改为实际值)
iptables --table nat --append POSTROUTING --out-interface ppp0 -j
iptables -I INPUT -s 172.20.0.0/20 -i ppp0 -j ACCEPT
iptables --append FORWARD --in-interface eth0 -j ACCEPT
7.启动pptpd
service pptpd start
参考:https://www.linux.com/blog/setting-vpn-linux