如果仅允许端口 22,则通过 ssh-tunnel 进行 apt-get

如果仅允许端口 22,则通过 ssh-tunnel 进行 apt-get

我有一台服务器,只能通过端口 22 访问外部世界(用于从服务器到其他计算机的 ssh 使用)。

我想通过apt-get此服务器安装一些软件包。

我可以通过 ssh 隧道连接到所有端口都可以访问互联网的超级机器来实现此目的吗?

如果是这样,怎么办?因为如果我通过 ssh 启动到我的超级机器的隧道,超级机器的 sshd 会在端口 22 上等待。我假设我不能将同一个端口 22 重复用于隧道,可以吗?

还有其他解决方案吗?

答案1

尝试通过 sshocks 代理运行它:

echo 'Acquire::socks::proxy "socks://localhost:3128/";' | sudo tee -a /etc/apt/apt.conf
ssh -CND localhost:3128 [email protected]

在另一个终端会话中:

sudo apt-get whatever you need

答案2

我无法得到另一个回答上班。

我在一个客户的网络中有一个树莓派,它阻止了端口 80。所以我在自己的机器上安装了 polipo (袜子/http 代理),在该树莓派上通过 ssh 连接,同时创建一个到 polipo-proxy 的隧道。

要安装 polipo(我在 Ubuntu 16.04 机器上使用它):

sudo apt install polipo

这将在 127.0.0.8123 上运行,这足以满足我们的需求。连接到远程机器,同时打开隧道:

ssh -R 8123:localhost:8123 myuser@client_maschine02

现在您需要告诉apt使用代理。我用这个命令来做到这一点:

echo 'Acquire::http::proxy "http://localhost:8123";' | sudo tee -a /etc/apt/apt.conf.d/proxy.conf

现在您可以像往常一样使用 apt 了。

相关内容