链接:http://www.ppkj.net/2011/04/30/ubuntu10-4-server-%E5%AE%89%E8%A3%85pptp%E6%97%A0%E6%B3%95%E8%BF%9E%E6%8E%A5%E5%A4%96%E7%BD%91%E8%A7%A3%E5%86%B3.html

PPTP是一个比较简单的VPN构建方式,但是很难找到比较全的说明文档。因此,记录一篇说明文档,详细记录架设VPN服务器以及总结一些其他比较容易遇到的问题。

安装PPTP
基本上安装pptp是比较简单的了,比如在我的CentOS6.4 x64上,只需要两个命令:

如果是Ubuntu的话,更加简单了:

apt-get install pptpd

配置IP地址
基本上程序的安装是全自动完成的了,下面需要进行一些简单的配置,编辑/etc/pptpd.conf ,在最后加入IP地址配置:

localip 10.0.0.1
remoteip 10.0.0.100-200

上面的IP地址是可以随便填的,ABC三类的内网地址都可以,主要兼顾其他地方的IP配置,不要出现IP冲突就可以了,后面的remoteip,默认从第一个10.0.0.100开始分配给客户,localip表示分配给服务器的内部网关地址。

配置客户端DNS
要配置客户端的dns,首先要确定配置文件,查看/etc/pptpd.conf中指定的option文件,如果没有指定,那就默认是/etc/ppp/pptpd-options,下面是我的默认配置文件,因此要修改/etc/ppp/pptpd-options.pptpd
在配置文件中加上:

ms-dns 202.96.128.86
ms-dns 202.96.128.166

这里配置成客户端所在地的DNS就好了。

配置VPN账号
然后是创建VPN的账号,账号保存在/etc/ppp/chap-secrets,我们打开编辑这个文件,按下面的格式加入自己的账号以及密码,依次为:账号,协议,密码,ip地址。

这里的ip地址如果明文表示静态分配,如果填*就表示动态分配。

启动服务
配置完毕,可以启动服务并且加入启动项了

service pptpd restart
chkconfig pptpd on

查看一下服务器是否在1723上面监听了

 配置系统转发
现在的VPN服务可以连上,但是不能通过VPN服务器进行转发,也就是不能够上网或者访问其他服务器等,需要开启系统转发和NAT。编辑系统配置文件/etc/sysctl.conf,设置如下值为1

net.ipv4.ip_forward = 1

如果未来ipv6普及了,估计应该就是改ipv6了,修改完毕之后要马上生效,使用命令

sysctl -p

配置防火墙转发

iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
iptables -t nat -A POSTROUTING -s 10.0.0.0/24 -o eth0 -j SNAT --to 115.115.115.115

其中第一种比较简单,自动伪装ip,第二种的10.0.0.0/24指的是VPN虚拟内网,而115.115.115.115代表外网地址,进行NAT。如果VPN服务器是用来代理上网的,仅有上面的配置会出现访问网站缓慢的情况,需要手动修改一下转发包的mss

iptables -A FORWARD -p tcp --syn -s 10.0.0.0/24 -j TCPMSS --set-mss 1356

这样就不会出现打不开网页的问题了,最后可以保存一下防火墙。

iptables-save

常见的问题
619错误
很多人在拨VPN的时候卡在验证用户名和密码,然后会出现619的错误,这种错误90%以上是由于客户端到服务器的网络中有设备不支持GRE协议或NAT-T造成的,最常见的是由于客户端的路由器等不支持造成的,在更换以后立马能拨上VPN。而这种错误在服务端的日志也有体现。例如

LCP: timeout sending Config-Requests

下面是双方加解密不一致的:

LCP terminated by peer (^O^XH-^@<M-Mt^@^@^@^@)

pptp需要用到的端口
pptp使用到的端口只有一个,那就是1723,网上有很多误人子弟的文章还说要开47端口,真是坑爹,因为GRE协议号是47,并不代表需要开47端口,因此如果是要映射端口的话,1723就完全够了,不要信网上的某些教程,如果使用了iptable来作为防火墙,需要加入规则

iptables -A INPUT -p tcp --dport 1723 -j ACCEPT
iptables -A INPUT -p 47 -j ACCEPT

如果是在内网中,需要网关转发,那么网关需要如下配置:

iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 1723 -j DNAT --to SERVER_IP
iptables -t nat -A PREROUTING -i eth0 -p 47 -j DNAT --to SERVER_IP

如需详细文档,可参考:
http://poptop.sourceforge.net/dox/

ubuntu10.4 server 配置VPN 安装pptp无法连接外网解决(转)的更多相关文章

  1. 使用virtualbox 配置 linux host-only虚拟主机连接外网(转载)

    host-only 下的虚拟机之间可以互相访问,虚拟机和宿主机可以互相访问,但是虚拟机不能访问外网. 需要设置: 1.宿主机设置 先对宿主机(windows机器,我这里是win7系统)进行相关配置. ...

  2. centos7安装后不能连接外网

    测试外网: 1,测访问外网能力:curl -l http://www.baidu.com 2,测访问外网能力:wget http://www.baidu.com 注:ping命令不一定能正确反映系统的 ...

  3. 超详细 安装VMware Workstation,并安装WIN10操作系统连接外网 步骤指导

    首先下载VMware Workstation15.1版本,我保存在迅雷链接里面,下载速度非常可观. 链接:https://pan.xunlei.com/s/VMRSt6hHMZXEmPZCm6gJcG ...

  4. VMware虚拟机 安装centos7并设置静态ip 连接外网

    首先下载VMware虚拟机:http://xzc.197746.com/VMware-Workstation-12.5.9.zip 然后下载centos7镜像:http://vault.centos. ...

  5. Vm安装虚拟机并使用net模式连接外网

    Vm安装虚拟机并使用net模式连接外网 最近想搭建一个maven私服和阿波罗配置中心一切准备就绪时 发现本地vm虚拟机无法连接外网,嗯 ~ ~ ,一句cnm不由从嘴里崩了出来.没办法,只能配置一下了接 ...

  6. Hyper-V虚拟机配置内部网络固定IP 并且连接外网

    2019/10/23 Hyper-V CentOS7 摘要:Hyper-V中的虚拟机CentOS7能固定IP并且连接外网 保证宿主机的Xshell始终只用同一个IP连接到该虚拟机 新建内部网络虚拟交换 ...

  7. Filezilla server配置FTP服务器中的各种问题与解决方法

    转至;https://www.jb51.net/article/122171.htm 安装文件以及补丁下载 公司很多资料需要通过ftp上传,那么就需要配置一个FTP服务器,找了一台Windows服务器 ...

  8. vmware 上ubuntu server连接外网

    最近在自己的电脑上搞了个ubuntu server,自己做点小demo,当需要连接网络时问题来了,没法连接网络,网上有一些资料都是一笔带过,并不符合自己的情况,现在将我解决的过程记录下: 首先,在自己 ...

  9. Win 10 连接公司VPN后不能上Internet外网

    当前用户配置 %AppData%\Microsoft\Network\Connections\Pbk 与所有用户共享配置 %ProgramData%\Microsoft\Network\Connect ...

随机推荐

  1. 【经验记录】Android上传文件到服务器

    Android中实现上传文件,其实是很简单的,和在java里面是一样的,基本上都是熟悉操作输出流和输入流!还有一个特别重要的就是需要配置content-type的一些参数!如果这些都弄好了,上传就很简 ...

  2. error LNK2019: unresolved external symbol / error LNK2001: 无法解析的外部符号

    在 vc++ 2008 和 vc++ 2010 编译时分别出现上面的错误.一般这种错误是由于引用函数未定义造成的,如外部类库未包含,实现代码未编写等. 但最终检查的结果,却是另外一种情况:文件名重名. ...

  3. 和Timesten有个约会--Timesten技术专栏系列(一)

    作者: 三十而立 时间:2009年10月03日 12:08:42 本文出自 “inthirties(三十而立)”博客,转载请务必注明作者和保留出处http://blog.csdn.net/inthir ...

  4. WWDC2015

     

  5. Flex中 Array 的IndexOf 的作用

    Flex中 Array 的IndexOf 的作用 1.说明    indexOf用于在索引中从小到大查找,假设查得到就返回索引值,查不到就返回-1: 2.实例 (1)设计源代码 <?xml ve ...

  6. currentTarget 与 Target 的区别

    在一般情况下,target与currentTarget指向的是同一个对象.一般情况是指我们只对某一个独立的mc添加侦听器.如下: var mc:Sprite=new Sprite();addChild ...

  7. MySQL join buffer使用

      原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://huanghualiang.blog.51cto.com/6782683/12 ...

  8. IP101A芯片默认物理地址(PHY Adress)确定

    转载:http://blog.csdn.net/ropai/article/details/6961157 根据IP101A的DataSheet,芯片的第9,10,12,13,15脚为PHYAD0~P ...

  9. SimpleAliasRegistry implements AliasRegistry

    Spring - 4.2.3 // name,alias存储容器 ConcurrentHashMap <alias,name>private final Map<String, St ...

  10. ie6双边距bug及其解决办法

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...