用xl2tpd建立L2TP协议的VPN连接&Ubuntu上图形化的L2TP VPN连接工具

所说的Ubuntu上图形化的L2TP VPN连接工具就是VPNPPTPL2tp over IPsec VPN啦,VPNPPTP以前介绍过,支持pptp/l2tp/openl2tp连接的图形化客户端,我也安装上了,就是测试不成功,不知到什么原因,L2TP Ipsec VPN Applet看起来很好啦,可惜我安装上后不能启动,看看它的介绍http://wiki.l2tpipsecvpn.tuxfamily.org/wiki/index.php?title=Main_Page图形化还好了,设置也简单。

VPNPPTP官网:http://code.google.com/p/vpnpptp/

l2tp-ipsec-vpn官网:https://launchpad.net/~werner-jaeger/+archive/ppa-werner-vpn

   上一篇文章L2TP setup howto on Debian/Ubuntu那个教程是英文的,这次找来个中文教程。

在Linux中用xl2tpd建立L2TP协议的VPN连接需要两个配置文件,一个是给xl2tpd的配置文件,一个是给pppd的配置文件(xl2tpd会调用pppd)。

为说明方便,我们假设我们要建立的VPN连接的名字为testvpn,连到的l2tp服务器地址为xxx.xxx.xxx.xxx,用户名为someone,密码为passwordstring。那么该xl2tpd的配置文件应该如下所示:

1
2
3
4
5
6
7
8
9
[global]
access control = no
port = 1701
[lac testvpn]
name = someone
lns = xxx.xxx.xxx.xxx
pppoptfile = /etc/ppp/peers/testvpn.l2tpd
ppp debug = no

实际使用中,我们一般只需要修改四处:

  1. [lac testvpn]这一句将VPN连接的名字设置为testvpn,你应该把它改成你想要的名字
  2. name = someone这一句将您的用户名配置为someone,你应该把它改成你想要的名字
  3. lns = xxx.xxx.xxx.xxx这一句说明你要连接的服务器的地址为xxx.xxx.xxx.xxx
  4. pppoptfile = /etc/ppp/peers/testvpn.l2tpd告诉xl2tpd为该VPN连接调用pppd时,pppd的配置文件的路径为/etc/ppp/peers/testvpn.l2tpd,你应该把它改成你真正建立的pppd的名字

以上这个文件被您修改并保存后,假设放在/etc/xl2tpd目录,名字为testvpn.options。

下面,我们还需要一个pppd的配置文件,也就是之前提到的/etc/ppp/peers/testvpn.l2tpd。

为此,我们打开/etc/ppp/peers目录,在其中新建一个文件testvpn.l2tpd(如果你在xl2tpd的配置文件中pppd配置文件写 的是/etc/ppp/peers/testvpn.l2tpd的话)。结合之前有关VPN连接的说明,该pppd配置文件应该如下所示:

1
2
3
4
5
6
7
8
9
10
11
12
13
remotename testvpn
user "someone"
password "passwordstring"
unit 0
lock
nodeflate
nobsdcomp
noauth
persist
nopcomp
noaccomp
maxfail 5
debug

实际使用,您一般只需要修改以下三处:

  1. remotename testvpn,这一句将VPN连接的名字设为testvpn,您应该把它改成您想要的名字
  2. user “someone”,这一句将VPN连接的用户名设为someone,您应该把它改成您真正的用户名
  3. password “passwordstring”,这一句将VPN连接的密码设为passwordstring,您应该把它改成您真正的密码

至此,所有准备工作都完成了,下面我们需要做几件事情:

1.切换到root用户

2. 检查目录/var/run/xl2tpd是否存在。不存在的话,手动新建一个。

3.启动xl2tpd

在终端中输入下列命令并回车:

1
xl2tpd -c /etc/xl2tpd/testvpn.options

你需要把/etc/xl2tpd/testvpn.options改成你的真正的xl2tpd配置文件的绝对路径(未测试相对路径是否可以)。

4.建立VPN连接。

在终端中输入下列命令并回车:

1
echo 'c testvpn' >/var/run/xl2tpd/l2tp-control

当然,你需要把testvpn改成你的VPN连接的名字(即xl2tpd的配置文件中,跟在lac后面的词语)。

5.查看VPN连接是否成功建立:

如果是Ubuntu的话,一般需查看/var/log/syslog文件,如果文件中pppd条目中出现succeeded等词语,说明连接成功,VPN连接已经成功建立

如果是Fedora的话,一般需改成查看/var/log/message文件。

