ubuntu或archlinux下用xl2tpd连接zju的vpn

1558 查看

换了ubuntu 14.10,发现官方的openswan的包没出来,而ppa中的network-manager-l2tp依赖于openswan。不得已只能退回丑陋的命令行使用xl2tpd的方法。

配置xl2tpd

sudo apt-get install xl2tpd

/etc/xl2tpd/xl2tpd.conf中增加

[lac <config_name>]
lns = 10.5.1.9
redial = yes
redial timeout = 15
require pap = no
require chap = yes
require authentication = yes
name = <user_name>@a
ppp debug = no
pppoptfile = /etc/ppp/options.xl2tpd.zju

config_name随便填,不过要和后面脚本中的一致。user_name按自己需求来,一般是学号
pppoptfile的路径要和后面ppp的配置文件一致
注意lns必须是10.5.1.9, 另外两个.5和.7的ip都会出问题,不知道为啥

配置ppp

新建/etc/ppp/options.xl2tpd.zju

noauth
proxyarp
defaultroute

编辑/etc/ppp/chap-secrets(最好是把密码写到这个文件中来,而不是像archwiki中写到xl2tpd的配置文件中去,那种是比较老的做法)

# Secrets for authentication using CHAP
# client    server  secret          IP addresses
<user_name>@a * <password> *

注意那两个星号就是真的星号,表示server和client的ip都是任意的,字段直接都有一个空格

开始连接

连接

echo "c <config_name>" > /var/run/xl2tpd/l2tp-control

断开

echo "d <config_name>" > /var/run/xl2tpd/l2tp-control

都需要root权限,config_name是刚才在在xl2tpd.conf中提到的那个

连接成功了吗

ifconfig

如果你看到了ppp0或者其他ppp设备,并且ip是222.205开头的,那一般是连接成功了

如果没有,请查看日志

tail /var/log/syslog

更改路由

对,做完了前面几步还是不能直接上网
对,用命令行就是这么不智能,还得手动改路由
最简单的方法是,把原来的默认路由删掉,改成全经由ppp0

route del default eth0
route add default ppp0

但这样会导致访问内网时也要从vpn server那里转一圈,会被限速
所以最好保持一些静态路由,具体怎么设置就不再赘述了
对了,断开连接之前也要把ppp0的所有路由都删掉哦

如果做完这一步不能上网,请务必确保你的lns填的是10.5.1.9
而不是10.5.1.510.5.1.7lns.zju.edu.cn