Ste*_*ski 13 proxy ipmi supermicro
这是一个带有 X8DT3 主板的 SuperMicro 服务器,其中包含一个板载 IPMI BMC。在这种情况下,BMC 是Winbond WPCM450)。我相信许多戴尔服务器都使用这种类似的 BMC 模型。
IPMI 的常见做法是将其隔离到私有的、不可路由的网络。在我们的例子中,所有 IPMI 卡都插入了一个位于 192.168.1.0/24 的私有管理 LAN,该 LAN 没有通往外部世界的路由。如果我将笔记本电脑插入 192.168.1.0/24 网络,我可以验证所有 IPMI 功能是否按预期工作,包括远程控制台。
我需要通过某种加密连接从不同的网络访问所有 IPMI 功能。
我尝试了 SSH 端口转发。这适用于少数服务器,但是,我们有近 100 个这样的服务器,并且维护 SSH 客户端配置以在 100 个服务器上转发 6 个端口是不切实际的。
所以我想我会尝试一个SOCKS 代理。这有效,但似乎远程控制台应用程序不遵守我的系统范围代理设置。
我设置了一个 SOCKS 代理。详细日志记录允许我查看网络活动,以及端口是否正在转发。
ssh -v -D 3333 stefanl@gateway.example.org
Run Code Online (Sandbox Code Playgroud)我将系统配置为使用 SOCKS 代理。我确认 Java 正在使用 SOCKS 代理设置。
SOCKS 代理正在工作。我使用我的网络浏览器通过http://192.168.1.100/连接到 BMC 。我可以登录、查看服务器运行状况、打开或关闭机器等。由于启用了 SSH 详细日志记录,我可以看到进度。
这就是它变得棘手的地方:
我单击“启动控制台”按钮,该按钮会下载一个名为jviewer.jnlp
. JNLP 文件使用 Java Web Start 打开。
Java 窗口打开。标题栏在标题栏中显示“重定向查看器”。有“视频”“键盘”“鼠标”等菜单。这确认Java能够通过代理下载应用程序,并启动应用程序。
60 秒后,应用程序超时并简单地说“打开视频套接字时出错”。这是一个屏幕截图。如果这有效,我会看到一个 VNC 风格的窗口。我的 SSH 日志显示没有尝试连接到端口 5900/5901。这表明 Java 应用程序启动了 VNC 应用程序,但 VNC 应用程序忽略了系统范围的代理设置,因此无法连接到远程主机。
Java 似乎遵守我的系统范围代理设置,但是这个 VNC 应用程序似乎忽略了它。
有什么办法可以强制这个 VNC 应用程序使用我的系统范围代理设置吗?
kor*_*man 23
我发现最好不要为此使用socks 代理,而是在本地主机IP 上转发所有必需的端口。为了逃避任何现有服务,我使用了与 127.0.0.1 不同的 IP。假设您选择了 127.0.0.2,并且代理后面的服务器是 192.168.1.1,这是要使用的 ssh 命令:
ssh 用户@代理服务器 -L127.0.0.2:443:192.168.1.1:443 -L127.0.0.2:5900:192.168.1.1:5900 -L127.0.0.2:5901:192.1590-L127.0.0.2:5900 .0.0.2:5120:192.168.1.1:5120 -L127.0.0.2:5123:192.168.1.1:5123 -C
然后就可以浏览https://127.0.0.2,照常使用KVM了。
转发的 TCP 端口是 5900 和 5901 用于控制和视频,5120 用于虚拟 CD,5123 用于虚拟软盘(我没有测试后两个)。添加 -C 用于压缩,但我不知道发送的任何内容是否适合压缩。
在 linux 上,另一种更舒适(理论上性能更好)的方法是使用sshuttle,它使用 iptables 和代理服务器上的 python 解释器通过 ssh 透明地转发所有 TCP 连接。
sshuttle -r 用户@代理服务器 192.168.1.1
提示:sshuttle 正在 Debian 中打包。
我还不能转发的是 UDP 端口 623,它可以用于 ipmitool,IPMI 的 CLI 连接。这里 有 几个关于这个教程,但没有制定出适合我。无论如何,Java KVM 已经足够了。
归档时间: |
|
查看次数: |
20512 次 |
最近记录: |