SSH 可以使用 thttpd 通过 HTTPS 进行隧道传输吗?

SSH 可以使用 thttpd 通过 HTTPS 进行隧道传输吗?

我需要使用 thttpd 通过 HTTPS 端口为我的 SSH 服务器建立隧道(如果需要,我可以改用 lighttpd,但我尽量避免安装 Apache,因为它功能不足)。我找不到任何可以证实或否认 thttpd 此功能的东西。

答案1

如果它有 TCP/IP 监听端口,您可以设置一个 SSH 隧道。您可能想先检查一下该端口是否已在客户端系统上使用。您可以使用 netstat 命令执行此操作。在 Windows 上,您可以运行

# netstat -ano

在 Linux 上

# netstat -anut |grep LISTEN

SSH 隧道可能有点难以理解。网上有这么多图表和示例,我甚至都感到困惑,而我每天都在使用隧道。我发现最好这样想:您的 SSH 客户端打开与服务器的连接,并将该网络的端口重定向到您的 *客户端系统,在您的 *客户端系统上为每次重定向创建一个监听端口。

-*-客户端系统是您使用 SSH 客户端的系统,也可以称为您的本地系统

听起来您想要一个 HTTPS 端口 443 隧道的示例!

从 Windows 客户端系统

本示例将使用适用于 Windows 的“Putty”客户端,可在 Putty 下载站点上找到这里 我们假设您在运行 SSH 服务器的同一系统上在端口 443 上运行 HTTPS。我们将使用本地主机 IP 地址 127.0.0.1(127.0.0.1 将始终返回您登录的系统)

从 Putty 窗口导航到左栏“类别”选项菜单。展开“连接”>“SSH”>“隧道”菜单。在“源端口”文本字段中输入443在“目的地”文本字段中输入127.0.0.1:443然后点击添加按钮。“转发端口”文本区域现在将显示“L443 127.0.0.1:443”

替代文本
(来源:hilands.com

从 Linux 终端

这应该可行但我没有测试过......

# ssh -L 443:127.0.0.1:443 <sshuser>@<sshserver ip>

但是我的 SSH 服务器与 HTTPS 服务器位于不同的服务器上!

这很容易将上述示例中的 127.0.0.1 替换为 SSH 服务器用于连接 HTTPS 服务器的 IP 地址!

明白了

配置 ssh 隧道后,您现在可以在客户端计算机上打开浏览器。您将在本地浏览器中使用 127.0.0.1,而不是转到正常 IP 地址端口 443。

https://127.0.0.1

这样做可能会破坏您的 SSL 证书。在 Firefox 中,您将收到以下错误消息:

替代文本
(来源:hilands.com

按照提示继续并允许您的证书。

答案2

你试过吗?如果没有,为什么不试?如果你甚至都没有试过,为什么还要在这里问问题?只要你只说使用端口 443 绕过一些防火墙,而不是真正通过 HTTPS 建立隧道,那么它应该可以正常工作(从你的问题中看不太清楚,你提到了两者)。

答案3

我完全不了解 thttpd。我对 lighttpd 也知之甚少。

但如果他们可以提供 HTTPS,你可以使用类似的工具SSL 探索器。它能做的事情远不止让你通过 SSH 访问你的网络。

否则,这些工具可能会帮助你:

  • 隧道
  • 螺旋状
  • 代理隧道

有些甚至可以与经典 HTTP 兼容(不需要 SSL/TLS)。

答案4

尽管 Putty 可以正常工作,但我建议使用其他选项:您可以创建一个漂亮的隧道(显然是在端口 443 上,从技术上来说不是 https,但可能已经足够了) 使用 WinSSHD 和 Tunnelier 作为客户端。

相关内容