Linux搭建PPTP技术的VPN 不同用户对应不同出口公网IP

相信有不少网友购买了VPS后,在有多个公网IP的前提下,有时有这样的需求,当使用不同的账户登录VPN时,希望出口的IP也随之不同,其实这样的实现方法不复杂。关键两点:一修改配置用户文件 /etc/ppp/chap-secrets,不同的用户对应不同的内网ip;二,设置iptables转发规则。    先简单介绍下关于PPTP的一键安装方式:
系统要求:CentOS 5 32bits/64bits
一键安装命令如下:

wget http://www.diahosting.com/dload/pptpd.sh; sh pptpd.sh

安装完成后会提示您VPN的用户名以及密码。
当然,如果您想自定义或是添加PPTP用戶以及密码的话,可以选择编辑配置文件添加新的用户与密码。

vi /etc/ppp/chap-secrets

添加用户与密码的格式如下:

用户1 pptpd 密码1 *

编辑完成后Ctrl+C退出编辑,然後输入:wq保存即可。    安装完上面的一键安装脚本后,我们已经获得了一个默认的vpn账户名和密码。那么如何修改成支持不同的用户登录,其获得的公网IP也不同呢?    步骤很简单
1,打开pptp配置文件,检查目前的ip配置情况:

vim /etc/pptpd.conf

记录最下面有类似这样的配置代码:

localip 172.16.36.1
remoteip 172.16.36.2-254

2,编辑pptp账户配置文件:

/etc/ppp/chap-secrets

配置IP信息如下:

u001 pptpd password001 172.16.36.2
u002 pptpd password002 172.16.36.3

3,通过防火墙策略,指点ip走不同的出口,设置iptables转发:

iptables -t nat -A POSTROUTING -s 172.16.36.2 -j SNAT –to-source 1.1.1.1
iptables -t nat -A POSTROUTING -s 172.16.36.2 -j SNAT –to-source 2.2.2.2

其中,1.1.1.1和2.2.2.2是对应的公网IP。你也可以直接更改 vim /etc/sysconfig/iptables 文件。
直接添加如下指令:

-A POSTROUTING -s 172.16.36.2 -j SNAT –to-source 1.1.1.1
-A POSTROUTING -s 172.16.36.3 -j SNAT –to-source 2.2.2.2

重启iptables:

/etc/init.d/iptables restart

4,启用服务器路由功能,以便支持iptables转发
编辑/etc/sysctl.conf文件:

vim /etc/sysctl.conf

将“net.ipv4.ip_forward”改为1:

net.ipv4.ip_forward=1

保存退出,并执行下面的命令来生效它:

sysctl -p