现在家里的宽带都没有公网IP地址了,想要主动连接家里的电脑很难。因为我有一台公网服务器,所以就想通过vpn来实现远程连接家里的设备。我们要做的就是家里的设备和我的设备同时连入VPN,这样我们就在一个局域网了。
在Linux中用xl2tpd建立L2TP协议的VPN连接需要两个配置文件,一个是给xl2tpd的配置文件,一个是给pppd的配置文件(xl2tpd会调用pppd)。
为说明方便,我们假设我们要建立的VPN连接的名字为testvpn,连到的l2tp服务器地址为xxx.xxx.xxx.xxx,用户名为someone,密码为passwordstring。那么该xl2tpd的配置文件应该如下所示:
/etc/xl2tpd/xl2tpd.conf
[lac testvpn] name = someone lns = xxx.xxx.xxx.xxx pppoptfile = /etc/ppp/peers/testvpn.l2tpd ppp debug = no
[lac testvpn]这一句将VPN连接的名字设置为testvpn
name = someone这一句将您的用户名配置为someone
lns = xxx.xxx.xxx.xxx这一句说明你要连接的服务器的地址为xxx.xxx.xxx.xxx
pppoptfile = /etc/ppp/peers/testvpn.l2tpd告诉xl2tpd为该VPN连接调用pppd时,pppd的配置文件的路径为/etc/ppp/peers/testvpn.l2tpd
下面,我们还需要一个pppd的配置文件,也就是之前提到的/etc/ppp/peers/testvpn.l2tpd。该pppd配置文件应该如下所示:
remotename testvpn user "someone" password "passwordstring" unit 0 nodeflate nobsdcomp noauth persist nopcomp noaccomp maxfail 5 debug
remotename testvpn,这一句将VPN连接的名字设为testvpn,您应该把它改成您想要的名字
user “someone”,这一句将VPN连接的用户名设为someone,您应该把它改成您真正的用户名
password “passwordstring”,这一句将VPN连接的密码设为passwordstring,您应该把它改成您真正的密码
至此,所有准备工作都完成了,下面我们需要做几件事情:
1.切换到root用户
2. 检查目录/var/run/xl2tpd是否存在。不存在的话,手动新建一个。
3.启动xl2tpd
在终端中输入下列命令并回车:
xl2tpd -c /etc/xl2tpd/xl2tpd.conf
4.建立VPN连接。
在终端中输入下列命令并回车:
echo 'c testvpn' >/var/run/xl2tpd/l2tp-control
5.查看VPN连接是否成功建立:
centos可以通过日志查看
tail -f /var/log/messages
或用ifconfig查看,如果有ppp0的信息说明连接成功了。
6.如果顺利的话,至此VPN连接已经成功建立,但是如果想让默认连接都走VPN的话(这也是通常的情况),我们还需要修改路由配置。
在终端中输入下列命令并回车:
route del default route add -net 0.0.0.0 netmask 0.0.0.0 dev ppp0
7.断开VPN连接
在终端中输入下列命令并回车:
echo 'd testvpn' >/var/run/xl2tpd/l2tp-control
PS:如果你觉得以上这些难以理解的话,可以使用vpnpptp软件帮助你建立L2TP协议的VPN连接(全图形化界面,非常方便)
项目地址:http://code.google.com/p/vpnpptp/
本文来源:http://nanjingabcdefg.is-programmer.com/posts/25458.html
本人补充:最后配置路由的时候出了点问题,删了默认路由后vpn的连接会断开,再设置ppp0的路由会出错,因为ppp0已经断开了。我解决办法是加一条到VPN服务器的路由,再把网关路由设到ppp0,路由的设置会再发一文。
转载请注明:HANLEI'BLOG » linux配置xl2tpd客户端vpn