我们学校用的是锐捷拨号上内网,VPN拨号上外网【其用的是L2TP协议】;原先我用ubuntu8.04版本的时候在网上找到了解决上内外网的方法,现在我想用redflag6.0系统,但是用上面找到的方法只能成功连接内网,无法连接外网,我是菜鸟,什么也不太懂,所以把原先在ubuntu8.04上能连接外网的方法发一下,小弟我诚心(6)m:b 希望各位大哥大姐帮帮忙,指出在redflag6.0下应该怎么改;刚想认真学习一下linux,想不到挫折竟然这么大!
ubuntu8.04下vpn上网方法:
在Linux使用L2TP协议的VPN拨号,可以使用xl2tpd,它的源代码可以在http://www.xelerance.com/software/xl2tpd/下载。
要使用xl2tpd,需要先编译,把它复制到/usr/local/bin,并用chmod 777 xl2tpd把它改成可执行的。
安装完xl2tpd之后修改以下几个文件:
/etc/xl2tpd/xl2tpd.conf
在/etc/xl2tpd/xl2tpd.conf中添加一个lac段。
引用内容:
[lac zstubras]
lns=61.130.10.217
redial=yes
redial timeout=15
max redials=5
require pap=yes
require chap=yes
require authentication=yes
name=这里改成你的用户名
ppp debug=no
pppoptfile=/etc/ppp/options.l2tpd
其中61.130.10.217是VPN拨号服务器,name是用户名,用网络中心给的就行。
使用require pap=yes开关是因为我用chap协议认证总是连接不上,而使用pap就行了。
/etc/ppp/options.l2tpd
接着修改/etc/ppp/options.l2tpd,这个文件里保存了拨号时的一些选项,如果没有这个文件可以新建一个,将文件内容改成以下内容:
引用内容:
noauth
proxyarp
defaultroute
/etc/ppp/pap-secrets
这里保存了使用pap协议认证时的用户名和密码,注意用户名需要与xl2tpd.conf中的name对应。在文件的最后加上一行:
引用内容:
username * password *
其中username和password是VPN拨号的用户名和密码。
/etc/ppp/chap-secrets
同上,这个是使用chap协议认证时所用的用户名和密码,保险起见,两个认证方式我们都加上用户名和密码。
引用内容:
username * password *
3. 配置拨号脚本
在配置完xl2tpd之后,还需要写一个拨号脚本,来控制xl2tpd进行VPN拨号。
将以下脚本存为/usr/local/sbin/bras-ctrl,可以使用命令sudo gedit /usr/local/sbin/bras-ctrl来创建。
如果直接复制过去保存后运行出现错误的话,那就可能因为换行符的问题,你需要自己把这些输入进去了。
注意:脚本中GATEWAY对应网关,route命令中的路由添加需要根据自己的网络环境来设置,还有拨号服务器的地址也要修改。
程序代码:[ 复制代码到剪贴板 ]
#!/bin/sh
case $1 in
route)
GATEWAY=10.9.232.1
{
route $2 -net 220.189.211.160 netmask 255.255.255.224 gw $GATEWAY
route $2 -net 218.108.82.160 netmask 255.255.255.240 gw $GATEWAY
route $2 -net 10.0.0.0 netmask 255.0.0.0 gw $GATEWAY
route $2 -net 172.16.0.0 netmask 255.240.0.0 gw $GATEWAY
route $2 -net 192.168.0.0 netmask 255.255.0.0 gw $GATEWAY
route $2 -net 210.32.24.0 netmask 255.255.252.0 gw $GATEWAY
route del default
if [ "$2"=="add" ]
then
# 此处host为拨号服务器地址
route add -host 61.130.10.217 eth0
fi
if [ "$2"=="del" ]
then
route add -net default gw $GATEWAY
fi
}&>/dev/null
modprobe ip_nat_ftp
;;
start)
mkdir /var/run/xl2tpd
echo '''' > /var/run/xl2tpd/l2tp-control
xl2tpd
sleep 5
echo ''c zstubras'' > /var/run/xl2tpd/l2tp-control
;;
stop)
echo ''d zstubras'' > /var/run/xl2tpd/l2tp-control
;;
*)
echo ''Please specify your action: route add/del | start | stop''
;;
esac
4. 使用bras-ctrl拨号
在使用bras-ctrl之前,同样需要root权限,你可以用sudo bras-ctrl来运行,也来可以先用sudo -i切换到root。那么我假定已经切换到root,首先添加路由:
引用内容:
bras-ctrl route add
接着发送一个连接zstubras的命令给xl2tpd:
引用内容:
bras-ctrl start
引用内容:
route add default dev ppp0【按着说明搞到这里,就出现了什么没有默认设备的错误】
[ 本帖最后由 liangwei 于 2008-7-2 23:06 编辑 ]
homey123 于 2009-01-01 16:27:36发表:
以下是我的连接调试过程:
连接失败后,查看日志文件
root@ubuntu:~# cat /var/log/syslog
.............
Jan 1 15:55:59 power xl2tpd[14977]: start_pppd: I'm running:
Jan 1 15:55:59 power xl2tpd[14977]: "/usr/sbin/pppd"
Jan 1 15:55:59 power xl2tpd[14977]: "passive"
Jan 1 15:55:59 power xl2tpd[14977]: "-detach"
Jan 1 15:55:59 power xl2tpd[14977]: ":"
Jan 1 15:55:59 power xl2tpd[14977]: "auth"
Jan 1 15:55:59 power xl2tpd[14977]: "require-pap"
Jan 1 15:55:59 power xl2tpd[14977]: "require-chap"
Jan 1 15:55:59 power xl2tpd[14977]: "name"
Jan 1 15:55:59 power xl2tpd[14977]: "user111"
Jan 1 15:55:59 power xl2tpd[14977]: "file"
Jan 1 15:55:59 power xl2tpd[14977]: "/etc/ppp/options.xl2tpd"
Jan 1 15:55:59 power xl2tpd[14977]: "/dev/pts/1"
Jan 1 16:02:48 power xl2tpd[19006]: parse_config: line 13: data 'port = 1701' occurs with no context
Jan 1 16:02:48 power xl2tpd[19006]: init: Unable to load config file
将/etc/xl2tpd/xl2tpd.conf文件中的 [global] port = 1701注释掉后,再次连接
root@ubuntu:~# cat /var/log/syslog
.....................
Jan 1 16:15:14 power xl2tpd[19455]: Connecting to host 17.66.195.116, port 1701
Jan 1 16:15:14 power xl2tpd[19455]: Connection established to 17.66.195.116, 1701. Local: 12392, Remote: 27 (ref=0/0).
Jan 1 16:15:14 power xl2tpd[19455]: Calling on tunnel 12392
Jan 1 16:15:15 power xl2tpd[19455]: Call established with 17.66.195.116, Local: 47597, Remote: 1, Serial: 2 (ref=0/0)
Jan 1 16:15:15 power xl2tpd[19455]: start_pppd: I'm running:
Jan 1 16:15:15 power xl2tpd[19455]: "/usr/sbin/pppd"
Jan 1 16:15:15 power xl2tpd[19455]: "passive"
Jan 1 16:15:15 power xl2tpd[19455]: "-detach"
Jan 1 16:15:15 power xl2tpd[19455]: ":"
Jan 1 16:15:15 power xl2tpd[19455]: "refuse-pap"
Jan 1 16:15:15 power xl2tpd[19455]: "auth"
Jan 1 16:15:15 power xl2tpd[19455]: "require-chap"
Jan 1 16:15:15 power xl2tpd[19455]: "name"
Jan 1 16:15:15 power xl2tpd[19455]: "user111"
Jan 1 16:15:15 power xl2tpd[19455]: "file"
Jan 1 16:15:15 power xl2tpd[19455]: "/etc/ppp/options.xl2tpd"
Jan 1 16:15:15 power xl2tpd[19455]: "/dev/pts/1"
Jan 1 16:15:15 power pppd[20733]: pppd 2.4.4 started by root, uid 0
Jan 1 16:15:15 power pppd[20733]: Using interface ppp0
Jan 1 16:15:15 power pppd[20733]: Connect: ppp0 <--> /dev/pts/1
Jan 1 16:15:18 power pppd[20733]: CHAP authentication succeeded: We welcome you.
Jan 1 16:15:18 power pppd[20733]: CHAP authentication succeeded
Jan 1 16:15:22 power pppd[20733]: not replacing existing default route via 10.10.10.1
Jan 1 16:15:22 power pppd[20733]: Cannot determine ethernet address for proxy ARP
Jan 1 16:15:22 power pppd[20733]: local IP address 192.168.15.1
Jan 1 16:15:22 power pppd[20733]: remote IP address 192.168.1.7
连接成功。
root@power:~# ifconfig ppp0
ppp0 Link encap:点对点协议
inet 地址:192.168.15.1 点对点:192.168.1.7 掩码:255.255.255.255
UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1500 跃点数:1
接收数据包:6 错误:0 丢弃:0 过载:0 帧数:0
发送数据包:6 错误:0 丢弃:0 过载:0 载波:0
碰撞:0 发送队列长度:3
接收字节:108 (108.0 B) 发送字节:89 (89.0 B)
root@power:~#
你应该是还未连接成功,所以设置网关会报错误。
需要注意的一个地方,如果在windows下使用l2tp连接VPN服务器时需要设置(缺省的Windows XP L2TP 传输策略不允许L2TP 传输不使用IPSec 加密)。
并且需要改注册表增加ProhibitIpSec字段才能连接成功时。
Linux下需要做同样的设置:
增加配置文件 /etc/ppp/options.l2tpd
root@power:~# cat /etc/ppp/options.l2tpd
lock
noauth
proxyarp
root@power:~#
/etc/ppp/options.xl2tpd配置中增加
[lac ....]
....
pppoptfile=/etc/ppp/options.l2tpd
[ 本帖最后由 homey123 于 2009-1-1 16:29 编辑 ]