4

I have a Lantronix Spider KVM (Keyboard-Video-Mouse) to remote control a machine over VGA and USB.

It worked well in the past, but recently I got RFB: Unable to connect in the status bar of the Java Web Start application with which I can view the display.

I'm using the Spider firmware v3.0.22 and Java 8, on Ubuntu 16.04. I tried both openjdk and the proprietary Oracle Java distribution, but the result is the same.

How can I debug and fix the problem?

nh2
  • 736
  • 2
  • 10
  • 18

2 Answers2

3

Enabling the Java console for debugging output

In general, it is advisable to show the Java debug console so that you can see all error messages. You can do it this way:

  • Run javaws to open a settings menu, tab Advanced, under Java Console choose Show console.

Java security settings

The problem is increased security restrictions in newer versions of Java.

The Spider by default uses a self-signed certificate.

You need to relax the security settings to permit it, in 2 steps (as described here and in a few other places, but I'll give the details for Linux):

  1. In the GUI settings:

    • Run javaws to open a settings menu.
    • tab Security
    • in the section Exceptions Site List click Edit Site List and
    • add the HTTPS location or IP and port to which the viewer shall connect.

      In my case, that is https://example.com:5555 (beacause I port-forwarded port 5555 through my NAT to the viewer port 443 of the Spider).

  2. In the system-wide Java settings:

    • Edit $JAVA_HOME/security/java.policy (so typically /etc/java-8-openjdk/security/java.policy or /etc/java-8-oracle/security/java.policy depending on your installation) and
    • in the grant { section (under // default permissions granted to all domains, add the line:

      permission java.net.SocketPermission "example.com:5555", "connect, resolve";

Editing the spider.jnlp file to support port forwardings

There is a setting in the Spider UI called Remote Console & HTTPS port (default 443) that determines on which port the the javaws viewer connects to the Spider.

Note that this port is indepentent from the port on which you access the Spider web UI!

If you Spider is behind a NAT with port forward, e.g. 5555 -> 443, you need to either change the setting to 5555 (probably you don't want this if inside the NAT you want to continue using 443), or change the spider.jnlp file that the web UI offers you for download.

In spider.jnlp you need to change:

...
<argument>-PORT</argument>
<argument>443</argument>
<argument>-SSLPORT</argument>
<argument>443</argument>
...

to

...
<argument>-PORT</argument>
<argument>5555</argument>
<argument>-SSLPORT</argument>
<argument>5555</argument>
...

(You can easily find this by searching for 443 in the file.)

Troubleshooting of specific error messages

I encountered thes error messages in the console:

  • Read timed out

    I was trying to connect the Java Web Start application via HTTP, but while the Spider configuration UI supports both HTTP and HTTPS, the Java Web Start application supports only HTTPS. (Got the idea from here (in German).)

  • Java NullPointerException at sun.awt.X11.XPopupMenuPeer.getCaptionSize(XPopupMenuPeer.java:251) when clicking the Options button

    I haven't figured out yet what to do against this, any help would be appreciated.

Further tips

Defining keyboard shortcuts

The options button not working (see problem above) means you cannot access the virtual keyboard or enter keyboard shortcuts. As a workaround, you can add keyboard shortcuts from the Web UI, in the tab Interfaces -> KVM Console Settings, for example:

  • confirm Alt+PRINTSCREEN+B for the SysRq to the Linux kernel reboot the machine

The hotkeys are not actually a setting of the Spider, but a setting of the javaws application; the web UI just generates the .jnlp file accordingly. That means you can also add keyboard shortcuts directly in the JNLP file if you know the key codes.

For example, the shortcut above generates in the .jnlp file (next to the default Ctrl+Alt+Delete button):

<argument>-HOTKEY_0</argument><argument>confirm Ctrl+Alt+Delete</argument>
<argument>-HOTKEYCODE_0</argument><argument>36 f0 37 f0 4e </argument>
<argument>-HOTKEYNAME_0</argument><argument>confirm Ctrl+Alt+Delete</argument>

<argument>-HOTKEY_1</argument><argument>confirm Alt+PRINTSCREEN+B</argument>
<argument>-HOTKEYCODE_1</argument><argument>37 f0 48 f0 2f </argument>
<argument>-HOTKEYNAME_1</argument><argument>confirm Alt+PRINTSCREEN+B</argument>
nh2
  • 736
  • 2
  • 10
  • 18
2

Java is not required anymore if the latest firmware update as the viewer is now running HTML5, which is available in any recent browser.

Here is a screenshot of Safari here:

enter image description here

Links to update the firmware: