通过中间机器创建桥接/转发代理/隧道,绕过 VPN 阻止连接到工作机器

通过中间机器创建桥接/转发代理/隧道,绕过 VPN 阻止连接到工作机器

我不确定我的问题是否有意义,但我会尝试描述我正在做的事情。

我有三台机器 A、B 和 C。A 是一台不暴露在外界的工作机器。B 是我家里的机器,具有 SSH 访问权限,A 可以通过 SSH 连接到 B。如果我连接到我工作的 VPN,我就可以从 B 连接到 A。C 是我在大学网络上使用的笔记本电脑。基本上我有以下设备:

+----VPN-----+
|            |
V            |
A----SSH---->B<--SSH--C

我的大学封锁了所有 VPN 连接,所以我无法使用 VPN 工作。我想知道是否有办法绕过这个封锁,以便能够访问我的工作机器?

有没有办法“转发”VPN 连接,或者通过机器 B 设置隧道,以便 C 可以到达 A?我有一个相当复杂的想法,就是在 A 上设置一个代理,通过 SSH 连接将代理端口转发到 B,然后通过 SSH 从 C 到 B 设置隧道,将本地端口转发到 B 上的代理端口。但是,一旦设置了代理,我就无法真正进行远程端口转发(SSH 会挂起)。

有没有什么办法可以完成我想做的事情?

答案1

我认为只要您维持 A 和 B 之间的 VPN 连接,您就应该能够使用 ssh 代理魔法进行连接。

看起来这对你有用:

foo@C:~ $ ssh -o ProxyCommand="ssh -W %h:%p <B>" <A>

无需 VPN,通过远程端口转发保持从 A 到 B 的永久 ssh 连接即可实现此目的

foo@A:~ $ ssh -R 2222:localhost:22 B # ensure that this connection is up forever

foo@C:~ $ ssh -o ProxyCommand="ssh -W localhost:2222 <B>" <A>

更多 hack 请点击这里: https://en.wikibooks.org/wiki/OpenSSH/Cookbook/Proxies_and_Jump_Hosts

相关内容