我正在尝试从 PHP/HTML 网页连接到我的 XenServer VM 控制台。
VNC 控制台仅接受来自 localhost 的连接,每个控制台使用不同的端口(5902、5903、5904 等)。
我可以通过使用 Putty 打开 SSH 隧道然后转发端口(例如 5902)连接到控制台。然后我可以使用 VNC 客户端使用localhost:5902
.
我现在正试图通过网页找到一种方法。
如果我在我的 PC 上通过 putty 设置隧道,然后使用通过网站加载的 TightVNC java 小程序,我可以连接到控制台。
- 我的电脑 - 192.168.0.3
- 阿帕奇 - 192.168.0.200
- XenServer - 192.168.0.100
我的 PC -> SSH 隧道 -> XenServer
VNC-client(192.168.0.3) -> localhost:5902(Putty tunnel) -> VNC-console(192.168.0.100:5902)
我需要一种以编程方式执行此操作的方法。
我安装了 ssh2 扩展并尝试过这样的操作:
$connection = ssh2_connect("192.168.0.100", 22);
if(ssh2_auth_password($connection, "user", "password"))
{
if ($tunnel = ssh2_tunnel($connection, "127.0.0.1", 5902))
{
echo "Tunnel creation complete.\n";
}else{
echo "Tunnel creation failed.\n";
}
}
else
{
echo "failed!";
}
<applet archive="tightvnc-jviewer.jar"code="com.glavsoft.viewer.Viewer" width="1" height="1">
<param name="Host" value="localhost" />
<param name="Port" value="5902" />
<param name="OpenNewWindow" value="yes" />
<param name="ShowControls" value="yes" />
<param name="ViewOnly" value="no" />
<param name="AllowClipboardTransfer" value="yes" />
<param name="RemoteCharset" value="standard" />
<param name="ShareDesktop" value="yes" />
<param name="AllowCopyRect" value="yes" />
<param name="Encoding" value="Tight" />
<param name="CompressionLevel" value="" />
<param name="JpegImageQuality" value="" />
<param name="LocalPointer" value="On" />
<param name="ConvertToASCII" value="no" />
<param name="colorDepth" value="" />
<param name="ScalingFactor" value="100" />
<param name="AllowAppletInteractiveConnections" value="no" />
</applet>
所以我的主要问题是我如何使用小程序从网页隧道进入这些 VNC 控制台?