Linux

2个成员

Ubuntu14.04用PPTP搭建VPN

发表于 2017-10-26 6410 次查看

采用PPTP搭建VPN,优点是配置简单快捷。将亲身过程记录下来供亲们参考,并将过程中遇到的问题也一一列举出来解决方式。。。

准备工作

1.先看看你的主机是否支持pptp,返回结果为yes就表示通过。

 copy
 
  1. modprobe ppp-compress-18 && echo yes  

2 .是否开启了TUN,有的虚拟机主机需要开启,返回结果为cat: /dev/net/tun: File descriptor in bad state。就表示通过

 copy
 
  1. cat /dev/net/tun  

 

开始安装

1.第一步需要安装PPTP,以用来提供VPN服务.

  1. sudo apt-get install pptpd  

如果有问题的话比如提示找不到之类的,apt-get update 一下应该就可以了,然后再来一次就会自动完成安装。

2.装好了之后我们需要进行配置一下以让它可以使用.
sudo vi /etc/pptpd.conf

 copy
 
  1. 取消掉以下 2 行的注释:  
  2. localip 192.168.0.1  
  3. remoteip 192.168.0.234-238,192.168.0.245  

分别是通过VPN连接后主机和客户端所使用的IP,可以自行修改。注意这个IP在下面还会用的到。

 

sudo vi /etc/ppp/options.pptpd #编辑,保存

 copy
 
  1. name pptpd                        #自行设定的VPN服务器的名字,可以任意  
  2. #refuse-pap                        #拒绝pap身份验证  
  3. #refuse-chap                      #拒绝chap身份验证  
  4. #refuse-mschap                 #拒绝mschap身份验证  
  5. require-mschap-v2             #为了最高的安全性,我们使用mschap-v2身份验证方法  
  6. require-mppe-128              #使用128位MPPE加密  
  7. ms-dns 8.8.8.8                   #设置DNS  
  8. ms-dns 8.8.4.4  
  9. proxyarp                            #启用ARP代理,如果分配给客户端的IP与内网卡同一个子网  
  10. #debug                              #关闭debug  
  11. lock  
  12. nobsdcomp  
  13. novj  
  14. novjccomp  
  15. #nologfd                            #不输入运行信息到stderr  
  16. logfile /var/log/pptpd.log    #存放pptpd服务运行的的日志  


3.然后我们需要分配账号给自己使用.

  1. sudo vi /etc/ppp/chap-secrets  
  2. 这个是用户列表文件  
  3. 在里面添加账户按如下格式  
  4. username  pptpd  "password"  *  
  5. username为你的用户名password为你的密码,<strong>密码用引号引起</strong>,最后的*号表示允许在任意IP连接到服务  


4.至此服务弄好了,如果你sudo service pptpd restart一下,就应该已经能连接到该VPN了,但是连接了之后会发现还访问不了外网。然后我们需要让他能访问外网。首先,

  1. sudo vi /etc/ppp/pptpd-options  
  2. 找到ms-dns,取消掉注释,改成你喜欢的DNS比如114.114.114.114, 8.8.8.8, 8.8.4.4  


5.然后我们要开启内核IP转发

 copy
 
  1. sudo vi /etc/sysctl.conf  
  2. 取消掉 net.ipv4.ip_forward=1 这一行的注释.  
  3.   
  4. 修改立即生效  
  5. sysctrl -p  


6.然后我们需要安装iptables,用来实现请求的NAT转发

 copy
 
  1. sudo apt-get install iptables  
  2. 然后开启NAT转发.  
  3. sudo iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -o bond0 -j MASQUERADE  
  4. 192.168.0.0/24是你在上面设置的IP段,让这个段转发  


注意bond0是你连接外网的那块网卡,不一定是0也有可能是1或者看你的机器哪块网卡连的外网了。这样就以NAT的方式请求外网的东西了。不知道你的机器哪块网卡连的外网的话ifconfig一下看看哪个网卡是外网IP就知道了。

