• 当前位置: 主页 > Linux安装教程 > 软件安装 >

    Ubuntu vpn 配置_在Ubuntu下搭建VPN服务器的方法

    时间:2016-01-02 18:02来源:静觅 作者:Linux先生 举报 点击:
    湖南成人高考 湖南成人高考 
    VPN一般有比较著名的 PPTP, L2TP/IPSec 和 OpenVPN三种方式,后两种也比较安全,但是配置起来要麻烦一些,而且有的对于手机还要安装特定的客户端才能使用。

    VPN是什么?中文翻译叫做:虚拟专用网络。功能是,在公用网络上建立专用网络,进行加密通讯。

    适用的场合:

    1.你的公司网络在一个局域网,不能外部访问。有一天你外出度假了,想访问一下公司的内部网络,外网是不能直接访问的。如果公司的网络有一台主机设置了VPN,你就可以通过连上这台VPN主机,来访问公司内部网络啦。

    2.如果你的主机是在国外,你可以在这台主机上配置VPN,然后你的电脑连上VPN之后就可以翻墙啦。

    3.某台服务器(如游戏服务器)限制了一些IP连接到它上面,这时你配置VPN,连上VPN之后,就可以继续访问那台服务器咯。

    4.etc…

    我们以Ubuntu为例,说一下怎样配置VPN服务器。
     

    VPN一般有比较著名的 PPTP, L2TP/IPSec 和 OpenVPN三种方式,后两种也比较安全,但是配置起来要麻烦一些,而且有的对于手机还要安装特定的客户端才能使用。

    PPTP不仅配置方便,而且适用范围广,这次搭建VPN便是选择的着一种。对于Ubuntu,使用pptpd搭建VPN是搭建小型VPN服务器非常棒的选择。

    首先要安装pptpd:

    安装完之后再对pptpd进行一些设置,先对/etc/pptpd.conf进行设置主机IP和IP池

    然后删除掉下面配置信息的注释:

    第一个参数是VPN主机的IP,第二个参数是连入者的IP池。也可以不用默认的IP,自己自定义,一般会选择不常用的IP。

    更改完IP相关之后在修改DNS信息,在/etc/ppp/pptpd-options。国内的话一般选择114.114.114.114,国外的主机的话当然是8.8.8.8。

    找到ms-dns配置项目,删除他的注释,并重写DNS,比如:

    DNS根据自己的情况填写,我的第一个DNS服务器是校内网的DNS服务器。

    最后就是添加、修改用户的信息了,用户的配置文件在/etc/ppp/chap-secrets,我们再修改这个文件:

    然后就看到了client(用户名)、server(服务器名)、secret(密码)、IP addresses(IP限制),根据情况写就好,如果没有要求的花就只写用户名和密码,其他全用*号代替,但要注意这几项之间需要用空格分隔。

    我的配置文件如下:

    然后就可以重启pptd服务了。

    然后尝试来连接这个VPN服务器,一般情况下,不会出现什么问题,我也是一遍成功,而问题一般是出现下下面的步骤。

    当很顺利链接上VPN之后,发现并不能连接外网,如果用连接了VPN的设备随便ping一下的话,会发现除了VPN服务器什么都ping不同,连 VPN服务器的网关都ping不通。所以我们还需要先打开ipv4 forward,它在配置文件/etc/sysctl.conf中:

    在其中找到下面配置信息,并删掉它的注释使其生效:

    然后使配置生效:

    网上说这样就一般可以正常上网了,但是经过我的测试,这种“一般”然而并没有发生,但是VPN服务器的确是可以连接外网的,所以就有需要加一个NAT路由规则。

    首先继续安装一个叫做iptables软件:

    然后向 nat 表中加入一条规则:

    其中有两个地方需要注意,一个是192.168.0.1那个部分,那个IP即是配置/etc/pptpd.conf信息的时候本机IP(配置文件 localip后面带的ip)。第二个就是eth0,这个是VPN能连接外网的那个网卡,可以用ifconfig来查看连接外网的到底是哪个网卡,比如我 是在一个局域网内测试的,我的VPN服务器获得的IP为192.168.1.124,ifconfig获得如下信息:

    外网网卡,也就是192.168.1.124那个网卡,明显就是etho。

    但是,iptables 的规则会在下次重启时被清除,所以我们还需要把它保存下来,方法是使用 iptables-save 命令:

    然后修改 /etc/network/interfaces 文件,找到 eth0 那一节,在对 eth0 的设置最末尾加上下面这句:

    这样当网卡 eth0 被加载的时候就会自动载入我们预先用 iptables-save 保存下的配置。
    到此,一个VPN服务器配置到此完成。

    最后:

    在我配置这个VPS的时候遇到了一个问题,就是连接VPN的设备可以ping通任何网站,可以正常使用QQ客户端,但是却不能正常浏览网页,然后才知道有个叫MTU的东西。

    最大传输单元(Maximum Transmission Unit,MTU),也就是说,如果网卡传输的大小超过这个大小,就会分开数据包。之所以会产生这种情况,可以参见上面我ifconfig的信息,ppp0的MTU是1396,太小了,所以导致大数据包上不去网,改为1496就正常了。

     
    sudo ifconfig ppp0 mtu 1496

     

    推荐内容