Skip to content

Instantly share code, notes, and snippets.

@xbb
Last active November 18, 2024 09:04
Show Gist options
  • Save xbb/4fd651c2493ad9284dbcb827dc8886d6 to your computer and use it in GitHub Desktop.
Save xbb/4fd651c2493ad9284dbcb827dc8886d6 to your computer and use it in GitHub Desktop.
IDRAC6 Virtual Console Launcher
Use this as an example on how to start the virtual console without the need of Java Web Start or accessing it from the web interface.
You can use the user and password that you use for the web interface.
You need an old JRE... I used 1.7.0_80 from the Server JRE package, also I have tested successfully 1.7.0_79 with MacOS.
You don't need to install it, just extract it or copy the files in "jre" folder.
Open the viewer.jnlp file that you get by launching the virtual console from the web interface with a text editor.
Note the urls to the jar files. Download the main jar file avctKVM.jar and the libs for your operating system and architecture.
Extract the dlls (.so Linux, .jnilib MacOS) from the jar libs.
If you don't see the MacOS libs in the file make sure you download it from MacOS.
Edit the bat/sh file according to your needs.
The file structure should look like this:
start-virtual-console.bat (.sh if Linux/MacOS)
avctKVM.jar
jre/<jre home here>
lib/avctKVMIO.dll (.so if Linux, .jnilib if MacOS)
lib/avmWinLib.dll (.so if Linux, .jnilib if MacOS)
@echo off
set /P drachost="Host: "
set /p dracuser="Username: "
set "psCommand=powershell -Command "$pword = read-host 'Enter Password' -AsSecureString ; ^
$BSTR=[System.Runtime.InteropServices.Marshal]::SecureStringToBSTR($pword); ^
[System.Runtime.InteropServices.Marshal]::PtrToStringAuto($BSTR)""
for /f "usebackq delims=" %%p in (`%psCommand%`) do set dracpwd=%%p
.\jre\bin\java -cp avctKVM.jar -Djava.library.path=.\lib com.avocent.idrac.kvm.Main ip=%drachost% kmport=5900 vport=5900 user=%dracuser% passwd=%dracpwd% apcp=1 version=2 vmprivilege=true "helpurl=https://%drachost%:443/help/contents.html"
#!/bin/bash
echo -n 'Host: '
read drachost
echo -n 'Username: '
read dracuser
echo -n 'Password: '
read -s dracpwd
echo
./jre/bin/java -cp avctKVM.jar -Djava.library.path=./lib com.avocent.idrac.kvm.Main ip=$drachost kmport=5900 vport=5900 user=$dracuser passwd=$dracpwd apcp=1 version=2 vmprivilege=true "helpurl=https://$drachost:443/help/contents.html"
@cepm-nate
Copy link

I got it to work:

  • Installed JRE 7 from Oracle
  • Viewed the viewer.jnlp file to get the right .jar files
  • Downloaded files manually, renamed to .zip, and extracted them into the proper folder. (avctKVM.jar goes in same folder as console.bat, other .dlls go into /lib folder)
  • Edited the console.bat to include IP and username instead of prompting me each time.

The tricky part was trying various platform .jar files till I found one that worked. As @greecemunky said, it was just a matter of finding the right one.

@ardabeyazoglu
Copy link

On mac osx big sur, i couldnt manage to make it work with all the instructions properly done and java.security file patched. I downloaded and used jre1.7 as mentioned before. I commented disabledAlgorithms and left it empty, neither way worked as well. I can use the same script to connect on windows using jre1.6.

I still get the following error. Did anybody manage to solve it in big sur+ ?

07/24/2022 11:24:38:487:  User login response: 3
java.net.SocketException: Broken pipe
	at java.net.SocketOutputStream.socketWrite0(Native Method)
	at java.net.SocketOutputStream.socketWrite(SocketOutputStream.java:113)
	at java.net.SocketOutputStream.write(SocketOutputStream.java:159)
	at sun.security.ssl.OutputRecord.writeBuffer(OutputRecord.java:377)
	at sun.security.ssl.OutputRecord.write(OutputRecord.java:363)
	at sun.security.ssl.SSLSocketImpl.writeRecordInternal(SSLSocketImpl.java:837)
	at sun.security.ssl.SSLSocketImpl.writeRecord(SSLSocketImpl.java:808)
	at sun.security.ssl.AppOutputStream.write(AppOutputStream.java:122)
	at java.io.BufferedOutputStream.flushBuffer(BufferedOutputStream.java:82)
	at java.io.BufferedOutputStream.flush(BufferedOutputStream.java:140)
	at java.io.DataOutputStream.flush(DataOutputStream.java:123)
	at com.avocent.kvm.c.d.g.b(Unknown Source)
	at com.avocent.kvm.c.d.i.run(Unknown Source)

And here is the command:

sudo spctl --master-disable

./jre1.7-mac/Contents/Home/bin/java -cp avctKVM.jar -Djava.library.path=./lib com.avocent.idrac.kvm.Main ip="10.0.0.100" kmport=5900 vport=5900 user=*** passwd="****" apcp=1 version=2 reconnect=2 vmprivilege=true "helpurl=https://10.0.0.100:443/help/contents.html"

@jimfrench
Copy link

jimfrench commented Jul 24, 2022

Hi
I'm not on macos but could this be just working directory ambiguity with the lib directory,, i.e.

sudo spctl --master-disable
cd ./jre1.7-mac/Contents/Home

./bin/java -cp avctKVM.jar -Djava.library.path=./lib com.avocent.idrac.kvm.Main ip="10.0.0.100" kmport=5900 vport=5900 user=*** passwd="****" apcp=1 version=2 reconnect=2 vmprivilege=true "helpurl=https://10.0.0.100:443/help/contents.html"

Alternativey fully qualified lib path

sudo spctl --master-disable

./jre1.7-mac/Contents/Home/bin/java -cp avctKVM.jar -Djava.library.path=./jre1.7-mac/Contents/Home/lib com.avocent.idrac.kvm.Main ip="10.0.0.100" kmport=5900 vport=5900 user=*** passwd="****" apcp=1 version=2 reconnect=2 vmprivilege=true "helpurl=https://10.0.0.100:443/help/contents.html"

Apologies if already checked this is correct directory

@ardabeyazoglu
Copy link

@jimfrench I havent tried this yet but i ll check if it works. Though, I don't think this would be the cause because it works until tls connection phase. Thanks for the advice anyway.

@jimfrench
Copy link

@ardabeyazoglu Yes I should have explained my reasoning, it could have been using libraries from the wrong java version, but you might be correct in that it probably wouldn't get that far if so, it would error out sooner than during the connection. Hope someone else can step in good luck.

@alatas
Copy link

alatas commented Sep 19, 2022

I tried many different combinations, java versions, etc., and finally discovered that iDRAC 6 is compatible with IE v8 on Win 7 SP1. I downloaded Win 7 SP1 and installed it on a virtual machine. It installs its ActiveX to IE 8 on the first run. Then I put the website on trusted sites. and voila!

@jimfrench
Copy link

:)

@brad82
Copy link

brad82 commented Nov 18, 2022

