寒假马上就要来了,一想到回家之后就没法用学校配好的分布式环境就有点郁闷。于是乎找寻下办法让在家也能连学校的校内网。
以北京邮电大学为例,学校内上网都是网络流量计费,因此想要联网必须先到10.3.8.211登陆,并输入自己学号密码才行。
实验室的服务器也是如此,并且没有对外公开ip。
连接校内服务器
方案1:
网上找好看看你们学校有没有自个的vpn,如果有,那真是万幸。连好vpn,你就相当于把自己电脑放入了学校的局域网环境内,直接按服务器校内ip用xshell连接就行了。除此之外,校内资源,例如查成绩、bt、tv这些统统在家就能用了
附一个北邮vpn的说明:
方案2:
如果没有vpn也没关系,因为北邮vpn有时候也偶尔连不上。用teamviewer远程连接工具就好了。teamviewer支持windows/linux/mac等多个版本,完全满足各种需求。
1)首先我们在服务器端和自己的本本上安装好teamviewer,并且注册一个teamvie账号
2)确保服务器能连接网络(需要登陆的校内网后方可联网的,可以参考后面),并使teamviewr保持打开登录状态
3)在自己本本上也登录teamviewer,此时会列出该账号在线的电脑。找到服务器那台,选择远程控制即可。
下载地址:
https://www.teamviewer.com/zhcn/download/windows/
让服务器保持联网状态
万一服务器长时间不用,自动断了咋办。写个shell脚本,模拟网页登录,自动联网吧。
首先看看北邮登录页都提交了哪些参数,我们用谷歌来看看,F12查看登录时页面提交的报文,可以发现登录地址是10.3.8.211,以post形式传参,用户名是DDDDD对应字段,密码是upass对应字段,MKKey填空即可。
退出地址是10.3.8.211/F.htm。对Header消息头没有任何要求,默认即可。
那么我们shell模拟登录代码为
curl --silent -d "DDDDD=${username}&upass=${passwd}&0MKKey= " "10.3.8.211"
退出代码
curl --silent "10.3.8.211/F.htm"
如果怕时间长,连接自动断开,那就写个循环过一段时间就主动联网即可
总的代码如下,把前两行用户名密码换成自己的,然后运行脚本就可以用啦:
username=用户名
passwd=密码
function usage()
{
echo "Usage: $0 [-i|-k|-o] "
echo "where: login: login to bupt school network"
echo " keepalive:every ten minutes try to connect network"
echo " exit: logout from bupt school network"
echo
exit
}
function login(){
curl --silent -d "DDDDD=${username}&upass=${passwd}&0MKKey= " "10.3.8.211" >/dev/null
echo "login success"
}
function keepalive(){
while true
do
curl --silent -d "DDDDD=${username}&upass=${passwd}&0MKKey= " "10.3.8.211" >/dev/null
#10分钟连一次网
sleep 600
done
}
function logout(){
curl --silent "10.3.8.211/F.htm" >/dev/null
echo "logout success"
}
#输入参数
if [ $# -lt 1 ] ; then
usage
exit
fi
case $1 in
-i)
login;;
-k)
keepalive;;
-o)
logout;;
*)
usage;;
esac