此方法是用iptables,通過路由指定ip出口。能實現指定vpn帳號使用vps指定公網ip出口。
安裝vpn軟件pptp:apt-get -y --force-yes install pptpd
進行設置:cat >>/etc/pptpd.conf<<EOF
localip 10.10.10.1
remoteip 10.10.10.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.10.10.2
user2 * password 10.10.10.3
EOF
設置iptables轉發:iptables -t nat -A POSTROUTING -s 10.10.10.2 -j SNAT --to-source "1.1.1.1"
iptables -t nat -A POSTROUTING -s 10.10.10.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