我有一个Lantronix SpiderKVM(键盘-视频-鼠标)通过 VGA 和 USB 远程控制机器。
以前用起来还不错,但最近我RFB: Unable to connect
在状态栏中Java Web 启动我可以使用该应用程序查看显示内容。
我在 Ubuntu 16.04 上使用 Spider 固件 v3.0.22 和 Java 8。我尝试了两者openjdk
以及专有的 Oracle Java 发行版,但结果是一样的。
我该如何调试并修复该问题?
答案1
启用 Java 控制台进行调试输出
通常,建议显示 Java 调试控制台,以便您可以查看所有错误消息。您可以这样做:
- 运行
javaws
打开设置菜单,选项卡Advanced
,Java Console
选择Show console
。
Java 安全设置
问题在于 Java 的新版本中增加了安全限制。
Spider 默认使用自签名证书。
您需要放宽安全设置以允许它,分两步进行(如下所述这里以及其他一些地方,但我将提供 Linux 的详细信息):
在 GUI 设置中:
- 运行
javaws
以打开设置菜单。 - 标签
Security
- 在本节中例外站点列表点击
Edit Site List
并 添加查看器应连接的 HTTPS 位置或 IP 和端口。
就我而言,情况确实如此
https://example.com:5555
(因为我通过 NAT 将端口 5555 转发到 Spider 的查看器端口 443)。
- 运行
在系统范围的 Java 设置中:
- 编辑
$JAVA_HOME/security/java.policy
(通常/etc/java-8-openjdk/security/java.policy
或/etc/java-8-oracle/security/java.policy
取决于您的安装)并 在
grant {
部分中(在 下// default permissions granted to all domains
,添加行:permission java.net.SocketPermission "example.com:5555", "connect, resolve";
- 编辑
编辑spider.jnlp
文件以支持端口转发
Spider UI 中有一个名为Remote Console & HTTPS port
(默认 443) 的设置,它决定了 javaws 查看器在哪个端口上连接到 Spider。
请注意,此端口与您访问 Spider Web UI 的端口无关!
例如,如果您的 Spider 位于具有端口转发功能的 NAT 后面,5555 -> 443
您需要将设置更改为5555
(如果您想在 NAT 内部继续使用 443,那么您可能不希望这样),或者更改spider.jnlp
Web UI 提供给您下载的文件。
您spider.jnlp
需要更改:
...
<argument>-PORT</argument>
<argument>443</argument>
<argument>-SSLPORT</argument>
<argument>443</argument>
...
到
...
<argument>-PORT</argument>
<argument>5555</argument>
<argument>-SSLPORT</argument>
<argument>5555</argument>
...
443
(您可以通过在文件中搜索轻松找到它。)
特定错误消息的故障排除
我在控制台中遇到了以下错误消息:
Read timed out
我尝试通过 HTTP 连接 Java Web Start 应用程序,但 Spider 配置 UI 支持 HTTP 和 HTTPS,而 Java Web Start 应用程序仅支持 HTTPS。(这个想法来自这里(在德国)。)
单击按钮
NullPointerException
at sun.awt.X11.XPopupMenuPeer.getCaptionSize(XPopupMenuPeer.java:251)
时JavaOptions
我还没有想出如何解决这个问题,如果能得到任何帮助我将不胜感激。
更多提示
定义键盘快捷键
选项按钮不起作用(请参阅上面的问题)意味着您无法访问虚拟键盘或输入键盘快捷键。作为一种解决方法,您可以从 Web UI 的选项卡中添加键盘快捷键Interfaces -> KVM Console Settings
,例如:
confirm Alt+PRINTSCREEN+B
对于 Linux 内核的 SysRq 重新启动机器
热键实际上不是 Spider 的设置,而是 javaws 应用程序的设置;Web UI 只是.jnlp
相应地生成文件。这意味着如果您知道键代码,您也可以直接在 JNLP 文件中添加键盘快捷键。
例如,上面的快捷方式在文件中生成.jnlp
(默认按钮旁边Ctrl+Alt+Delete
):
<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>
答案2
如果最新的固件更新,则不再需要 Java,因为查看器现在运行 HTML5,它可在任何最新的浏览器中使用。
以下是 Safari 的屏幕截图:
更新固件的链接: