我有一台机器(Windows 10),位于一个非常严格的防火墙后面,无法通过端口 80、443、53 等连接到公共服务器的 SSH。Putty/Kitty 说“软件导致连接中止”。这样的机器还安装了 3 个 AV,并且用户没有管理员权限。
我假设有一种方法可以“模拟”HTTPS 连接来连接到公共服务器。这样我就可以进行端口转发,并能够访问机器内部网络中的服务器。
然而,我在网上找到的大多数教程都是关于其他的连接到机器(例如,发布网站或连接到我使用 VNC 来实现这一点)。我想要实现的是相反的效果:连接到公共服务器以便启用端口转发,然后在另一端使用家用电脑连接到公共服务器并建立隧道。
即:我通过内部端口Home
与 SSH 服务器的连接将会VPS:22
VPS:5000
通过Firewalled
在 初始化的HTTPS 连接VPS:443
,在 进行监听VPS:5000
,在 创建一个本地隧道,Firewalled:4200
该隧道将连接到10.0.0.1:80
- 这是Firewalled
网络中的一台机器。
由于我无法直接连接到Firewalled
,我需要它来启动连接,创建反向隧道,然后才能使用它。几年前我曾经这样做过,但这个防火墙似乎会破坏任何端口的 SSH 连接(除非我尝试化装舞会它们或 HTTPS 数据包中的某些内容)。
基本上我想这样做:
这里解释一下:https://toic.org/blog/2009/reverse-ssh-port-forwarding/
但就我的情况而言,Office PC
无法发起任何连接,bserver.outside.com
因为普通的 SSH 数据包似乎无法以原始格式穿过防火墙。
非常感谢任何指点!
答案1
如果您的防火墙过滤 ssh 数据包(无论它们使用哪个端口),那么您就无法使用 ssh 隧道。因此,您必须使用其他类型的隧道来代替 ssh 隧道。最好是一种可以穿过防火墙的隧道。
对此可能有多种解决方案,但其中一个候选方案是安全套接字隧道协议(SSTP)。对于防火墙来说,此隧道看起来与普通 HTTPS 流量非常相似。这还有一个额外的好处,即您不需要在 Windows 上为其添加额外的客户端,它是您在要求 Windows 建立 VPN 连接时可以选择的协议之一。
因此您需要在 上运行相应的服务器bserver.outside.com
。一个开源解决方案是SofEther VPN。
请注意,这将通过您的服务器路由您的整个互联网连接,并使您的办公室网络容易受到外部攻击,因为您绕过了防火墙。因此,这不仅会违反您的办公室网络政策,而且如果因此发生任何事情,您都会陷入大麻烦。