记录、分享
一直在路上

Linux下搭建多用户多公网出口PPTP服务器

——最后更新于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

 

最后,该文章心得属于本人原创,请勿抄袭!


打赏
欢迎转载,请注明出处:轻时代 » Linux下搭建多用户多公网出口PPTP服务器

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址