——最后更新于2017.8.11 12:15.如因时间过久而失效,请留言指出!
环境:美国单网卡多公网IP服务器,Linux(ubuntu 16.04)
开始之前:
需确保系统已联网。ubuntu在系统部署期间如果配置正确(我这里设置的是与物理机同网段,服务器用掉一个公网IP),安装完成之后只需设置一下DNS服务器即可:
vi /etc/resolv.conf
nameserver x.x.x.x
nameserver x.x.x.x
vi /etc/ppp/options ms-dns 8.8.8.8 ms-dns 223.5.5.5
首先是先安装PPTP:
apt-get update apt-get install pptpd
开始配置pptp:
PPTP需要配置的几个文件分别是:
/etc/ppp/chap-secrets 配置用户、密码、获取的内网IP等 /etc/network/interface 配置网络(包含IP地址、网关、掩码、接口是否自动启动等等) /etc/pptpd.conf 配置PPTP使用到的公网及内网地址 /etc/sysctl.conf 配置ip地址转发(不设置则无法访问外网) /etc/rc.local 配置开机启动项(这里我们会添加防火墙规则、PPTP重启)
chap-secrets配置:
配置格式:
用户名 pptpd 密码 获取的内网地址
如:test pptpd 123456 192.168.100.1
这里你有多少的公网IP,你就设置多少个用户名,之后会通过与之对应的内网IP从公网IP出去(具体见防火墙规则)
interface 配置:
配置格式(网卡子接口,我这里网卡名称是eth0,所以以这个为例,你有可能是ens33等等):
auto eth0:0 --自动启用eth0:0 iface eth0:0 inet static --设置静态IP address 107.174.166.3 --IP地址 netmask 255.255.255.0 --掩码 gateway 66.225.198.105 --网关地址
这里你有多少个公网IP,你就得生成多少个子接口。比如你有100个,你就得配置0-99个接口。
举例:
pptpd.conf 配置:
配置格式:
#localip 192.168.0.1 #remoteip 192.168.0.234-238,192.168.0.245 # or #localip 192.168.0.234-238,192.168.0.245 #remoteip 192.168.1.234-238,192.168.1.245
举例:我有1.1.1.2-254,2.2.2.2-254,3.3.3.2-254这些公网IP,则可以这样配置:
localip 1.1.1.2-254 localip 2.2.2.2-254 localip 3.3.3.2-254 remoteip 192.168.1.2-254 remoteip 192.168.2.2-254 remoteip 192.168.3.2-254
内网IP可随意,只要你记住对应关系。
sysctl.conf 配置:
去掉net.ipv4.ip_forward = 1前面的#号让它生效,之后再执行sysctl -p使之生效即可。
rc.local 配置:
在exit 0前面添加防火墙规则:
iptables -t nat -A POSTROUTING -s 内网IP -j SNAT --to-source 公网IP
同理,有多少个公网IP则增加多少条规则。
在最后需增加PPTP重启命令:
service pptpd restart
举例:
配置好rc.local,还需要给予该文件开机执行的权限:
chmod +x /etc/rc.local
因需要配置的重复命令较多,附上个人的批量脚本:
以批量增加IP为例:
# !/bin/bash for ((i=0;i<=252;i=i+1)) do echo "auto eth0:$i">>/etc/network/interfaces echo "iface eth0:$i inet static">>/etc/network/interfaces let j=$i+2 echo "address 17.17.141.$j">>/etc/network/interfaces echo "netmask 255.255.255.0">>/etc/network/interfaces echo "gateway 78.215.21.203">>/etc/network/interfaces echo " ">>/etc/network/interfaces done # end
最后,该文章心得属于本人原创,请勿抄袭!