设置 ssh 隧道以使用专用网络内计算机的 IP 进行浏览

设置 ssh 隧道以使用专用网络内计算机的 IP 进行浏览

我认为看下面的抽签我的问题更容易理解。这个想法是,由于某些原因(例如访问我公司的内网,或者访问一些只有我公司才能访问的网页),我想使用我公司的 IP 浏览互联网,但从家里。问题是,要访问“内部”我的电脑,我必须穿过大门。

一种解决方案当然是登录到gate,然后从那里到我的电脑,使用ssh -X.进入后,我可以打开一个 Firefox 窗口,该窗口将在我家里的电脑上弹出。这种方法的问题是速度非常慢,因为我必须通过网络发送整个 GUI,而不仅仅是 Internet 包。

解决这个问题的一个更好的想法是使用ssh -D8080 ip.remote.company创建一个隧道,然后在我家里的电脑上设置 Firefox 以使用远程计算机作为代理,通过这个安全通道发送互联网包(但不是 GUI),例如解释于许多网页

当然,问题是我必须穿过大门,这增加了一定程度的复杂性,所以我必须设置(我认为)两条隧道,而不是仅仅一条,图中用红色绘制的隧道。

如何设置端口转发(或类似的东西)以通过我公司的网络从外部隧道连接到互联网,如图所示?当然,我在三台计算机上都有访问权限和帐户。

设置

答案1

假设有一台基于 Unix 的源 PC 和门... ssh -t -l gateuser -L7777:127.0.0.1:7778 gate "ssh -l inside_user -D7778 -N inside_pc"

然后使用localhost端口7777作为socks代理。

我建议使用 autossh 来保持连接......这可能是另一个问题......

说明:从 localhost,将端口 7777 转发到 gateway 的端口 7778。分配一个终端,以允许您回答 ssh 提示。在gate上,运行引用的ssh命令以在gate的端口7778上运行动态转发。(转发到初始PC的7777)

答案2

尝试这种方法。在 SSH 客户端配置文件(例如 )中添加~/.ssh/config以下配置:

Host mypcinside
# replace 10.1.2.3 with the IP of your PC in the local network
# as seen from the gate.
ProxyCommand ssh -q gate nc -q0 10.1.2.3 22
DynamicForward 8080

Host gate
# replace with real hostname
Hostname gate.mycompany.com

这将创建一个普通 TCP 连接端口 22 的隧道,通过网关连接到您的电脑,并启动 SSH 连接,就像您在网关上一样。使用

$ ssh mypcinside

连接。

要求之一是 gateway 已nc安装(或替换为另一个类似 netcat 的工具),并且它允许您在不使用 SSH 客户端的情况下启动普通 TCP 端口 22 连接。在标准配置中,这是完全可能的,但可能会采取一些强制安全措施来防止这种情况发生。

相关内容