假设我在数据仓库内有一台服务器。我可以从我的电脑远程连接到它,但它无法访问互联网。
是否可以配置 SSH 连接或任何其他配置,使远程服务器可以通过我的 PC 连接互联网?
答案1
是的,使用您的电脑作为代理。在您的 PC 上设置代理的方法有很多种,并且服务器可以通过多种方式访问您的 PC 以使用该代理。这完全取决于你的想法。这里有两个例子。
一种选择是在您的 PC 上使用 openssh 为服务器提供连接的ocks5代理。服务器使用带“-D”开关的 ssh 连接到您的 PC。 Firefox 和其他浏览器可以轻松连接到它。这可能会给你一些内幕在终端中使用socks代理执行命令
我过去使用的一个轻量级http代理是tinyproxy。它甚至可以在带有 openwrt 的 TP-Link 路由器上运行。访问http代理通常比socks5代理更容易,尽管socks5代理更强大。
Openssh 的优点是它基本上预装在任何 Linux 计算机上。
答案2
尽管之前的答案是正确的,但它并不完整,所以我想自己以对我有用的方式回答这个问题,这样我就可以帮助其他有相同需要的人。 (我的PC是Windows,我的服务器是Linux)
下载并安装 Windows 版鱿鱼代理。按着这些次序
http://www.mrcnit.com/how-to-setup-squid-proxy-server-in-windows-7810-or-windows-server/
在连接到您的Linux机器之前,使用putty通过SSH连接到您的Linux机器,进入“源端口”中的“连接”->“SSH”->“隧道”选项(如果您的服务器信息保存在putty中,请记住先加载它)在“目的地”字段中输入 3128 在下面的选项中输入 localhost:3128,选择“远程” 单击“添加” 单击“打开”
连接到远程 Linux 盒子后,输入以下命令
导出http_proxy =“http://127.0.0.1:3128”
从现在开始,您执行的每个 wget 或 curl 都会使用您的 SSH 反向连接通过您的 PC 连接访问互联网。
如果您使用的是 Linux PC 并且想要为您的 Linux 服务器提供互联网访问权限,您将不会使用 putty,而是使用您自己的 ssh 客户端。在这种情况下,编辑文件(或创建)~/.ssh/config 并输入以下内容
主机 * ServerAliveInterval 30 RemoteForward 3128 127.0.0.1:3128 RemoteForward 52698 127.0.0.1:52698
这将创建到您的 Linux PC 的反向连接
我希望这能像我曾经那样照亮一些迷失灵魂的道路......