李大仁博客

[Linux]CentOS配置VPN代理服务器

之前讲到使用VPS的SSH加密通道实现透明代理来轻松实现翻越GFW,但是未越狱的iphone设备却无法使用SSH,只能使用VPN,为了使自己的iphone能够翻越GFW,最近我在自己的VPS上使用PPTP搭建了VPN服务,搭建过程相对还是比较简单的,我这里使用的是CentOS 6.4,其他发行版本linux的配置基本一致。

1.首先确认VPS的PPP和TUN设备是否安装正确

ls /dev/ppp
ls /dev/net/tun
# 或
cat /dev/ppp
cat /dev/net/tun

如果提示“No such file or directory”或“No such device or address”则表示未安装,一般来说可以直接向你的VPS提供商发工单要求打开即可。

2.安装pptp,由于pptp依赖于ppp,因此需要先安装ppp

yum install -y ppp
yum install -y pptp 

3.创建VPN专用管道

mknod /dev/ppp c 108 0

如果连接VPN时出现619错误的话,也可以执行以上

4.修改/etc/sysctl.conf,打开ipv4转发
打开文件后找到以下内容,并修改。

net.ipv4.ip_forward=1
net.ipv4.tcp_syncookies=0

生效对/etc/sysctl.conf的修改(可选)

sysctl -p

或者执行

echo 1 > /proc/sys/net/ipv4/ip_forward 
echo 0 > /proc/sys/net/ipv4/tcp_syncookies 

5.修改/etc/pptpd.conf文件,设置VPN IP地址。写入

localip XXX.XXX.XXX.XXX
remoteip XXX.XXX.XXX.XXX-XXX

localip 为本地IP,即本机IP
remoteip 为远程主机会被分配的IP,通常设置为连续ip段

6.修改/etc/ppp/options.pptpd文件,完成VPS服务器DNS修改

ms-dns 8.8.8.8
ms-dns 8.8.4.4

7.编辑/etc/ppp/chap-secrets,配置VPN连接的用户
格式为

username pptpd password *

username:用户名
password:密码

或者执行

echo "username pptpd password *" >> /etc/ppp/chap-secrets

8.修改iptables设置,打开防火墙

iptables -A FORWARD -s XXX.XXX.XXX.XXX/XX -p tcp -m tcp --tcp-flags 
FIN,SYN,RST,ACK SYN -j TCPMSS --set-mss 1356

#save
service iptables save

其中XXX.XXX.XXX.XXX/XX为第5步设置的远程IP

9.配置开机启动服务(可选)

chkconfig iptables on
chkconfig pptpd on

10.启动或重启pptp和iptables服务

# service iptables start
# service pptpd start

service iptables restart
service pptpd restart

最后提供一个CentOS/RHEL适用的一键安装脚本
http://www.diahosting.com/dload/pptpd.sh

用法:

wget http://www.diahosting.com/dload/pptpd.sh
sh pptpd.sh
Exit mobile version