For those non java-savvy of us that are reading this and stumped on the Virtual Media/Keyboard capture errors above, you're missing a step;

After downloading avctKVMIOMac64.jar & avctVMMac64.jar from the iDRAC service, unzip them and move to the lib folder. Jar files are just glorified Zips, the real lib treasure is inside

unzip -d avctKVMIOMac64 avctKVMIOMac64.jar
unzip -d avctVMMac64 avctVMMac64.jar
mkdir lib
cp avctKVMIOMac64/libavctKVMIO.jnilib ./lib/
cp avctVMMac64/libavmMac.jnilib ./lib/

Thanks to https://github.com/DaveCorder/ikvm-osx for the java-for-dummies explanation.

@jamesjguthrie
Copy link

Works for me allowing me to connect to the virtual console on my R710. Glad I no longer need to dig out a VGA monitor. Thank you!

@f3rr311
Copy link

f3rr311 commented Jan 27, 2023

I am getting java/lang/NoClassDefFoundError: java/lang/Object anyone else?

@f3rr311
Copy link

f3rr311 commented Jan 28, 2023

Does anyone have this running with the separate Java version so I do not need to modify my Java Config? Ifso can you please share the working files as the things in this thread do not seem to work properly at the time im posting this or if anyone is willing to help me diagnose the issue that is more familiar with Java that would be amazing.

I have 20 Servers we have running IDRAC6 and would like to be able to use the feature but DO NOT want to run a unsecured install of Java if we can start a portable version for this.

@jimfrench
Copy link

jimfrench commented Jan 29, 2023

Does anyone have this running with the separate Java version so I do not need to modify my Java Config? Ifso can you please share the working files as the things in this thread do not seem to work properly at the time im posting this or if anyone is willing to help me diagnose the issue that is more familiar with Java that would be amazing.

I have 20 Servers we have running IDRAC6 and would like to be able to use the feature but DO NOT want to run a unsecured install of Java if we can start a portable version for this.

Hi, I'm currently using a docker container version which is maintained, and seems to work very well without having to change any java versions manually - it is a "portable version" but dockerised

https://hub.docker.com/r/domistyle/idrac6/

@cliffmathew
Copy link

I was able to connect doing this (iDRAC 6 Enterprise):

Here's how my directory ended:

Directory.png

Then I'm using this PowerShell script:

Set-Location -Path C:\idrac
$ServerHost = Read-Host "Type the name of the host that you want to connect to"
$HostPassword = Read-Host "Type the password of the host that you want to connect to"
Write-Host "nDownloading files..." wget.exe -N --no-check-certificate "https://$ServerHost/software/avctKVM.jar" -q wget.exe -N --no-check-certificate "https://$ServerHost/software/avctVMWin64.jar" -P lib -q wget.exe -N --no-check-certificate "https://$ServerHost/software/avctKVMIOWin64.jar" -P lib -q Write-Host "nExpanding files to initiate connection..."
Rename-Item .\lib\avctVMWin64.jar avctVMWin64.zip
Rename-Item .\lib\avctKVMIOWin64.jar avctKVMIOWin64.zip
Expand-Archive .\lib\avctVMWin64.zip -DestinationPath .\lib
Remove-Item .\lib\META-INF -Recurse -Confirm:$False
Expand-Archive .\lib\avctKVMIOWin64.zip -DestinationPath .\lib
Remove-Item .\lib\META-INF -Recurse -Confirm:$False
Remove-Item .\lib*.zip
Start-Process -FilePath .\bin\java -ArgumentList "-cp avctKVM.jar -Djava.library.path=.\lib com.avocent.idrac.kvm.Main ip=$ServerHost kmport=5900 vport=5900 user=root passwd=$HostPassword apcp=1 verison=2 vmprivilege=true 'helpurl=https://$($ServerHost):443/help/contents.html'"
Remove-Item .\lib*.dll
Remove-Item .\avctKVM.jar

It worked without modifying my PC java.security file.

The only problems until now is that I didn't find a way to pass the password using PowerShell in a secure way (I have tried the -AsSecureString), so for now the password is in plain text... =/ And I have tried to use this code to download the files:

Invoke-WebRequest https://$ServerHost/software/avctKVM.jar -OutFile .\avctKVM.jar

But sometimes worked, sometimes don't, I think that I need to initiate the connection first... Meanwhile I'm using wget as other users commented previously.

Anyway, thanks a lot for your time to help a lot of people!!!

JAN 29 2023 / WINDOWS 10: Took your script and made changes to get it to work on my PC.
Steps:

  • Downloaded the same JRE you mentioned first from Oracle website
  • Created C:\IDRAC and expanded as you suggested
  • Created C:\IDRAC\idrac.ps1 file using notepad with the following contents. Notice that I exit before the last 2 remove commands. It works now, I don't have time to spruce it up. WARNING: in my script, Credentials are exposed in the script -- so NOT A SECURE implementation. You can use the prompt based commands from the original poster.

==================
Set-Location -Path C:\idrac
$ServerHost = "192.168.1.92"
$HostPassword = "calvin"

$username = "root"
$password = ConvertTo-SecureString "calvin" -AsPlainText -Force
$psCred = New-Object System.Management.Automation.PSCredential -ArgumentList ($username, $password)

