linux搭建vpn服务器步骤详解
vpn服务器的搭配小编介绍过很多的文件了,在这里小编来为各位再次分享一篇linux搭建vpn服务器教程,希望对各位有帮助.
PPTP 的配置主要有下面五个步骤:
验证内核是否加载了 MPPE 模块,安装所需的软件包,配置 PPP 和 PPTP 的配置文件,打开内核的 IP 转发功能,启动 pptpd 守护进程,配置 iptables 防火墙放行和转发规则.
详细步骤:
1.验证内核是否加载了MPPE模块:基本都安装过了,所以略过.
2.安装所需的软件包:ppp
PPTP 使用 PPP 协议对用户数据进行封装,然后将 PPP 数据帧封装在 IP 数据报里,经由 IP 网络传播,因此首先需要支持 PPP 协议,下面命令安装 ppp:
- yuminstall-yppp
- pptpd
有了 PPP 协议支持,接下来安装 pptpd,首先到这里找到最新版适合你的平台的 pptpd,然后还需要根据内核选择 32 位或者 64 位的包,找到正确的软件包以后,复制其 URL,然后用 wget 下载到 root 的家目录,或者用 rpm -ivh URL 直接安装也行,譬如我的 64 位内核 CentOS,使用下面命令下载:
- wgethttp://poptop.sourceforge.net/yum/stable/packages/pptpd-1.4.0-1.el6.x86_64.rpm
- rpm-ivhpptpd-1.4.0-1.el6.x86_64.rpm
3.配置:ppp
配置 ppp 需要编辑它的两个配置文件,一个是 option(选项)文件,一个是用户账户文件,首先编辑 option 文件:
vim /etc/ppp/options.pptpd
查找ms-dns,修改:
- ms-dns8.8.8.8
- ms-dns8.8.4.4
接下来修改另一个,存储着用户账户的文件:
vim /etc/ppp/chap-secrets
这个文件非常简单,其中用明文存储 VPN 客户的用户名、服务名称、密码和 IP 地址范围,每行一个账户:
- username1pptpdpasswd1*
- username2pptpdpasswd2*
其中第一第三列分别是用户名和密码,第二列应该和上面的文件 /etc/ppp/options.pptpd 中 name 后指定的服务名称一致,最后一列限制客户端 IP 地址,星号表示没有限制.
- pptpd
- vim/etc/pptpd.conf
修改如下两行:
- localip192.168.0.1
- remoteip192.168.0.207-217
两行是比较重要的两行,VPN 可以这样理解,Linux 客户端使用一个虚拟网络设备 ppp0(Windows 客户端也可以理解成 VPN 虚拟网卡),连接到服务器的虚拟网络设备 ppp0 上,这样客户端就加入了服务器端 ppp0 所在的网络,localip 就是可以分配给服务器端 ppp0 的 IP 地址,remoteip 则是将要分配给客户端 ppp0(或者虚拟网卡)的.
这两项都可以是多个 IP,一般 localip 设置一个 IP 就行了,remoteip 则视客户端数目,分配一段 IP,其中 remoteip 的 IP 段需要和 localip 的 IP 段一致.
localip 和 remoteip 所处的 IP 段可以随意些指定,但其范围内不要包含实际网卡 eth0 的 IP 地址,一般情况下,使用上面配置文件中的配置就好使了,你需要做的只是把 192.168.0.207-217这个 IP 区间修改成你喜欢的 192.168.0.a-b,其中 1<a<b<255.
4.打开内核ip转发功能
要使 VPN 服务器可以作为网络请求的中转代理,能够使客户端通过 VPN 访问 Internet,还需要开启内核的 IP 转发功能,可以编辑配置文件:
vim /etc/sysctl.conf
找到其中的行:net.ipv4.ip_forward = 0
修改为:net.ipv4.ip_forward = 1
然后执行下面命令使上述修改生效:sysctl -p
5.启动pptpd 守护进程
上面配置完成后,就可以启动 pptpd 进程并设置自动启动了.
- /etc/init.d/pptpdstart
- chkconfig--level35pptpdon
连接之后如果需要用户上网,还需要设置NAT,ip转发,在linux服务器上使用iptables,如下:
- iptables-tnat-F
- iptables-tnat-APOSTROUTING-s192.168.0.0/24-jSNAT--toxxx.xxx.xxx.xxx
- #xxx.xxx.xxx.xxx是你的ip
然后配置一下,还有关于iptable的配置,此处不多说了,参考如下:
此处我测试直接关闭了service iptables stop.
热门评论