要在家继续项目的开发,但架设的GitLab只能校内访问,更悲催的是学校架设的SSL VPN不支持Linux,好在想起学校以前架设的L2TP VPN,应该可以支持Linux,于是便一通谷歌百度,然而发现搜到的这些文章,要么十分繁琐,要么无法配通,因此就写了这篇博文,一则方便以后检索,二则也能给有这方面需要的兄弟提供一个方便。

一、安装XL2TPD

安装xl2tpd很简单,至少在Ubuntu上是这样:

sudo apt-get install xl2tpd 二、配置XL2TPD

配置xl2tpd,需要修改它的配置文件(/etc/xl2tpd/xl2tpd.conf),如下所示:

sudo vi /etc/xl2tpd/xl2tpd.conf [global] port = 1701 access control = no [lac testvpn] lns = x.x.x.x ;您VPN服务器的IP地址或域名 redial = yes redial timeout = 15 max redials = 5 require chap = yes refuse pap = yes require authentication = yes name = name@your.org pppoptfile = /etc/ppp/options.l2tpd.testvpn ppp debug = no 其中比较关键的配置如下:

05行:[lac testvpn]是将VPN连接的名字设置为testvpn,您可以把它改成任何您想要的名字 
06行:lns的内容填入您VPN服务器的IP地址或域名 
10行:要求使用使用chap质询握手认证协议 
13行:name的内容需要填入您的用户名 
pppoptfile的内容则是您接下来要生成的选项文件名,具体创建过程如下: 
sudo vi /etc/ppp/options.l2tpd.testvpn asyncmap 0 noauth crtscts lock hide-password modem netmask 255.255.255.0 proxyarp lcp-echo-interval 30 lcp-echo-failure 4 ipcp-accept-local ipcp-accept-remote noipx 然后再配置一下chap认证所需的用户名和密码即可:

sudo vi /etc/ppp/chap-secrets # Secrets for authentication using CHAP # client        server  secret                  IP addresses name@your.org *       mypassword        * 其中name@your.org是用户名,它同xl2tp.conf配置文件中的name语句中的内容是一致的,而mypassword是该用户使用的密码。这样就配置好了xl2tpd了。

三、连接VPN

配置好了xl2tpd之后,为了要让它生效需要重启该服务:

sudo /etc/init.d/xl2tpd restart 然后使用下列命令连接VPN:

sudo -u root -H sh -c "echo 'c wzuvpn' > /var/run/xl2tpd/l2tp-control" 四、接下来的工作:

上述命令使用之后,并没有任何提示是否连接成功,为了检查连接是否成功,就需要使用以下指令来查看:

ifconfig ... ppp0      Link encap:点对点协议             inet 地址:10.63.1.2  点对点:10.63.1.1  掩码:255.255.255.255           UP POINTOPOINT RUNNING NOARP MULTICAST  MTU:1500  跃点数:1           接收数据包:4 错误:0 丢弃:0 过载:0 帧数:0           发送数据包:5 错误:0 丢弃:0 过载:0 载波:0           碰撞:0 发送队列长度:3            接收字节:40 (40.0 B)  发送字节:61 (61.0 B) 如下所示,使用ifconfig命令之后,如果看到有ppp0,则说明该VPN连接成功,否则请查看xl2tpd是否正常启动(这个常在重启机器后出现)。

VPN连接成功之后,并不能正常工作,它还缺乏两个关键的内容,一是到内网的路由,二是内网内部服务器的解析。比如我学校的服务器使用192.168.0.0/255.255.128.0这个网段,而内网地址分配则使用整个10网段,因此我将我家中的路由设置为192.168.254.0/24这个网段,这样就避免了访问家里网络的冲突:

sudo route add -net 192.168.0.0 netmask 255.255.128.0 dev ppp0 sudo route add -net 10.0.0.0 netmask 255.0.0.0 dev ppp0 上述两句表明通过ppp0来访问内网及内网服务器,这样查看机器上的路由如下所示:

route 内核 IP 路由表 目标            网关            子网掩码        标志  跃点   引用  使用 接口 default         dir-605         0.0.0.0         UG    0      0        0 eth0 10.0.0.0        *               255.0.0.0       U     0      0        0 ppp0 10.63.1.1       *               255.255.255.255 UH    0      0        0 ppp0 link-local      *               255.255.0.0     U     1000   0        0 eth0 192.168.0.0     *               255.255.128.0   U     0      0        0 ppp0 192.168.254.0   *               255.255.255.0   U     1      0        0 eth0 注意接口为ppp0的路由,千万不要象有些文章中写得那样,使用下列语句:

sudo route del default sudo route add -net 0.0.0.0 netmask 0.0.0.0 dev ppp0 想象一下,01行一执行,默认路由被删除,VPN连接就不可能不断了。

那么对内网服务器的解析如何来处理呢?如果只需要访问几个地址的话,可以直接在/etc/hosts文件中直接解析,如果需要访问很多地址的话,可以修改/etc/resolv.conf文件中的DNS服务器,在顶部添加新的内网DNS服务器即可。

五、断开VPN连接

断开VPN连接可以用以下语句来实现:

sudo -u root -H sh -c "echo 'd wzuvpn' > /var/run/xl2tpd/l2tp-control" 这样整个L2TP VPN的连接配置就介绍完了。

当然上述操作最好可以使用脚本来完成,由于没几句语句,所以就偷懒不写了,什么时候勤快了或更懒了,兴许会写出来,到时再更新吧!当然如果有兄弟看不下去,帮我写了那就最为完美了。一笑!