[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls, [Net.SecurityProtocolType]::Tls11, [Net.SecurityProtocolType]::Tls12, [Net.SecurityProtocolType]::Ssl3
[Net.ServicePointManager]::SecurityProtocol = "Tls, Tls11, Tls12, Ssl3"
add-type @"
using System.Net;
using System.Security.Cryptography.X509Certificates;
public class TrustAllCertsPolicy : ICertificatePolicy {
public bool CheckValidationResult(
ServicePoint srvPoint, X509Certificate certificate,
WebRequest request, int certificateProblem) {
return true;
}
}
"@
[System.Net.ServicePointManager]::CertificatePolicy = New-Object TrustAllCertsPolicy

Write-Host "`nDownloading files..."
Invoke-WebRequest -Credential $psCred -Uri "https://$ServerHost/software/avctKVM.jar" -outfile "avctKVM.jar"
Invoke-WebRequest -Credential $psCred -Uri "https://$ServerHost/software/avctVMWin64.jar" -outfile "lib\avctVMWin64.jar"
Invoke-WebRequest -Credential $psCred -Uri "https://$ServerHost/software/avctKVMIOWin64.jar" -outfile "lib\avctKVMIOWin64.jar"

Write-Host "`nExpanding files to initiate connection..."
Move-Item -Force .\lib\avctVMWin64.jar avctVMWin64.zip
Move-Item -Force .\lib\avctKVMIOWin64.jar avctKVMIOWin64.zip
Expand-Archive -Force .\lib\avctVMWin64.zip -DestinationPath .\lib
Remove-Item -Force .\lib\META-INF -Recurse -Confirm:$False
Expand-Archive -Force .\lib\avctKVMIOWin64.zip -DestinationPath .\lib
Remove-Item -Force .\lib\META-INF -Recurse -Confirm:$False
Remove-Item -Force .\lib*.zip

&Start-Process -FilePath .\bin\java -ArgumentList "-cp avctKVM.jar -Djava.library.path=.\lib com.avocent.idrac.kvm.Main ip=$ServerHost kmport=5900 vport=5900 user=root passwd=$HostPassword apcp=1 verison=2 vmprivilege=true 'helpurl=https://$($ServerHost):443/help/contents.html'"
exit
Remove-Item .\lib*.dll
Remove-Item .\avctKVM.jar

@ElanHasson
Copy link

This is by far the easiest: https://github.com/DomiStyle/docker-idrac6

@NoahDar
Copy link

NoahDar commented Apr 28, 2023

For those non java-savvy of us that are reading this and stumped on the Virtual Media/Keyboard capture errors above, you're missing a step;

After downloading avctKVMIOMac64.jar & avctVMMac64.jar from the iDRAC service, unzip them and move to the lib folder. Jar files are just glorified Zips, the real lib treasure is inside

unzip -d avctKVMIOMac64 avctKVMIOMac64.jar
unzip -d avctVMMac64 avctVMMac64.jar
mkdir lib
cp avctKVMIOMac64/libavctKVMIO.jnilib ./lib/
cp avctVMMac64/libavmMac.jnilib ./lib/

Thanks to https://github.com/DaveCorder/ikvm-osx for the java-for-dummies explanation.

Thank you for this!! I was able to do the same for my Linux running Debian 11.

I unzipped the two files:

avctKVMIOLinux64.jar
avctVMLinux64.jar

Then I copied the two extracted files over to jdk1.7.0_80_x64/lib folder:

libavctKVMIO.so
libavmlinux.so

Boom it worked!

@thirdwheel
Copy link

thirdwheel commented Dec 13, 2023

Has anyone had any luck doing this with iDRAC 8? Even after downloading the relevant libraries and removing all disabled algorithms, I'm not having any luck. Output below:

KVM/VM Client Version: 5.04.04 (Build 488)
Dec 13, 2023 12:20:43 PM java.util.prefs.WindowsPreferences <init>
WARNING: Could not open/create prefs root node Software\JavaSoft\Prefs at root 0x80000002. Windows RegCreateKeyEx(...) returned error code 5.
replace numpad
** Max Size: W = 1920 H = 1032
** Window Pref Size: W = 1040 H = 823
** Max Size: W = 1920 H = 1032
** Window Pref Size: W = 1040 H = 823
ProtocolAPCP.receieveSessionSetup : v1.2 APCP = true
APCP Version = 260

Supported protocols: [SSLv2Hello, SSLv3, TLSv1, TLSv1.1, TLSv1.2]

Enabled protocols: [SSLv3, TLSv1]

Supported ciphers: [TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256, TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256, TLS_RSA_WITH_AES_128_CBC_SHA256, TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA256, TLS_ECDH_RSA_WITH_AES_128_CBC_SHA256, TLS_DHE_RSA_WITH_AES_128_CBC_SHA256, TLS_DHE_DSS_WITH_AES_128_CBC_SHA256, TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA, TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA, TLS_RSA_WITH_AES_128_CBC_SHA, TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA, TLS_ECDH_RSA_WITH_AES_128_CBC_SHA, TLS_DHE_RSA_WITH_AES_128_CBC_SHA, TLS_DHE_DSS_WITH_AES_128_CBC_SHA, TLS_ECDHE_ECDSA_WITH_3DES_EDE_CBC_SHA, TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA, SSL_RSA_WITH_3DES_EDE_CBC_SHA, TLS_ECDH_ECDSA_WITH_3DES_EDE_CBC_SHA, TLS_ECDH_RSA_WITH_3DES_EDE_CBC_SHA, SSL_DHE_RSA_WITH_3DES_EDE_CBC_SHA, SSL_DHE_DSS_WITH_3DES_EDE_CBC_SHA, TLS_ECDHE_ECDSA_WITH_RC4_128_SHA, TLS_ECDHE_RSA_WITH_RC4_128_SHA, SSL_RSA_WITH_RC4_128_SHA, TLS_ECDH_ECDSA_WITH_RC4_128_SHA, TLS_ECDH_RSA_WITH_RC4_128_SHA, SSL_RSA_WITH_RC4_128_MD5, TLS_EMPTY_RENEGOTIATION_INFO_SCSV, TLS_DH_anon_WITH_AES_128_CBC_SHA256, TLS_ECDH_anon_WITH_AES_128_CBC_SHA, TLS_DH_anon_WITH_AES_128_CBC_SHA, TLS_ECDH_anon_WITH_3DES_EDE_CBC_SHA, SSL_DH_anon_WITH_3DES_EDE_CBC_SHA, TLS_ECDH_anon_WITH_RC4_128_SHA, SSL_DH_anon_WITH_RC4_128_MD5, SSL_RSA_WITH_DES_CBC_SHA, SSL_DHE_RSA_WITH_DES_CBC_SHA, SSL_DHE_DSS_WITH_DES_CBC_SHA, SSL_DH_anon_WITH_DES_CBC_SHA, SSL_RSA_EXPORT_WITH_RC4_40_MD5, SSL_DH_anon_EXPORT_WITH_RC4_40_MD5, SSL_RSA_EXPORT_WITH_DES40_CBC_SHA, SSL_DHE_RSA_EXPORT_WITH_DES40_CBC_SHA, SSL_DHE_DSS_EXPORT_WITH_DES40_CBC_SHA, SSL_DH_anon_EXPORT_WITH_DES40_CBC_SHA, TLS_RSA_WITH_NULL_SHA256, TLS_ECDHE_ECDSA_WITH_NULL_SHA, TLS_ECDHE_RSA_WITH_NULL_SHA, SSL_RSA_WITH_NULL_SHA, TLS_ECDH_ECDSA_WITH_NULL_SHA, TLS_ECDH_RSA_WITH_NULL_SHA, TLS_ECDH_anon_WITH_NULL_SHA, SSL_RSA_WITH_NULL_MD5, TLS_KRB5_WITH_3DES_EDE_CBC_SHA, TLS_KRB5_WITH_3DES_EDE_CBC_MD5, TLS_KRB5_WITH_RC4_128_SHA, TLS_KRB5_WITH_RC4_128_MD5, TLS_KRB5_WITH_DES_CBC_SHA, TLS_KRB5_WITH_DES_CBC_MD5, TLS_KRB5_EXPORT_WITH_DES_CBC_40_SHA, TLS_KRB5_EXPORT_WITH_DES_CBC_40_MD5, TLS_KRB5_EXPORT_WITH_RC4_40_SHA, TLS_KRB5_EXPORT_WITH_RC4_40_MD5]

Enabled ciphers: [TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256, TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256, TLS_RSA_WITH_AES_128_CBC_SHA256, TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA256, TLS_ECDH_RSA_WITH_AES_128_CBC_SHA256, TLS_DHE_RSA_WITH_AES_128_CBC_SHA256, TLS_DHE_DSS_WITH_AES_128_CBC_SHA256, TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA, TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA, TLS_RSA_WITH_AES_128_CBC_SHA, TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA, TLS_ECDH_RSA_WITH_AES_128_CBC_SHA, TLS_DHE_RSA_WITH_AES_128_CBC_SHA, TLS_DHE_DSS_WITH_AES_128_CBC_SHA, TLS_ECDHE_ECDSA_WITH_3DES_EDE_CBC_SHA, TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA, SSL_RSA_WITH_3DES_EDE_CBC_SHA, TLS_ECDH_ECDSA_WITH_3DES_EDE_CBC_SHA, TLS_ECDH_RSA_WITH_3DES_EDE_CBC_SHA, SSL_DHE_RSA_WITH_3DES_EDE_CBC_SHA, SSL_DHE_DSS_WITH_3DES_EDE_CBC_SHA, TLS_ECDHE_ECDSA_WITH_RC4_128_SHA, TLS_ECDHE_RSA_WITH_RC4_128_SHA, SSL_RSA_WITH_RC4_128_SHA, TLS_ECDH_ECDSA_WITH_RC4_128_SHA, TLS_ECDH_RSA_WITH_RC4_128_SHA, SSL_RSA_WITH_RC4_128_MD5, TLS_EMPTY_RENEGOTIATION_INFO_SCSV, TLS_DH_anon_WITH_AES_128_CBC_SHA256, TLS_ECDH_anon_WITH_AES_128_CBC_SHA, TLS_DH_anon_WITH_AES_128_CBC_SHA, TLS_ECDH_anon_WITH_3DES_EDE_CBC_SHA, SSL_DH_anon_WITH_3DES_EDE_CBC_SHA, TLS_ECDH_anon_WITH_RC4_128_SHA, SSL_DH_anon_WITH_RC4_128_MD5, SSL_RSA_WITH_DES_CBC_SHA, SSL_DHE_RSA_WITH_DES_CBC_SHA, SSL_DHE_DSS_WITH_DES_CBC_SHA, SSL_DH_anon_WITH_DES_CBC_SHA, SSL_RSA_EXPORT_WITH_RC4_40_MD5, SSL_DH_anon_EXPORT_WITH_RC4_40_MD5, SSL_RSA_EXPORT_WITH_DES40_CBC_SHA, SSL_DHE_RSA_EXPORT_WITH_DES40_CBC_SHA, SSL_DHE_DSS_EXPORT_WITH_DES40_CBC_SHA, SSL_DH_anon_EXPORT_WITH_DES40_CBC_SHA, TLS_RSA_WITH_NULL_SHA256, TLS_ECDHE_ECDSA_WITH_NULL_SHA, TLS_ECDHE_RSA_WITH_NULL_SHA, SSL_RSA_WITH_NULL_SHA, TLS_ECDH_ECDSA_WITH_NULL_SHA, TLS_ECDH_RSA_WITH_NULL_SHA, TLS_ECDH_anon_WITH_NULL_SHA, SSL_RSA_WITH_NULL_MD5, TLS_KRB5_WITH_3DES_EDE_CBC_SHA, TLS_KRB5_WITH_3DES_EDE_CBC_MD5, TLS_KRB5_WITH_RC4_128_SHA, TLS_KRB5_WITH_RC4_128_MD5, TLS_KRB5_WITH_DES_CBC_SHA, TLS_KRB5_WITH_DES_CBC_MD5, TLS_KRB5_EXPORT_WITH_DES_CBC_40_SHA, TLS_KRB5_EXPORT_WITH_DES_CBC_40_MD5, TLS_KRB5_EXPORT_WITH_RC4_40_SHA, TLS_KRB5_EXPORT_WITH_RC4_40_MD5]

Exception in server handshake
java.net.SocketException: Connection reset
        at java.net.SocketInputStream.read(SocketInputStream.java:196)
        at java.net.SocketInputStream.read(SocketInputStream.java:122)
        at sun.security.ssl.InputRecord.readFully(InputRecord.java:442)
        at sun.security.ssl.InputRecord.read(InputRecord.java:480)
        at sun.security.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:934)
        at sun.security.ssl.SSLSocketImpl.performInitialHandshake(SSLSocketImpl.java:1332)
        at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1359)
        at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1343)
        at com.avocent.d.a.a.a(Unknown Source)
        at com.avocent.d.a.a.a(Unknown Source)
        at com.avocent.d.a.a.c(Unknown Source)
        at com.avocent.d.d.b.a(Unknown Source)
        at com.avocent.a.b.w.g(Unknown Source)
        at com.avocent.a.b.w.a(Unknown Source)
        at com.avocent.app.c.l.m(Unknown Source)
        at com.avocent.app.c.l.e(Unknown Source)
        at com.avocent.idrac.kvm.a.e(Unknown Source)
        at com.avocent.idrac.kvm.Main.a(Unknown Source)
        at com.avocent.idrac.kvm.Main.main(Unknown Source)
java.net.SocketException: Connection reset
        at java.net.SocketInputStream.read(SocketInputStream.java:196)
        at java.net.SocketInputStream.read(SocketInputStream.java:122)
        at sun.security.ssl.InputRecord.readFully(InputRecord.java:442)
        at sun.security.ssl.InputRecord.read(InputRecord.java:480)
        at sun.security.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:934)
        at sun.security.ssl.SSLSocketImpl.performInitialHandshake(SSLSocketImpl.java:1332)
        at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1359)
        at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1343)
        at com.avocent.d.a.a.a(Unknown Source)
        at com.avocent.d.a.a.a(Unknown Source)
        at com.avocent.d.a.a.c(Unknown Source)
        at com.avocent.d.d.b.a(Unknown Source)
        at com.avocent.a.b.w.g(Unknown Source)
        at com.avocent.a.b.w.a(Unknown Source)
        at com.avocent.app.c.l.m(Unknown Source)
        at com.avocent.app.c.l.e(Unknown Source)
        at com.avocent.idrac.kvm.a.e(Unknown Source)
        at com.avocent.idrac.kvm.Main.a(Unknown Source)
        at com.avocent.idrac.kvm.Main.main(Unknown Source)
CoreSessionListener : connection failed
in CoreSessionListner : fireOnSessionStateChanged
 KVM session state SESSION_FAILED
 KVM session state SESSION_CLOSING
calling clenaup from CloseViewerClient

@bmatthewshea
Copy link

@thirdwheel

From what I see:

  1. An error with windows registry. Not sure if this is hindering java functioning, though.

  2. Protocol issue?
    Supported protocols: [SSLv2Hello, SSLv3, TLSv1, TLSv1.1, TLSv1.2]
    Enabled protocols: [SSLv3, TLSv1]
    IIRC, idrac 8 needs TLSv1.1 enabled. I could be wrong about that.

@thirdwheel
Copy link

@bmatthewshea

Looks like tls1.2 is being used. I couldn't see how to enable tls1.2 in java 1.7, so I brought in OpenJRE 8, and I got in.

Thanks for the insight, I completely missed this in the log.

@bmatthewshea
Copy link

bmatthewshea commented Dec 18, 2023

@thirdwheel

Looks like tls1.2 is being used. I couldn't see how to enable tls1.2 in java 1.7, so I brought in OpenJRE 8, and I got in.

Thanks for the insight, I completely missed this in the log.

NP. Glad I could help!

@mduregon
Copy link

mduregon commented Feb 3, 2024

you can also avoid using Java and launch the HTML5 console ...

How to Launch the Integrated Dell Remote Access Controller (iDRAC) Virtual Console

