关闭

Ubuntu搭建VPN服务器pptpd安装配置

标签: vpn
39369人阅读 评论(0) 收藏 举报
分类:
在 Ubuntu 上搭建 VPN 服务器的方法非常多,比较著名的有 PPTP, L2TP/IPSec 和 OpenVPN。这三种方式中后两者的安全性比较好,但配置较麻烦。其中 OpenVPN 在 Windows/Mac 平台上还需要额外的客户端。而 L2TP/IPSec 方式虽然比较好,但我配置后,虽然 Windows 和 Linux 用户没有问题,但 Mac/iPhone 却始终无法连上,
PPTP 是这三者中配置最容易的方式,而且由于 Windows/Mac 系统中都内建相应的客户端,使用起来非常方便。
服务器环境是单网卡 eth0。
在 Ubuntu 中建立 pptp server 需要的软件包为 pptpd,用 apt-get 即可安装:
 sudo apt-get pptpd
系统会自动解决依赖关系,安装好后,需要进行一番设置。首先编辑 /etc/pptpd.conf
 sudo nano /etc/pptpd.conf
去掉文件最末端的 localip 和 remoteip 两个参数的注释,并进行相应修改。这里,localip 是 VPN 连通后服务器的 ip 地址,而 remoteip 则是客户端的可分配 ip 地址。
localip 10.100.0.1
remoteip 10.100.0.2-10
编辑好这个文件后,我们需要编辑 /etc/ppp/pptpd-options 文件,还是用 nano 编辑,命令这里就不写了。这里绝大多数参数只需维持原来的默认值即可,我们只需要改变其中的 ms-dns 选项,为 VPN 客户端指派 DNS 服务器地址:
 ms-dns 202.113.16.10
ms-dns 208.67.222.222
修改 /etc/ppp/chap-secrets 文件,这里面存放着 VPN 的用户名和密码,根据你的实际情况填写即可。如文件中注释所示,第一列是用户名,第二列是服务器名(默认写 pptpd 即可,如果在 pptpd-options 文件中更改过的话,注意这里保持一致),第三列是密码,第四列是 IP 限制(不做限制写 * 即可)。
全部搞定后,我们需要重启 pptpd 服务使新配置生效:
 sudo /etc/init.d/pptpd restart
找一台 Windows 电脑,新建个 VPN 链接,地址填服务器的 IP(或域名),用户名密码填刚才设置好的,域那项空着(如果你在 pptpd-options 中设置了,这里就保持一致),点连接就可以了。正常情况下您应该能够建立与服务器的 VPN 链接了。
建立连接之后,您会发现除了可以访问服务器的资源,其余内外和互联网的内容均无法访问。如果需要访问这些内容的话,我们还需要进一步设置:
首先,开启 ipv4 forward。方法是,修改 /etc/sysctl.conf,找到类似下面的行并取消它们的注释:
 net.ipv4.ip_forward=1
然后使新配置生效:
 sudo sysctl -p
有些时候,经过这样设置,客户端机器就可以上网了(我在虚拟机上这样操作后就可以了)。但我在实验室的服务器上这样操作后仍然无法访问网络,这样我们就需要建立一个 NAT。这里我们使用强大的 iptables 来建立 NAT。首先,先安装 iptables:
 sudo apt-get intall iptables
装好后,我们向 nat 表中加入一条规则:
 sudo iptables -t nat -A POSTROUTING -s 10.100.0.0/24 -o eth0 -j MASQUERADE
这样操作后,客户端机器应该就可以上网了。
但是,只是这样,iptables 的规则会在下次重启时被清除,所以我们还需要把它保存下来,方法是使用 iptables-save 命令:
 sudo iptables-save > /etc/iptables-rules
然后修改 /etc/network/interfaces 文件,找到 eth0 那一节,在对 eth0 的设置最末尾加上下面这句:
 pre-up iptables-restore < /etc/iptables-rules
这样当网卡 eth0 被加载的时候就会自动载入我们预先用 iptables-save 保存下的配置。
到此,一个 VPN Server/Gateway 基本就算架设完毕。当然,也许你按照我的方法做了,还是无法成功,那么下面总结一些我碰到的问题和解决方案:
无法建立 VPN 连接
安装好 pptpd 并设置后,客户端还是无法建立到服务器的连接。造成的原因可能有以下几种:
  1. 服务器端的防火墙设置:PPTP 服务需要使用 1723(tcp) 端口和 gre 协议,因此请确保您的防火墙设置允许这两者通行。
  2. 如果服务器在路由器后面,请确保路由器上做好相应的设置和端口转发。
  3. 如果服务器在路由器后面,那么请确保你的服务器支持 VPN Passthrough。
  4. 如果客户端在路由器后面,那么客户端所使用的路由器也必须支持 VPN Passthrough。其实市面上稍微好点的路由器都是支持 VPN Passthrough 的,当然也不排除那些最最最便宜的便宜货确实不支持。当然,如果你的路由器可以刷 DD-Wrt 的话就刷上吧,DD-Wrt 是支持的。
