远程管理之jnlp协议应用

一、JNLP技术简介

远程管理技术早已不是什么新技术了,早在2008年的时候我最早接触了IBM的远程管理卡二代。只需给卡在类似于开机自启动的时候配置一个IP地址,主机只要不断电,无论OS是否正常,都是可以通过web界面进行服务器的硬管理(关机、重启、kvm console查看、日志收集)等。说白了该卡也是集成了一个带有微型OS的智能硬件。虽然十年左右过去了,远程管理技术基本还是之前的那一套,只不过HP\IBM\华为等都有各自的底层设计。本篇就先从JNLP讲起。



Java Network Launching Protocol (<a href="https://baike.baidu.com/item/JNLP" target="_blank" rel="noopener">JNLP</a>,java网络加载协议) ,说白了JNLP是一个以xml格式书写的一个文件,其在文件内指定了basecode的地址,调用的jar包,及一些资源参数。该JNLP文件指定的内容会被javaws程序调用,最终启动一个console kvm界面。这里以浪潮服务器的管理口产生的JNLP文件为例,其内容如下:



<br />


     
        JViewer
        American Megatrends, Inc.
        JViewer Console Redirection Application
        JViewer Console Redirection Application
        
            JViewer enables a user to view the video display of managed server via KVM.
            It also enables the user to redirect his local keyboard, mouse for managing the server remotely.
        
    
    
        
    
    
        
        
    
    
        
        
    
    
        
        
    
    
           
           
    
    
        
        
    
    
        
        
    
    
        
        
    
    
        
        
    
    
    
    
    
    
    
    
    
    
        -apptype
JViewer
-hostname
200.200.0.7
-kvmtoken
WNqrbKDVEvbIPSRx  //kvm key信息
-kvmsecure
0
-kvmport
7578
-vmsecure
0
-cdstate
1
-fdstate
1
-hdstate
1
-cdport
5120
-fdport
5122
-hdport
5123
-cdnum
1
-fdnum
1
-hdnum
1
-userpriv
255
-lang
EN
-singleportenabled
0
-webcookie
lfqvSO1qkMz3V1QIjx3kYeNtLDkxORWk006  //session key信息
    

二、JNLP文件的前世今生

这里还是以浪潮管理口(浪潮的服务器是真心烂,拿他说事不是给他打广告,没给我广告费,只是因为其简单而已)为例。我画了个图,如下:



<img src="https://www.361way.com/wp-content/uploads/2019/05/jnlp.png" width="717" height="441" title="jnlp" alt="jnlp" />



1、访问http://管理口IP/rpc/WEBSES/create.asp 文件,需要使用登陆信息,如'WEBVAR_USERNAME=登陆用户名&WEBVAR_PASSWORD=登陆密码' ,使用post请求,返回的页面信息里有SESSION_COOKIE信息;



2、后面调用http://管理口IP/Java/jviewer.jnlp?EXTRNIP=管理口IP&JNLPSTR=JViewer 页面,在通过get请求该页面时,会发送请求 cookie信息,而jviewer.jnlp会调用&nbsp;<script src="../impl/session_expired_imp.js"></script> 文件进行session是否过期的验证。验证成功才会返回jnlp文件。



<img src="https://www.361way.com/wp-content/uploads/2019/05/sessioncookie.png" width="546" height="272" title="sessioncookie" alt="sessioncookie" />



3、对于该型号服务器来说,jnlp文件里的内部基本都是相同的,不同的主要是kvmtoken 和&nbsp;webcookie (session key)两个值。接下来使用java web start程序调用该文件就可以输出kvm console界面,如下:



<img src="https://www.361way.com/wp-content/uploads/2019/05/javaws-jnlp.png" width="638" height="364" title="javaws-jnlp" alt="javaws-jnlp" />



<br />

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注