事实上,查看的文件是由/etc/rsyslog.conf的内容决定的。

6.如果顺利的话,至此VPN连接已经成功建立,但是如果想让默认连接都走VPN的话(这也是通常的情况),我们还需要修改路由配置。

在终端中输入下列命令并回车:

1
2
route del default
route add -net 0.0.0.0 netmask 0.0.0.0 dev ppp0

至此,所有配置都已完成。

7.断开VPN连接

在终端中输入下列命令并回车:

1
echo 'd testvpn' >/var/run/xl2tpd/l2tp-control

当然,你需要把testvpn改成你的VPN连接的名字(即xl2tpd的配置文件中,跟在lac后面的词语)。

来源http://nanjingabcdefg.is-programmer.com/posts/25458.html

  1. AS
    2011年8月11日16:15

    http://code.google.com/p/pwx-dns-proxy/
    “希望有兴趣的亲能够参与到这个项目中,E-mail 至 airyai@gmail.com。谢谢~

    2011/8/9 版本 0.1 Alpha 2:
    修改了程序启动代码,不需要通过 twistd 运行。
    优化代码:UpstreamResolver, LocalResolver。
    UpstreamResolver 对 TCP 连接建立持久连接池,根据 config 文件的指定,在 timeout 之前 TCP 连接可以被复用。
    调整配置文件,只依赖一个 config 文件。hosts 可以在 config 文件中指定,也可以由 config 文件载入外部 hosts 文件。
    config 文件在不同平台上通过不同策略确定目录:
    增加控制台的日志输出。
    修正 hosts 文件格式,以符合操作系统的 hosts 表。
    修正 domain.py: lookup 函数,以修复一些域名映射的小问题。
    Linux 用户:
    请安装 Python 2.7,以及 Twisted-11.0。
    请通过 git 下载源代码。运行 run.sh 即可打开代理服务器。
    Windows 用户:
    下载 dnsproxy-0.1-alpha-2.rar,解压到任意文件夹。
    dnsproxy.exe 是主程序。下载之后,请修改 data/dnsproxy.conf:
    将 add_server(“isp”, “202.96.209.133”, 53, False) 里面的 202.96.209.133 修改成你的 ISP DNS。
    This DNS Proxy Server is based on Python and Twisted Framework, and it supports almost all DNS request types including A-type and AAAA-type (IPv6).

    这个 DNS 代理服务器是基于 Python 以及 Twisted 框架写成的,并且它支持几乎所有的 DNS 请求类型,包括 A 地址以及 AAAA 地址(IPv6)。

    DNS responses are cached, according to their TTL.

    远程服务器的 DNS 应答根据它们的 TTL 值将会被缓存在本地。

    Furthermore, more than one upstream servers can be configured to use, and each request will be forwarded to one particular server of them, according to the domain name requested.

    另外,这个服务器能够链接多个上游服务器,并且根据查询域名的不同,使用特定的服务器查询。

    TCP connection with upstream DNS server is also available, so it can avoid most DNS pollutions.

    在查询上游服务器的时候,可以使用 TCP 协议,而不是 UDP 协议。这样,就可以避免大部分 DNS 污染了。

    HOSTS table is also available, supporting addresses of IPv4 and IPv6.

    提供了本地 HOSTS 表的功能,支持 IPv4 和 IPv6 的地址。

    The project is originally aimed to provide an all-round DNS solution for people in China mainland, in that it can be used to get correct IP addresses of GFW blocked websites. Besides, when people in mainland China use VPN service to tunnel through GFW, they can enjoy the cached abroad DNS services, as well as the ISP awared CDN services of Chinese major sites.

    这个项目的初衷是为中国大陆的用户提供一个完整的 DNS 代理解决方案——因为它能够透过 GFW,获得被屏蔽的网站的真实 IP 地址。另外,当中国大陆的用户使用 VPN 翻墙的时候,他们既能够使用更安全的、国外的 DNS 服务器,也能够享受更快的上网速度——DNS 查询结果会被缓存,而且大陆拥有 CDN 的门户网站也能够通过 ISP 的 DNS 服务器查询地址,不至于翻山越岭到美国的服务器上访问这些门户网站的内容。”
    http://code.google.com/p/pwx-dns-proxy/downloads/list
    “dnsproxy-0.1-alpha-2.rar DNS Proxy 0.1 Win32 Alpha 2 Featured 2 days ago 2 days ago 4.7 MB “

    • iGFW
      2011年8月11日18:11

      感谢支持,已发。