Summary: The iDRAC virtual console can be launched using a web interface or URL.

@bmatthewshea
Copy link

bmatthewshea commented Feb 3, 2024

@mduregon - It doesn't work for me on v6. It probably is only supported on v7-9 - of course they fail to mention this in that article..

@Tampa
Copy link

Tampa commented Feb 27, 2024

The jar starts and sets some variables, but then says connection failed for the session state.

Update: Adding a idrac.java.security as described above did the trick, guess just removing TLS1 from disabled isn't enough

@SentientUmaru
Copy link

SentientUmaru commented Mar 22, 2024

Hello guys, I'm having issues using the script and I'm having errors trying to connect to an idrac6.

03/22/2024 03:52:18:067:  User login response: 3
java.net.SocketException: Connection reset by peer: socket write error
        at java.net.SocketOutputStream.socketWrite0(Native Method)
        at java.net.SocketOutputStream.socketWrite(Unknown Source)
        at java.net.SocketOutputStream.write(Unknown Source)
        at sun.security.ssl.OutputRecord.writeBuffer(Unknown Source)
        at sun.security.ssl.OutputRecord.write(Unknown Source)
        at sun.security.ssl.SSLSocketImpl.writeRecordInternal(Unknown Source)
        at sun.security.ssl.SSLSocketImpl.writeRecord(Unknown Source)
        at sun.security.ssl.AppOutputStream.write(Unknown Source)
        at java.io.BufferedOutputStream.flushBuffer(Unknown Source)
        at java.io.BufferedOutputStream.flush(Unknown Source)
        at java.io.DataOutputStream.flush(Unknown Source)
        at com.avocent.kvm.c.d.g.b(Unknown Source)
        at com.avocent.kvm.c.d.i.run(Unknown Source)

With a popup saying, "Login failed, possibly due to slow connection."
For reference, Here's what i have.
On Windows 11, Folder structure

  • jre(1.7.0_80)
  • avctKVM
  • start-virtual-console.bat
  • jre/lib - avctKVMIO.dll & avmWinLib.dll
    Here's what my bat file has, .\jre\bin\java -cp avctKVM.jar -Djava.library.path=.\jre\lib com.avocent.idrac.kvm.Main ip=%drachost% kmport=5900 vport=5900 user=%dracuser% passwd=%dracpwd% apcp=1 version=2 vmprivilege=true "helpurl=https://%drachost%:443/help/contents.html"

I have tried the other solutions provided in the comments except for the docker ones and none of them have worked for me.

@sauronthedark
Copy link

sauronthedark commented Apr 17, 2024

I'm using the original method in post #1 and it is working with IDRAC 6 on a Power Edge T610

However, the virtual console goes black during resolution changes, and does not adjust itself. This happens when going from the boot screen to bios settings, or between boot screen and windows.

Here's an example of the windows cli when this happens:

focus gained by(com.avocent.kvm.c.pb[windowedVideoPanel,0,0,1024x768,layout=java.awt.FlowLayout,alignmentX=0.0,alignmentY=0.0,border=,flags=9,maximumSize=,minimumSize=,preferredSize=java.awt.Dimension[width=1024,height=768]])
NativeKeyboard.focusLost()
focus lost by(com.avocent.kvm.c.pb[windowedVideoPanel,0,0,800x600,layout=java.awt.FlowLayout,alignmentX=0.0,alignmentY=0.0,border=,flags=9,maximumSize=,minimumSize=,preferredSize=java.awt.Dimension[width=800,height=600]])
AVSP socket Closed, no connection exists.

04/17/2024 04:09:33:014: IOException on AVSP socket.

null packet received on session socket
04/17/2024 04:09:33:015: cleanup called.
AVSP socket Closed, no connection exists.

04/17/2024 04:09:33:016:   Mouse packet thread stopping.
04/17/2024 04:09:33:016: IOException on AVSP socket.

null video packet received
04/17/2024 04:09:33:018: cleanup called.
04/17/2024 04:09:33:019: AVSP: video socket packet processing stopped.
04/17/2024 04:09:33:929: Keep-alive thread shutting down.
NativeKeyboard.focusGained()
focus gained by(com.avocent.kvm.c.pb[windowedVideoPanel,0,0,800x600,layout=java.awt.FlowLayout,alignmentX=0.0,alignmentY=0.0,border=,flags=9,maximumSize=,minimumSize=,preferredSize=java.awt.Dimension[width=800,height=600]])
 Fullscreen window setVisible false
04/17/2024 04:09:51:296: cleanup called.
AVSPCloseConnection Called

@ilium007
Copy link

ilium007 commented Sep 2, 2024

This doesn't present the Virtual Media menu item for me on OSX:

image

@ilium007
Copy link

ilium007 commented Sep 2, 2024

I went back and tried JDK 1.7.0_79 on MacOS and it did not even open the console:

./launch_console.sh:
MAC OS X
KVM/VM Client Version: 5.04.04 (Build 488)
replace numpad
** Max Size: W = 1440 H = 830
Warning: the font "Times" is not available, so "Lucida Bright" has been substituted, but may have unexpected appearance or behavor. Re-enable the "Times" font to remove this warning.
Warning: the font "Times" is not available, so "Lucida Bright" has been substituted, but may have unexpected appearance or behavor. Re-enable the "Times" font to remove this warning.
** Window Pref Size: W = 1024 H = 812
** Max Size: W = 1440 H = 830
** Window Pref Size: W = 1024 H = 812
ProtocolAPCP.receieveSessionSetup : reconType = 101
capabilities..4
the cipher suite is provided by the config

Supported protocols: [SSLv2Hello, SSLv3, TLSv1, TLSv1.1, TLSv1.2]

Enabled protocols: [TLSv1]

