本文VPN配置方法在CentOS 6.4/6.5上测试有效,更高版本未进行测试验证,不过应该也适用。 之前写过《windows vps服务器搭建VPN教程》,也一直使用的是windows搭建的VPN,不过最近发现速度有些慢,经常需多次连接才成功,故想试试linux下的VPN效果如何,于是拿一台英国的VPS进行操作,系统是CentOS 6.5。本文记录的是我的整个搭建过程,还有其中遇到的问题及解决方法。 1、安装ppptd1) rpm pptp # rpm -Uvh http://poptop.sourceforge.net/yum/stable/rhel6/pptp-release-current.noarch.rpm rpm pptp 2) install pptpd # yum install pptpd install pptpd 2、配置VPN本地及客户端IP首先我们要编辑/etc/pptpd.conf文件: # vim /etc/pptpd.conf 注:执行vim指令若返回“-bash: vim:command not found”则表示未安装vim,如何安装?请看怎样安装vim。 找到“localip”和“remoteip”这两个配置项,将前面的“#”注释符去掉,更改为你期望的IP段值。localip表示服务器的本地IP,remoteip表示分配给客户端的IP地址,可以设置为区间,我们使用pptp默认的配置即可: localip 192.168.0.1 配置VPN本地及客户端IP 注意,这里的IP段设置,将直接影响后面的iptables规则添加命令,请注意匹配的正确性,如果你嫌麻烦,建议就用本文的配置,就可以一直复制命令和文本使用了。 3、配置VPN DNS我们编辑/etc/ppp/options.pptpd文件,。 # vim /etc/ppp/options.pptpd 在末尾添加下面两行(Google DNS): ms-dns 8.8.8.8 配置VPN DNS 4、设置VPN账号密码我们需要编辑/etc/ppp/chap-secrets这个文件: # vim /etc/ppp/chap-secrets 在这个文件里面,按照“用户名 pptpd 密码 *”的形式编写,一行一个账号和密码,比如添加用户名为client01,密码为123456的用户,则添加如下内容: client01 pptpd 123456 * 设置VPN账号密码 5、设置支持转发编辑/etc/sysctl.conf文件: # vim /etc/sysctl.conf 将“net.ipv4.ip_forward”改为1,变成下面的形式: net.ipv4.ip_forward=1 保存退出。
设置支持转发 接下来还需执行下面的命令来使它生效: # sysctl -p 使sysctl设置生效 6、添加iptables转发规则输入下面的指令: # iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -o eth0 -j MASQUERADE 需要注意的是,这个指令中的“192.168.0.0/24“是根据之前的配置文件中的“localip”网段来改变的,如果你设置的是“10.0.0.1”网段,则应该改为“10.0.0.0/24”。此外,还有一点需要注意的是eth0,如果你的外网网卡不是eth0,而是eth1(比如SoftLayer的服务器就是这样的情况),那么请记得将eth0也更改为对应的网卡编号eth1,不然是上不了网的。我们怎么知道是eth0还是eth1? 然后我们输入下面的指令让iptables保存我们刚才的转发规则,以便重启系统后不需要再次添加: # /etc/init.d/iptables save 然后我们重启iptables: # /etc/init.d/iptables restart 添加iptables转发规则 7、重启pptp服务输入下面的指令重启pptp: # /etc/init.d/pptpd restart 重启pptp服务 看到返回: Shutting down pptpd: [OK] 则表示重启成功。如果重启失败,可以先停止,再启动。命令为: # /etc/init.d/pptpd stop 8、设置开机自动运行服务我们最后一步是将pptp和iptables设置为开机自动运行,这样就不需要每次重启服务器后手动启动服务了,当然你不需要自动启动服务的话可以忽略这一步,输入指令: # chkconfig pptpd on 至此,VPN配置完毕! 接下来,就是在你的电脑配置VPN网络访问了,配置方法可看这里《怎样使用VPN访问网站》。
|