能建立链接,但“几乎”无法访问互联网
 这里我使用“几乎”这个词,是因为并不是完全不能访问互联网。症状为,打开 Google 搜索没问题,但其它网站均无法打开;SSH 可用,但 scp 不行;ftp 能握手,但传不了文件。我就遇到了这种情况,仔细 Google 后发现原来是 MTU 的问题,用 ping 探测了一下果然是包过大了。知道问题就好办了,我们可以通过 iptables 来修正这一问题。具体原理就不讲了,需要的自己 Google。这里只说解决方案,在 filter 表中添加下面的规则:
 sudo iptables -A FORWARD -s 10.100.0.0/24 -p tcp -m tcp --tcp-flags SYN,RST SYN
-j TCPMSS --set-mss 1200
 上面规则中的 1200 可以根据你的实际情况修改,为了保证最好的网络性能,这个值应该不断修改,直至能保证网络正常使用情况下的最大值。
好了,至此,一台单网卡 pptp-server 就算完成了。
2
0
查看评论

Ubuntu服务器搭建VPN(PPTP)

1. 安装pptpd$ sudo apt-get install pptpd编辑配置文件:$ sudo vi /etc/pptpd.conf找到最下面,修改ip:localip 你的服务器主机ip remoteip 10.100.0.2-10ps: 第二行为分配的ip段 2. 设置dns$ sudo...
  • hanshileiai
  • hanshileiai
  • 2015-10-17 17:01
  • 6866

Ubuntu16.04 搭建VPN服务

服务器环境服务器公网IP:122.204.204.204 服务器公网网关:122.204.204.129 服务器公网掩码:122.204.204.128服务器内网IP:192.168.71.131安装VPNPPTP协议我们要使用PPTP协议搭建VPN,首先验证服务器是否支持MPPE模块> ...
  • andybegin
  • andybegin
  • 2017-09-19 11:25
  • 1061

Ubuntu Server搭建OpenVPN服务器实战

0x00 实验背景 Server:选用腾讯云的云主机  Ubuntu Server 14.04.1 LTS 64位 Client-1:Acer笔记本 Win7 x64系统 Client-2:安卓机小米4  Android 6.0系统(MIUI8)   ...
  • qq_16253681
  • qq_16253681
  • 2016-07-23 10:35
  • 8699

Ubuntu14.04、16.04下搭建VPN服务

开个传送门:https://my.oschina.net/isnail/blog/363151 感谢大神的分享,致敬。 接下来附原文: 采用PPTP搭建VPN,优点是配置简单快捷。将亲身过程记录下来供亲们参考,并将过程中遇到的问题也一一列举出来解决方式。。。  ...
  • qq183837971
  • qq183837971
  • 2017-10-23 09:27
  • 919

Ubuntu Server下建立VPN服务器的方法

我们知道,VPN有很多种,比如Windows Server系列自己就带了VPN服务器,安装配置都非常简单,而今天我要在日志中介绍部署的,是Linux下的VPN-Server,基于PPTP协议。Ubuntu系统是基于Debian构造的一版发行版,交流社区非常活跃,而且因为基于Debian,他自己带的包...
  • yx511500623
  • yx511500623
  • 2015-06-08 15:30
  • 1062

Ubuntu14.04下搭建VPN服务

在Ubuntu14.04下采用PPTP搭建VPN,配置简单。 更新源 sudo apt-get update && sudo apt-get upgrade 安装PPTP PPTP是用来提供VPN服务 sudo apt-get install pptpd ...
  • inforstack
  • inforstack
  • 2016-12-22 13:54
  • 6762

Ubuntu16.04设置OpenVPN服务器

给一个超棒的把Ubuntu设置成可翻墙的VPN服务器的指导:(英文的,看给的命令就行,大段的说明可以略过): https://www.digitalocean.com/community/tutorials/how-to-set-up-an-openvpn-server-on-ubuntu-16-...
  • VictoriaW
  • VictoriaW
  • 2017-09-03 22:36
  • 2291

Ubuntu下搭建VPN服务器的方法

Ubuntu下搭建VPN服务器的方法
  • u012621115
  • u012621115
  • 2017-11-04 20:30
  • 950

ubuntu linux 连接vpn服务器(pptpd)

VPN,Virtual Private Network,虚拟专用网 此文讲的不是技术也不是寂寞,而是工具的使用,故VPN是什么和扯蛋的话就不说太多。提供两个链接 维基上的VPN 百度百科上的VPN 值得一提的是,VPN有IPsec,pptp,L2F,L...
  • AMDS123
  • AMDS123
  • 2017-04-05 16:15
  • 7340

Ubuntu16.04 搭建VPN服务

original url: http://www.jianshu.com/p/8ac024216888 步骤: 1.第一步需要安装PPTP,以用来提供VPN服务. sudo apt-get install pptpd 如果有问题的话比如提示找不到之类的,apt-get update 一下应该就...
  • junmuzi
  • junmuzi
  • 2017-03-15 15:47
  • 10764
    个人资料
    • 访问:844690次
    • 积分:8100
    • 等级:
    • 排名:第3030名
    • 原创:96篇
    • 转载:93篇
    • 译文:0篇
    • 评论:156条
    最新评论