Supported ciphers: [TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256, TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256, TLS_RSA_WITH_AES_128_CBC_SHA256, TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA256, TLS_ECDH_RSA_WITH_AES_128_CBC_SHA256, TLS_DHE_RSA_WITH_AES_128_CBC_SHA256, TLS_DHE_DSS_WITH_AES_128_CBC_SHA256, TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA, TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA, TLS_RSA_WITH_AES_128_CBC_SHA, TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA, TLS_ECDH_RSA_WITH_AES_128_CBC_SHA, TLS_DHE_RSA_WITH_AES_128_CBC_SHA, TLS_DHE_DSS_WITH_AES_128_CBC_SHA, TLS_ECDHE_ECDSA_WITH_3DES_EDE_CBC_SHA, TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA, SSL_RSA_WITH_3DES_EDE_CBC_SHA, TLS_ECDH_ECDSA_WITH_3DES_EDE_CBC_SHA, TLS_ECDH_RSA_WITH_3DES_EDE_CBC_SHA, SSL_DHE_RSA_WITH_3DES_EDE_CBC_SHA, SSL_DHE_DSS_WITH_3DES_EDE_CBC_SHA, TLS_ECDHE_ECDSA_WITH_RC4_128_SHA, TLS_ECDHE_RSA_WITH_RC4_128_SHA, SSL_RSA_WITH_RC4_128_SHA, TLS_ECDH_ECDSA_WITH_RC4_128_SHA, TLS_ECDH_RSA_WITH_RC4_128_SHA, SSL_RSA_WITH_RC4_128_MD5, TLS_EMPTY_RENEGOTIATION_INFO_SCSV, TLS_DH_anon_WITH_AES_128_CBC_SHA256, TLS_ECDH_anon_WITH_AES_128_CBC_SHA, TLS_DH_anon_WITH_AES_128_CBC_SHA, TLS_ECDH_anon_WITH_3DES_EDE_CBC_SHA, SSL_DH_anon_WITH_3DES_EDE_CBC_SHA, TLS_ECDH_anon_WITH_RC4_128_SHA, SSL_DH_anon_WITH_RC4_128_MD5, SSL_RSA_WITH_DES_CBC_SHA, SSL_DHE_RSA_WITH_DES_CBC_SHA, SSL_DHE_DSS_WITH_DES_CBC_SHA, SSL_DH_anon_WITH_DES_CBC_SHA, SSL_RSA_EXPORT_WITH_RC4_40_MD5, SSL_DH_anon_EXPORT_WITH_RC4_40_MD5, SSL_RSA_EXPORT_WITH_DES40_CBC_SHA, SSL_DHE_RSA_EXPORT_WITH_DES40_CBC_SHA, SSL_DHE_DSS_EXPORT_WITH_DES40_CBC_SHA, SSL_DH_anon_EXPORT_WITH_DES40_CBC_SHA, TLS_RSA_WITH_NULL_SHA256, TLS_ECDHE_ECDSA_WITH_NULL_SHA, TLS_ECDHE_RSA_WITH_NULL_SHA, SSL_RSA_WITH_NULL_SHA, TLS_ECDH_ECDSA_WITH_NULL_SHA, TLS_ECDH_RSA_WITH_NULL_SHA, TLS_ECDH_anon_WITH_NULL_SHA, SSL_RSA_WITH_NULL_MD5, TLS_KRB5_WITH_3DES_EDE_CBC_SHA, TLS_KRB5_WITH_3DES_EDE_CBC_MD5, TLS_KRB5_WITH_RC4_128_SHA, TLS_KRB5_WITH_RC4_128_MD5, TLS_KRB5_WITH_DES_CBC_SHA, TLS_KRB5_WITH_DES_CBC_MD5, TLS_KRB5_EXPORT_WITH_DES_CBC_40_SHA, TLS_KRB5_EXPORT_WITH_DES_CBC_40_MD5, TLS_KRB5_EXPORT_WITH_RC4_40_SHA, TLS_KRB5_EXPORT_WITH_RC4_40_MD5]

Enabled ciphers: [TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256, TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256, TLS_RSA_WITH_AES_128_CBC_SHA256, TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA256, TLS_ECDH_RSA_WITH_AES_128_CBC_SHA256, TLS_DHE_RSA_WITH_AES_128_CBC_SHA256, TLS_DHE_DSS_WITH_AES_128_CBC_SHA256, TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA, TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA, TLS_RSA_WITH_AES_128_CBC_SHA, TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA, TLS_ECDH_RSA_WITH_AES_128_CBC_SHA, TLS_DHE_RSA_WITH_AES_128_CBC_SHA, TLS_DHE_DSS_WITH_AES_128_CBC_SHA, TLS_ECDHE_ECDSA_WITH_3DES_EDE_CBC_SHA, TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA, SSL_RSA_WITH_3DES_EDE_CBC_SHA, TLS_ECDH_ECDSA_WITH_3DES_EDE_CBC_SHA, TLS_ECDH_RSA_WITH_3DES_EDE_CBC_SHA, SSL_DHE_RSA_WITH_3DES_EDE_CBC_SHA, SSL_DHE_DSS_WITH_3DES_EDE_CBC_SHA, TLS_ECDHE_ECDSA_WITH_RC4_128_SHA, TLS_ECDHE_RSA_WITH_RC4_128_SHA, SSL_RSA_WITH_RC4_128_SHA, TLS_ECDH_ECDSA_WITH_RC4_128_SHA, TLS_ECDH_RSA_WITH_RC4_128_SHA, SSL_RSA_WITH_RC4_128_MD5, TLS_EMPTY_RENEGOTIATION_INFO_SCSV, TLS_DH_anon_WITH_AES_128_CBC_SHA256, TLS_ECDH_anon_WITH_AES_128_CBC_SHA, TLS_DH_anon_WITH_AES_128_CBC_SHA, TLS_ECDH_anon_WITH_3DES_EDE_CBC_SHA, SSL_DH_anon_WITH_3DES_EDE_CBC_SHA, TLS_ECDH_anon_WITH_RC4_128_SHA, SSL_DH_anon_WITH_RC4_128_MD5, SSL_RSA_WITH_DES_CBC_SHA, SSL_DHE_RSA_WITH_DES_CBC_SHA, SSL_DHE_DSS_WITH_DES_CBC_SHA, SSL_DH_anon_WITH_DES_CBC_SHA, SSL_RSA_EXPORT_WITH_RC4_40_MD5, SSL_DH_anon_EXPORT_WITH_RC4_40_MD5, SSL_RSA_EXPORT_WITH_DES40_CBC_SHA, SSL_DHE_RSA_EXPORT_WITH_DES40_CBC_SHA, SSL_DHE_DSS_EXPORT_WITH_DES40_CBC_SHA, SSL_DH_anon_EXPORT_WITH_DES40_CBC_SHA, TLS_RSA_WITH_NULL_SHA256, TLS_ECDHE_ECDSA_WITH_NULL_SHA, TLS_ECDHE_RSA_WITH_NULL_SHA, SSL_RSA_WITH_NULL_SHA, TLS_ECDH_ECDSA_WITH_NULL_SHA, TLS_ECDH_RSA_WITH_NULL_SHA, TLS_ECDH_anon_WITH_NULL_SHA, SSL_RSA_WITH_NULL_MD5, TLS_KRB5_WITH_3DES_EDE_CBC_SHA, TLS_KRB5_WITH_3DES_EDE_CBC_MD5, TLS_KRB5_WITH_RC4_128_SHA, TLS_KRB5_WITH_RC4_128_MD5, TLS_KRB5_WITH_DES_CBC_SHA, TLS_KRB5_WITH_DES_CBC_MD5, TLS_KRB5_EXPORT_WITH_DES_CBC_40_SHA, TLS_KRB5_EXPORT_WITH_DES_CBC_40_MD5, TLS_KRB5_EXPORT_WITH_RC4_40_SHA, TLS_KRB5_EXPORT_WITH_RC4_40_MD5]

java.net.SocketException: Connection reset
	at java.net.SocketInputStream.read(SocketInputStream.java:196)
	at java.net.SocketInputStream.read(SocketInputStream.java:122)
	at sun.security.ssl.InputRecord.readFully(InputRecord.java:442)
	at sun.security.ssl.InputRecord.read(InputRecord.java:480)
	at sun.security.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:934)
	at sun.security.ssl.SSLSocketImpl.performInitialHandshake(SSLSocketImpl.java:1332)
	at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1359)
	at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1343)
	at com.avocent.d.a.a.a(Unknown Source)
	at com.avocent.d.a.a.a(Unknown Source)
	at com.avocent.d.a.a.c(Unknown Source)
	at com.avocent.d.d.b.a(Unknown Source)
	at com.avocent.a.b.w.g(Unknown Source)
	at com.avocent.a.b.w.a(Unknown Source)
	at com.avocent.app.c.l.m(Unknown Source)
	at com.avocent.app.c.l.e(Unknown Source)
	at com.avocent.idrac.kvm.a.e(Unknown Source)
	at com.avocent.idrac.kvm.Main.a(Unknown Source)
	at com.avocent.idrac.kvm.Main.main(Unknown Source)
