apt-get通过隧道代理安装,但仅从客户端ssh

时间:2016-04-01 10:26:52

标签: ubuntu proxy firewall vpn apt

所以......这是我的问题:

我可以从我的机器访问VPN。我可以通过SSH访问VPN中的服务器,但是这台机器内部无法访问,因为防火墙阻止了反向ssh连接。所以我不能通过隧道使用互联网来使用apt-get。

Lan configuration

我如何效仿:

sudo ssh -D 9999 root@<machineoutsidevpn>

但是从VPN外面。 或者以任何方式使用Internet连接来安装软件包?

2 个答案:

答案 0 :(得分:26)

设定:

计算机A

  • 可以访问互联网
  • 可以访问计算机B
  • 已安装SSH

计算机B

  • 无法访问互联网
  • 已安装OpenSSH服务器

步骤:

  1. ssh到计算机B 来自计算机A

    sudo ssh -R <selected port>:us.archive.ubuntu.com:80 user@computerb.host
    
  2. 编辑计算机B的/etc/apt/apt.conf以包含以下行:

    Acquire::http::Proxy "http://localhost:<selected port>";
    Acquire::https::Proxy "https://localhost:<selected port>";
    
  3. 在计算机B上运行您的apt-get updateinstallupgrade,它应该有效。

  4. 一些注释:

    • ,以便在使用计算机B访问apt-get存储库时,将ssh的原始会话从计算机A保持为计算机B。
    • 您不必使用相同的ssh连接来使用隧道(这意味着如果您有多个ssh连接到计算机B,它们应该全部工作)

    使用Putty

    这也可以使用Putty来实现(假设计算机A是Windows机器)。

    1. 开始会话时,选择SSH - &gt;隧道
    2. 来源端口:<selected port>
    3. 目的地:us.archive.ubuntu.com:80
    4. 选择“远程”单选按钮
    5. 选择“添加”按钮
    6. 像往常一样配置会话。
    7. 按照步骤2&amp; 3以上

答案 1 :(得分:0)

一个选项是启用SSH隧道。这允许你在另一个协议中运行SSH会话,这个选项让你绕过防火墙,愚弄它认为传入连接实际上是一个http端口80回复而不是端口21.一个例子如下,你可能需要很好的调整它符合你的喜好。

ssh -L 9000:serverIpAddress:80 user@example.com

祝你好运!