PPTP配置多ip出口vpn

此方法是用iptables,通过路由指定ip出口。能实现指定vpn帐号使用vps指定公网ip出口。

安装vpn软件pptp:

apt-get -y --force-yes install pptpd

进行设置:

cat >>/etc/pptpd.conf<<EOF
localip 10.6.0.1
remoteip 10.6.0.2-245
EOF

cp /etc/ppp/pptpd-options /etc/ppp/pptpd-options.bak

cat>/etc/ppp/pptpd-options<<EOF
name pptpd
refuse-pap
refuse-chap
refuse-mschap
require-mschap-v2
require-mppe-128
ms-dns 8.8.8.8
ms-dns 8.8.4.4
proxyarp
nodefaultroute
debug
lock
nobsdcomp
EOF

vim /etc/sysctl.conf

将#net.ipv4.ip_forward=1前面 # 去掉(也就是取消注释)

sysctl -p

添加登陆帐号和密码,并指定ip,这样一个用户就只能同时登陆一个。

cat >/etc/ppp/chap-secrets<<EOF
user1 * password 10.6.0.2
user2 * password 10.6.0.3
EOF

设置iptables转发:

iptables -A FORWARD -p tcp --syn -s 10.6.0.0/24 -j TCPMSS --set-mss 1356
iptables -I INPUT -p tcp --dport 1723 -j ACCEPT
iptables -A INPUT -p gre -j ACCEPT
iptables -t nat -A POSTROUTING -s 10.6.0.2 -j SNAT --to-source "1.1.1.1"
iptables -t nat -A POSTROUTING -s 10.6.0.3 -j SNAT --to-source "2.2.2.2"

1.1.1.1和2.2.2.2换成你的vps公网

然后重启pptp :

/etc/init.d/pptpd restart

这样,你用user1登陆的时候,出口ip就是1.1.1.1;你用user2登陆的时候,出口ip就是2.2.2.2

常见vpn错误处理:
错误800:修改vim /etc/ppp/pptpd-options文件,#号注释掉 require-mppe-128
错误619:

mknod /dev/ppp c 108 0

然后重启:

/etc/init.d/pptpd restart

如果vpn上网很慢,尝试用下面:

/sbin/iptables -I FORWARD -p tcp --syn -i ppp+ -j TCPMSS --set-mss 1356

附上一个批量添加账户的小脚本

#!/bin/bash
for ((i=3;i<=100;i=i+1));
do
    let j=$i+1
    echo "user$i * password 10.6.0.$j" >>/etc/ppp/chap-secrets
    echo "iptables -t nat -A POSTROUTING -s 10.6.0.$j -j SNAT --to-source \"104.238.202.$j\"" >>/root/ipt.sh
done

发表评论

电子邮件地址不会被公开。 必填项已用 * 标注