java.net.SocketException: Connection reset
	at java.net.SocketInputStream.read(SocketInputStream.java:196)
	at java.net.SocketInputStream.read(SocketInputStream.java:122)
	at sun.security.ssl.InputRecord.readFully(InputRecord.java:442)
	at sun.security.ssl.InputRecord.read(InputRecord.java:480)
	at sun.security.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:934)
	at sun.security.ssl.SSLSocketImpl.performInitialHandshake(SSLSocketImpl.java:1332)
	at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1359)
	at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1343)
	at com.avocent.d.a.a.a(Unknown Source)
	at com.avocent.d.a.a.a(Unknown Source)
	at com.avocent.d.a.a.c(Unknown Source)
	at com.avocent.d.d.b.a(Unknown Source)
	at com.avocent.a.b.w.g(Unknown Source)
	at com.avocent.a.b.w.a(Unknown Source)
	at com.avocent.app.c.l.m(Unknown Source)
	at com.avocent.app.c.l.e(Unknown Source)
	at com.avocent.idrac.kvm.a.e(Unknown Source)
	at com.avocent.idrac.kvm.Main.a(Unknown Source)
	at com.avocent.idrac.kvm.Main.main(Unknown Source)
CoreSessionListener : connection failed
in CoreSessionListner : fireOnSessionStateChanged
 KVM session state SESSION_FAILED
 KVM session state SESSION_CLOSING
calling clenaup from CloseViewerClient

@LouisOuellet
Copy link

I went back and tried JDK 1.7.0_79 on MacOS and it did not even open the console:

./launch_console.sh:
MAC OS X
KVM/VM Client Version: 5.04.04 (Build 488)
replace numpad
** Max Size: W = 1440 H = 830
Warning: the font "Times" is not available, so "Lucida Bright" has been substituted, but may have unexpected appearance or behavor. Re-enable the "Times" font to remove this warning.
Warning: the font "Times" is not available, so "Lucida Bright" has been substituted, but may have unexpected appearance or behavor. Re-enable the "Times" font to remove this warning.
** Window Pref Size: W = 1024 H = 812
** Max Size: W = 1440 H = 830
** Window Pref Size: W = 1024 H = 812
ProtocolAPCP.receieveSessionSetup : reconType = 101
capabilities..4
the cipher suite is provided by the config

Supported protocols: [SSLv2Hello, SSLv3, TLSv1, TLSv1.1, TLSv1.2]

Enabled protocols: [TLSv1]

Supported ciphers: [TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256, TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256, TLS_RSA_WITH_AES_128_CBC_SHA256, TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA256, TLS_ECDH_RSA_WITH_AES_128_CBC_SHA256, TLS_DHE_RSA_WITH_AES_128_CBC_SHA256, TLS_DHE_DSS_WITH_AES_128_CBC_SHA256, TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA, TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA, TLS_RSA_WITH_AES_128_CBC_SHA, TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA, TLS_ECDH_RSA_WITH_AES_128_CBC_SHA, TLS_DHE_RSA_WITH_AES_128_CBC_SHA, TLS_DHE_DSS_WITH_AES_128_CBC_SHA, TLS_ECDHE_ECDSA_WITH_3DES_EDE_CBC_SHA, TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA, SSL_RSA_WITH_3DES_EDE_CBC_SHA, TLS_ECDH_ECDSA_WITH_3DES_EDE_CBC_SHA, TLS_ECDH_RSA_WITH_3DES_EDE_CBC_SHA, SSL_DHE_RSA_WITH_3DES_EDE_CBC_SHA, SSL_DHE_DSS_WITH_3DES_EDE_CBC_SHA, TLS_ECDHE_ECDSA_WITH_RC4_128_SHA, TLS_ECDHE_RSA_WITH_RC4_128_SHA, SSL_RSA_WITH_RC4_128_SHA, TLS_ECDH_ECDSA_WITH_RC4_128_SHA, TLS_ECDH_RSA_WITH_RC4_128_SHA, SSL_RSA_WITH_RC4_128_MD5, TLS_EMPTY_RENEGOTIATION_INFO_SCSV, TLS_DH_anon_WITH_AES_128_CBC_SHA256, TLS_ECDH_anon_WITH_AES_128_CBC_SHA, TLS_DH_anon_WITH_AES_128_CBC_SHA, TLS_ECDH_anon_WITH_3DES_EDE_CBC_SHA, SSL_DH_anon_WITH_3DES_EDE_CBC_SHA, TLS_ECDH_anon_WITH_RC4_128_SHA, SSL_DH_anon_WITH_RC4_128_MD5, SSL_RSA_WITH_DES_CBC_SHA, SSL_DHE_RSA_WITH_DES_CBC_SHA, SSL_DHE_DSS_WITH_DES_CBC_SHA, SSL_DH_anon_WITH_DES_CBC_SHA, SSL_RSA_EXPORT_WITH_RC4_40_MD5, SSL_DH_anon_EXPORT_WITH_RC4_40_MD5, SSL_RSA_EXPORT_WITH_DES40_CBC_SHA, SSL_DHE_RSA_EXPORT_WITH_DES40_CBC_SHA, SSL_DHE_DSS_EXPORT_WITH_DES40_CBC_SHA, SSL_DH_anon_EXPORT_WITH_DES40_CBC_SHA, TLS_RSA_WITH_NULL_SHA256, TLS_ECDHE_ECDSA_WITH_NULL_SHA, TLS_ECDHE_RSA_WITH_NULL_SHA, SSL_RSA_WITH_NULL_SHA, TLS_ECDH_ECDSA_WITH_NULL_SHA, TLS_ECDH_RSA_WITH_NULL_SHA, TLS_ECDH_anon_WITH_NULL_SHA, SSL_RSA_WITH_NULL_MD5, TLS_KRB5_WITH_3DES_EDE_CBC_SHA, TLS_KRB5_WITH_3DES_EDE_CBC_MD5, TLS_KRB5_WITH_RC4_128_SHA, TLS_KRB5_WITH_RC4_128_MD5, TLS_KRB5_WITH_DES_CBC_SHA, TLS_KRB5_WITH_DES_CBC_MD5, TLS_KRB5_EXPORT_WITH_DES_CBC_40_SHA, TLS_KRB5_EXPORT_WITH_DES_CBC_40_MD5, TLS_KRB5_EXPORT_WITH_RC4_40_SHA, TLS_KRB5_EXPORT_WITH_RC4_40_MD5]

