This repository has been archived by the owner on Jan 27, 2023. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 11
/
Copy pathok.in
101 lines (84 loc) · 4.19 KB
/
ok.in
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
#!/bin/bash
INSTALL_PATH=@prefix@/share/openkeeper
TEMP_PATH=/var/cache/openkeeper
CONFIG_PATH=/etc/openkeeper-cli
echo "重邮openkeeper 自编译`uname -m`版"
if [ "0" != "$UID" ] ; then
echo "需要 root 权限"
exit 1
fi
if [ ! -d $CONFIG_PATH ] ; then
echo "首次使用,调用ok-config命令进行配置,若配置错误将无法登录"
ok-config
fi
config_file=$1
if [ -z $config_file ]; then
config_file="default"
fi
pushd $CONFIG_PATH > /dev/null
source $config_file
popd > /dev/null
echo "采用配置文件: $config_file"
cd "$TEMP_PATH"
#######################################################################################
echo "尝试使用用户名 $OK_USER, 网卡 $OK_ETH 拨号"
echo "调用 ok-connect:"
echo "=============================="
realOK_USER=`dialnetkeeper "$OK_USER" cqxinliradius002`
ok-connect "$OK_ETH" "$realOK_USER" "$OK_PASS" "$INSTALL_PATH/pppoe.conf" $OK_IFNAME
echo "=============================="
echo -n "pppd 的 PID 为 "
cat /run/$OK_IFNAME.pid
#######################################################################################
ppp_ip=`ip a show dev $OK_IFNAME | awk '/inet [12]/{print $2}'`
if [ -n "$ppp_ip" ] ; then
echo "登录成功!"
else
echo "拨号失败!"
echo "请检查账户时间,账户密码,网卡等配置,或者稍后再试"
echo "若配置错误,修改配置后,退出原终端后,在新终端中拨号(若在新终端中失败,请多试几次)"
exit 1
fi
#######################################################################################
ppp_ip=`echo $ppp_ip | awk -F '/' '{print $1}'`
OK_ETH_ip=`ip a show dev $OK_ETH | awk '/inet [12]/{print $2}'`
OK_ETH_ip=`echo $OK_ETH_ip | awk -F '/' '{print $1}'`
#######################################################################################
if [ "cqupt" == "$(echo $OK_USER | awk -F '@' '{print $2}')" ] ; then
gateway_ip=`ip r | awk '/default via/&&/dev '"$OK_ETH"'/{print $3}'`
if [ -n "$gateway_ip" ] ; then
#删除默认路由
ip route del 172.0.0.0/8 > /dev/null 2>&1
ip route del 202.202.0.0/16 > /dev/null 2>&1
#添加内网路由
ip route add 172.16.0.0/12 dev $OK_ETH via $gateway_ip metric $OK_METRIC table $OK_RTTABLE> /dev/null 2>&1
ip route add 172.32.0.0/16 dev $OK_ETH via $gateway_ip metric $OK_METRIC table $OK_RTTABLE> /dev/null 2>&1
ip route add 172.33.0.0/16 dev $OK_ETH via $gateway_ip metric $OK_METRIC table $OK_RTTABLE> /dev/null 2>&1
ip route add 172.34.0.0/16 dev $OK_ETH via $gateway_ip metric $OK_METRIC table $OK_RTTABLE> /dev/null 2>&1
ip route add 202.202.32.0/20 dev $OK_ETH via $gateway_ip metric $OK_METRIC table $OK_RTTABLE> /dev/null 2>&1
ip route add 202.202.43.0/24 dev $OK_ETH via $gateway_ip metric $OK_METRIC table $OK_RTTABLE> /dev/null 2>&1
ip route add 202.202.45.0/24 dev $OK_ETH via $gateway_ip metric $OK_METRIC table $OK_RTTABLE> /dev/null 2>&1
ip route add 222.177.140.0/24 dev $OK_ETH via $gateway_ip metric $OK_METRIC table $OK_RTTABLE> /dev/null 2>&1
fi
else
#非重邮的帐号默认不处理内网情况。
echo "非重邮学校可以根据相应内网情况自行添加内网路由。"
fi
#变更默认路由
ip route add default dev $OK_IFNAME > /dev/null 2>&1
#######################################################################################
## 添加6TO4隧道
ip tunnel add $OK_6TO4TUN mode sit ttl 64 remote any local $ppp_ip
ip link set dev $OK_6TO4TUN up
## 添加IPv6地址
ipv6_ip_p1=`echo $ppp_ip | awk -F'.' '{if ($1>16) {printf("%x",$1)} else {printf("0%x",$1)}}'`
ipv6_ip_p2=`echo $ppp_ip | awk -F'.' '{if ($2>16) {printf("%x",$2)} else {printf("0%x",$2)}}'`
ipv6_ip_p3=`echo $ppp_ip | awk -F'.' '{if ($3>16) {printf("%x",$3)} else {printf("0%x",$3)}}'`
ipv6_ip_p4=`echo $ppp_ip | awk -F'.' '{if ($4>16) {printf("%x",$4)} else {printf("0%x",$4)}}'`
ipv6_ip=2002:$ipv6_ip_p1$ipv6_ip_p2:$ipv6_ip_p3$ipv6_ip_p4::$ipv6_ip_p1$ipv6_ip_p2:$ipv6_ip_p3$ipv6_ip_p4
ip -6 addr add $ipv6_ip/16 dev $OK_6TO4TUN
echo "IPV6: $ipv6_ip"
ip -6 route add default via ::192.88.99.1 dev $OK_6TO4TUN metric 1
echo "拨号结束,若关闭本终端,不会断开网络连接,断开网络连接请使用 ok-stop 命令"
echo "处理完毕,若要使用其他账户登录,请用 ok-config 重新配置"
exit 0