7.最后,我们需要重启服务,让配置生效 .

 copy
 
  1. sudo service pptpd restart  

 

调试:619错误

 copy
 

1、请检查上面的配置是否全部正常执行完毕  

2、运行下面的命令尝试修复  

       rm /dev/ppp  

       mknod /dev/ppp c 108 0  

3、若还是不行,运行下面的命令编辑pptpd.conf,并找到logwtmp,前面加#注释掉,再重启服务  

vi /etc/pptpd.conf  

4、请检查你的路由器是否支持PPTP穿透,请尝试连接公用VPN测试,或更换路由器测试,或直接连接宽带测试,若确实是路由器不支持PPTP穿透,可以尝试搭建L2TP VPN  

5、检查用户名密码是否有误  

注意上面修改文件sudo vi /etc/ppp/chap-secrets时,要给密码加上引号,这一点很重要  

6、请向服务提供商询问是否支持搭建VPN  

 

 

1回复
  • 2楼 sunny 2017-10-26

    1、卸载pptpd和iptables,重新安装pptpd

    #卸载pptpd

    $ apt-get autoremove pptpd

    $ apt-get purge pptpd

    #卸载iptables

    $ apt-get autoremove iptables*

    $ apt-get purge iptables*

    #安装pptpd

    $ apt-get install pptpd

    2、配置pptpd

    (1)首先,编辑pptpd.conf文件,设置localip和remoteip

    $ vim /etc/pptpd.conf

    查找到localip和remoteip,打开注释进行设置。将localip设置为你的vps的服务器公网ip,不知道可以通过ifconfig查看。remoteip是设置给VPN用户分配的IP段,我这里设置为10.100.0.2-100。

    localip VPS_IP

    remoteip 10.100.0.2-100

    (2)修改dns设置,设置为google的DNS

    $ vim /etc/ppp/pptpd-options

    查找到ms-dns,配置dns如下:

    ms-dns 8.8.8.8

    ms-dns 8.8.4.4

    (3)设置VPN的账号密码

    编辑chap-secrets文件

    $ vim /etc/ppp/chap-secrets

    在chap-secrets文件中添加一行配置

    #client server secret IP address

    liuchungui pptpd 123456 *

    其中,liuchungui是VPN的用户名,使用的VPN服务类型是pptpd,密码是123456,*代表不限制IP

    3、启动pptpd服务

    $ /etc/init.d/pptpd restart

    输入上面命令,如果提示`

    • Restarting PoPToP Point to Point Tunneling Server pptpd [ OK ] `
      就说明启动成功了

    4、设置系统的ipv4的转发开关

    $ vim /etc/sysctl.conf

    编辑/etc/sysctl.conf文件,找到net.ipv4.ip_forward=1,把这行的注释打开并保存。
    运行:sysctl -p 让上面的修改立即生效。

    5、配置iptables

    (1)安装iptables

    $ apt-get install iptables

    (2)添加一个NAT,这里特别注意:eth1是vps的ip网卡接口,可以通过ifconfig查看

    $ iptables -t nat -A POSTROUTING -s 10.100.0.0/24 -o eth1 -j MASQUERADE

    (3)设置MTU,防止包过大

    $ iptables -A FORWARD -s 10.100.0.0/24 -p tcp -m tcp --tcp-flags SYN,RST SYN -j TCPMSS --set-mss 1200

    (4)再添加一个NAT,45.62.119.172就是你的vps的公网ip

    $ iptables -t nat -A POSTROUTING -s 10.100.0.0/24 -j SNAT --to-source 45.62.119.172

    (5)将iptables规则保存,令重启后规则不丢失:

    $ iptables-save > /etc/iptables-rules

    (6)编辑网卡文件,加载网卡时自动加载规则

    $ vim /etc/network/interfaces

    在interfaces文件末尾加上:pre-up iptables-restore < /etc/iptables-rules

    (7)安装iptables配置持久化

    $ apt-get install iptables-persistent

    (8)运行保存配置命令

    $ service iptables-persistent start

发表回复
你还没有登录,请先登录注册