Enabled ciphers: [TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256, TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256, TLS_RSA_WITH_AES_128_CBC_SHA256, TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA256, TLS_ECDH_RSA_WITH_AES_128_CBC_SHA256, TLS_DHE_RSA_WITH_AES_128_CBC_SHA256, TLS_DHE_DSS_WITH_AES_128_CBC_SHA256, TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA, TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA, TLS_RSA_WITH_AES_128_CBC_SHA, TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA, TLS_ECDH_RSA_WITH_AES_128_CBC_SHA, TLS_DHE_RSA_WITH_AES_128_CBC_SHA, TLS_DHE_DSS_WITH_AES_128_CBC_SHA, TLS_ECDHE_ECDSA_WITH_3DES_EDE_CBC_SHA, TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA, SSL_RSA_WITH_3DES_EDE_CBC_SHA, TLS_ECDH_ECDSA_WITH_3DES_EDE_CBC_SHA, TLS_ECDH_RSA_WITH_3DES_EDE_CBC_SHA, SSL_DHE_RSA_WITH_3DES_EDE_CBC_SHA, SSL_DHE_DSS_WITH_3DES_EDE_CBC_SHA, TLS_ECDHE_ECDSA_WITH_RC4_128_SHA, TLS_ECDHE_RSA_WITH_RC4_128_SHA, SSL_RSA_WITH_RC4_128_SHA, TLS_ECDH_ECDSA_WITH_RC4_128_SHA, TLS_ECDH_RSA_WITH_RC4_128_SHA, SSL_RSA_WITH_RC4_128_MD5, TLS_EMPTY_RENEGOTIATION_INFO_SCSV, TLS_DH_anon_WITH_AES_128_CBC_SHA256, TLS_ECDH_anon_WITH_AES_128_CBC_SHA, TLS_DH_anon_WITH_AES_128_CBC_SHA, TLS_ECDH_anon_WITH_3DES_EDE_CBC_SHA, SSL_DH_anon_WITH_3DES_EDE_CBC_SHA, TLS_ECDH_anon_WITH_RC4_128_SHA, SSL_DH_anon_WITH_RC4_128_MD5, SSL_RSA_WITH_DES_CBC_SHA, SSL_DHE_RSA_WITH_DES_CBC_SHA, SSL_DHE_DSS_WITH_DES_CBC_SHA, SSL_DH_anon_WITH_DES_CBC_SHA, SSL_RSA_EXPORT_WITH_RC4_40_MD5, SSL_DH_anon_EXPORT_WITH_RC4_40_MD5, SSL_RSA_EXPORT_WITH_DES40_CBC_SHA, SSL_DHE_RSA_EXPORT_WITH_DES40_CBC_SHA, SSL_DHE_DSS_EXPORT_WITH_DES40_CBC_SHA, SSL_DH_anon_EXPORT_WITH_DES40_CBC_SHA, TLS_RSA_WITH_NULL_SHA256, TLS_ECDHE_ECDSA_WITH_NULL_SHA, TLS_ECDHE_RSA_WITH_NULL_SHA, SSL_RSA_WITH_NULL_SHA, TLS_ECDH_ECDSA_WITH_NULL_SHA, TLS_ECDH_RSA_WITH_NULL_SHA, TLS_ECDH_anon_WITH_NULL_SHA, SSL_RSA_WITH_NULL_MD5, TLS_KRB5_WITH_3DES_EDE_CBC_SHA, TLS_KRB5_WITH_3DES_EDE_CBC_MD5, TLS_KRB5_WITH_RC4_128_SHA, TLS_KRB5_WITH_RC4_128_MD5, TLS_KRB5_WITH_DES_CBC_SHA, TLS_KRB5_WITH_DES_CBC_MD5, TLS_KRB5_EXPORT_WITH_DES_CBC_40_SHA, TLS_KRB5_EXPORT_WITH_DES_CBC_40_MD5, TLS_KRB5_EXPORT_WITH_RC4_40_SHA, TLS_KRB5_EXPORT_WITH_RC4_40_MD5]

java.net.SocketException: Connection reset
	at java.net.SocketInputStream.read(SocketInputStream.java:196)
	at java.net.SocketInputStream.read(SocketInputStream.java:122)
	at sun.security.ssl.InputRecord.readFully(InputRecord.java:442)
	at sun.security.ssl.InputRecord.read(InputRecord.java:480)
	at sun.security.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:934)
	at sun.security.ssl.SSLSocketImpl.performInitialHandshake(SSLSocketImpl.java:1332)
	at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1359)
	at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1343)
	at com.avocent.d.a.a.a(Unknown Source)
	at com.avocent.d.a.a.a(Unknown Source)
	at com.avocent.d.a.a.c(Unknown Source)
	at com.avocent.d.d.b.a(Unknown Source)
	at com.avocent.a.b.w.g(Unknown Source)
	at com.avocent.a.b.w.a(Unknown Source)
	at com.avocent.app.c.l.m(Unknown Source)
	at com.avocent.app.c.l.e(Unknown Source)
	at com.avocent.idrac.kvm.a.e(Unknown Source)
	at com.avocent.idrac.kvm.Main.a(Unknown Source)
	at com.avocent.idrac.kvm.Main.main(Unknown Source)
java.net.SocketException: Connection reset
	at java.net.SocketInputStream.read(SocketInputStream.java:196)
	at java.net.SocketInputStream.read(SocketInputStream.java:122)
	at sun.security.ssl.InputRecord.readFully(InputRecord.java:442)
	at sun.security.ssl.InputRecord.read(InputRecord.java:480)
	at sun.security.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:934)
	at sun.security.ssl.SSLSocketImpl.performInitialHandshake(SSLSocketImpl.java:1332)
	at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1359)
	at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1343)
	at com.avocent.d.a.a.a(Unknown Source)
	at com.avocent.d.a.a.a(Unknown Source)
	at com.avocent.d.a.a.c(Unknown Source)
	at com.avocent.d.d.b.a(Unknown Source)
	at com.avocent.a.b.w.g(Unknown Source)
	at com.avocent.a.b.w.a(Unknown Source)
	at com.avocent.app.c.l.m(Unknown Source)
	at com.avocent.app.c.l.e(Unknown Source)
	at com.avocent.idrac.kvm.a.e(Unknown Source)
	at com.avocent.idrac.kvm.Main.a(Unknown Source)
	at com.avocent.idrac.kvm.Main.main(Unknown Source)
CoreSessionListener : connection failed
in CoreSessionListner : fireOnSessionStateChanged
 KVM session state SESSION_FAILED
 KVM session state SESSION_CLOSING
calling clenaup from CloseViewerClient

R730 runs iDrac8. Which supports HTML5. I recommend you use that instead of JAVA.

@wcypierre
Copy link

I got this to work on Windows by doing the following:

This should work for a long time to come. But there will be more fun when the SSL Cert expires in 2024.

which cert are you referring to? because my kvm stopped working recently (and it was working before)

granted I'm also using avocent which probably differs a bit than the dell version

@Tampa
Copy link

Tampa commented Oct 1, 2024

I decided to just upload my working version for you all.

https://github.com/Tampa/java-idrac-viewer/tree/main

Enjoy!

@ilium007
Copy link

ilium007 commented Oct 1, 2024

Thanks! I’ll fork and add the .sh script for macOS users.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment