最近服务器从ubuntu换到Centos,安装VPN遇到小麻烦,一并记录如下
先确认服务器有没有支持PPP,VPS建议测试一下
cat /dev/ppp
如何得到这样的
cat: /dev/ppp: 没有那个设备或地址
结果说明没问题!
用yum命令安装PPP和iptables
yum -y install ppp iptables
安装pptp
加入 yum 源加入 yum 源
rpm -Uvh http://poptop.sourceforge.net/yum/stable/rhel6/pptp-release-current.noarch.rpm
配置pptp
vi /etc/pptpd.conf
打开配置文件后找到下面两行
#localip 192.168.1.0 ##这个是VPN用的虚拟地址
#remoteip 192.168.1.0-238,192.168.1.245
将注释去掉并且把对用的网段改成你自己的(localip)
remoteip是指当客服端拨号过来时给客服端分配的ip范围
配置options.pptpd 文件
vim /etc/ppp/options.pptpd
打开或找到下面两行
ms-dns 4.2.2.2
ms-dns 4.2.2.1
配置iptables转发规则
iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -j SNAT --to-source 202.192.163.103
### 202.192.163.103 这个IP是你服务器eth0的地址,切勿照搬
含义是客服端拨号上来的数据都通过202.192.16.103这个ip出去
service iptables save
在这里还要修改下内核使其支持转发
vi /etc/sysctl.conf
将net.ipv4.ip_forward的值从0改为1,否则服务器将不会进行包转发操作
systcl -p
使其生效
接下来这个步骤有关你所做的一切成败!就是配置 iptables
iptables --flush POSTROUTING --table nat
iptables --flush FORWARD
iptables -A INPUT -p tcp -m tcp --dport 1723 -j ACCEPT
iptables -A INPUT -p gre -j ACCEPT
iptables -t nat -A POSTROUTING -s 192.168.1.1/24 -o eth0 -j MASQUERADE
service iptables save
service pptpd restart
service iptables restart
上面这些指令是创造一个192.168.1.*网段给连接上服务器上的 vpn 用户使用,并且通过 Server 上的网卡传送出去上网的封包
应为pptp 是以GRE (Generic Routing Encapsulqation)封包透过端口 1723 进行传送,并且还要设定vpn的网段是由哪个网路介面传送封包
常见的错误:
在连接 VPN 时 如果出现 807 错误,或者是其他错误,在排除账号密码,系统错误外,编辑 /etc/sysconfig/iptables 查看这里的规则是否正确
-A INPUT -p tcp -m tcp --dorp 1723 -j ACCEPT
-A INPUT -p gre -j ACCEPT
并且这两条规则不能在任何 " -A INPUT -j REECT ..." 的规则下面
将其一移到上方并且重启 iptables
下面就去是添加vpn站好了
vim /etc/ppp/chap-secrets
格式为四个字段 分别为 用户名, 服务器, 密码, ip地址 (* 代表根据你的pptp.conf文件进行随机分配设置)
格式如下
admin * 123abc? *
把服务加入开机启动
chkconfig pptpd on
chkconfig iptables on
启动服务
service pptpd start
service iptables start
文章评论
博客的小人好萌啊 还带语音 能否共享呢?
少些了 yum -y install pptpd
下面应该是sysctl -p