另:如果有部分服务连接不上的话,可以修改/etc/ppp/options.l2tpd.testvpn文件,通过添加mtu 1400来解决(当然1400这个值比较保守,要精确大小的话,可以通过分析该服务的包来计算精确值,这个比较复杂在这里就不详细说明了。

如何在Ubuntu 11.10上连接L2TP VPN的更多相关文章

  1. 如何在Ubuntu 14.10 上安装WordPress?

    http://codex.wordpress.org/zh-cn:安装WordPress 介绍 如果你想快捷.简单.免费的创建个人网站的话,WordPress 是你最佳的选择. WordPress 是 ...

  2. 在Ubuntu 11.10工具栏上用数字显示网速、CPU负荷和内存占用量『译』

    基本上照抄了<How To Display Network Upload / Download Speed On The Panel In Ubuntu 11.04>,只不过我的实践环境是 ...

  3. Ubuntu 11.10 (Oneiric)上编译带utrace补丁的内核 转

    Ubuntu 11.10 (Oneiric)上编译带utrace补丁的内核 首先准备linux内核编译环境: sudo apt-get install fakeroot build-essential ...

  4. 在Ubuntu 12.10 上安装部署Openstack

    OpenStack系统有几个关键的项目,它们能够独立地安装但是能够在你的云计算中共同工作.这些项目包括:OpenStack Compute,OpenStack Object Storage,OpenS ...

  5. 如何在Ubuntu 18.04上安装和配置Apache 2 Web服务器(转)

    如何在Ubuntu 18.04上安装和配置Apache 2 Web服务器 什么是Apache Web Server? Apache或Apache HTTP服务器是一个免费的开源Web服务器,由Apac ...

  6. 如何在Ubuntu 18.04上安装Go

    如何在Ubuntu 18.04上安装Go 谢鸢发表于云计算教程系列订阅98 介绍 课程准备 第1步 - 安装Go 第2步 - 设置Go路径 第3步 - 测试您的安装 结论 介绍 Go是Google开发 ...

  7. 如何在Ubuntu 16.04上安装Apache Web服务器

    转载自:https://www.howtoing.com/how-to-install-the-apache-web-server-on-ubuntu-16-04 介绍 Apache HTTP服务器是 ...

  8. 【转】ubuntu 11.10(32位系统)下编译android源码

    原文网址:http://www.cnblogs.com/dwayne/archive/2011/11/16/2251734.html 本文介绍在ubuntu 11.10系统下编译android 2.3 ...

  9. Ubuntu 11.10 安装GMONE3,卸载 UNITY和UNITY 2D

    Ubuntu 11.10安装GNOME3: 1)sudo apt-get install gnome-shell    sudo apt-get install gnome-themes*   (或者 ...

随机推荐

  1. C语言学习-数据结构 - 倒插法顺序表

    // test20161106.cpp : Defines the entry point for the console application. // #include "stdafx. ...

  2. 在 VS2013的ASPNET站点开发中用 xheditor v1.1.13 作为HTML编辑器

    要用vs2013开发一个博客站点,.net   framework  4,须要一个HTML编辑器作为写文章的工具.经多方试用,排除了dotnettextbox.kceditor.认为xheditor ...

  3. 生产环境使用Nginx+uwsgi部署Django

    在本地运行django应用相对来说还是挺方便的,使用自带的runserver启动即可.如果在生产环境部署django,就要多考虑一些问题了.比如静态文件处理,安全,效率等等 在网上找到了不错的部署的教 ...

  4. ANDROID定义自己的观点——模仿瀑布布局(源代码)

    转载请注明本文出自大苞米的博客(http://blog.csdn.net/a396901990),谢谢支持! 简单介绍: 在自己定义view的时候,事实上非常easy,仅仅须要知道3步骤: 1.測量- ...

  5. Elegant Box主题wpdb::prepare() 报错[已解决]

    整理书签,发现个网页,是解决Elegant Box主题与新版Wordpress3.5主题不兼容的(3.5改了一个函数的参数个数所致).记得当时使用NeoEase出的主题的时候两次遇到这个问题,费了点功 ...

  6. 【蜗牛—漫漫IT路之大学篇(九) 】

    再来一篇叨叨的博客 近期,状态还是那个状态,人还是那个人. 前两天,感冒了,可能是宿舍阴面的事吧.然后,中午睡觉的时候穿着短袖披了一件外套,然后鼻子就不通气了.只是,前天晚上,我骑着崔国强的车子跑了不 ...

  7. Andorid类似Fragment更换布置方法

    public void replaceRightView(View v) { int f = LinearLayout.LayoutParams.MATCH_PARENT; LinearLayout. ...

  8. 使用rem设计移动端自适应页面二(转载)

    由于日常需求以无线居多,所以可以在业务中做一些尝试,如 rem,刚接触这个特性的时候,曾经一度爱不释手,仿佛在无线开发的坎坷路上寻找到一条捷径.然而随着使用范围的扩大,慢慢的发现了一些使用 rem 带 ...

  9. CreateFont详细解释

    CFont * f;    f = new CFont;    f->CreateFont(10, // nHeight         0, // nWidth         0, // n ...

  10. 更新部分字段 NHibernate

    更新部分字段 NHibernate 概述: 在有些情况下,我只想更新记录中的一个字段的值.比如:浏览完这条记录后,我把其中的是否浏览置为1. Nhibernate中提供了Native SQL,其中有一 ...