为什么我无法通过 HTTPS 隧道建立到家庭服务器的 SSH?

为什么我无法通过 HTTPS 隧道建立到家庭服务器的 SSH?

我试图通过使用 HTTPS 上的 SSH 隧道绕过学校的代理服务器,因为它有不必要的限制。我成功地使用了免费 SSH 隧道服务, 和代理隧道,它据称可以通过代理创建到远程服务器的通用 HTTP(S) 隧道。

问题是我使用的隧道服务不是很可靠。9/10 次我尝试使用收到的 命令创建隧道,因此我认为服务器只是超载了。ssh [email protected] -p 443 -ND 1080 -o"ProxyCommand /usr/local/bin/proxytunnel -p proxy.ip.address:port —v -d %h:%p"ssh_exchange_identification: connection closed by remote host

这个服务器的速度也相当慢,这在免费服务中是可以预料到的。这个方法确实有效,只是不是我想要的。

因此,我家里有一台额外的计算机sshd在监听 443 端口,并且我在路由器上对 443 端口进行了端口转发。我已从不在代理后面的远程网络连接到家庭服务器,因此我知道可以从外部访问它。

现在,当我从受限网络运行时,会发生一些有趣的事情:。每次我尝试从受限网络连接时,无论如何,都会出现这种情况。ssh [email protected] -p 443 -o"ProxyCommand /usr/local/bin/proxytunnel -p proxy.ip.address:port -v -d %h:%p"ssh_exchange_identification: connection closed by remote host

那么为什么我可以连接到免费服务器,但它不允许我使用我的家庭服务器?添加-vvv(对于ssh命令的命令部分,不是proxytunnel)不会产生任何有用的信息,除了无法连接到家庭服务器。如果它有帮助,我认为proxytunnel不是罪魁祸首,因为它打印出Via proxy.ip.address:port -> home.server.ip:port,这意味着它已连接到代理。proxy.ip.address是我试图绕过的限制性代理,只是为了澄清一下。

答案1

我发现了问题:

我学校的代理服务器阻止了原始 IP 地址(即123.45.79.911:),因此我设置了一个 DNS 服务器来将连接重定向hostname.net到我的家庭 IP 地址。

答案2

我刚刚放了整套代理指令,它们是:

RequestReadTimeout header=0,MinRate=500 body=0,MinRate=500
ProxyRequests on
  AllowCONNECT 22
  <Proxy localhost>
    Order allow,deny
    Allow from all
  </Proxy>

在 httpd.conf 中的第一个<VirtualHost>块内,它就成功了 - “405 方法不允许”永远消失了。

相关内容