apt-get install через туннельный прокси, но ssh только со стороны клиента

Так... это моя проблема:

Я могу получить доступ к VPN с моей машины. Я могу получить доступ к серверу в VPN через SSH, но эта машина не имеет доступа наизнанку, потому что брандмауэр блокирует обратные ssh-соединения. Поэтому я не могу использовать Интернет через туннель для использования apt-get.

Lan configuration

Как я могу подражать:

sudo ssh -D 9999 root@<machineoutsidevpn>

но извне VPN. Или любой способ использовать подключение к Интернету для установки пакетов?

2 ответов


настройка:

Компьютер A

  • доступ в интернет
  • имеет доступ к компьютеру B
  • SSH установлен

Компьютер B

  • не имеет доступа к интернет
  • установлен сервер OpenSSH

действия:

  1. ssh в компьютер B С компьютер А

    sudo ssh -R <selected port>:us.archive.ubuntu.com:80 user@computerb.host
    
  2. редактировать компьютера Б /etc/apt/apt.conf включить следующие строки:

    Acquire::http::Proxy "http://localhost:<selected port>";
    Acquire::https::Proxy "https://localhost:<selected port>";
    
  3. запустить свой apt-get update или install или upgrade на компьютере B и он должен работать.


несколько замечаний:

  • вы есть чтобы сохранить исходный сеанс ssh с компьютера A на компьютер B активным при использовании компьютера B для доступа к репозиториям apt-get.
  • вы Не нужно использовать одно и то же ssh-соединение для использования туннеля (это означает, что если у вас есть несколько ssh-соединений в компьютер B, все они должны работать)

С Помощью Putty

это также может быть достигнуто с помощью шпатлевки (при условии, что компьютер A является машиной Windows).

  1. при запуске сеанса выберите SSH --> Tunnels
  2. Порт Источника: <selected port>
  3. назначение: us.archive.ubuntu.com:80
  4. выберите "Дистанционный" переключатель
  5. выберите кнопку "Добавить"
  6. настройте сеанс, как обычно.
  7. выполните шаги 2 и 3 выше

опция будет включать туннелирование SSH. Это позволяет запускать сеанс SSH внутри другого протокола, эта опция позволяет обойти брандмауэр, обманывая его, думая, что входящее соединение на самом деле является ответом http-порта 80 вместо порта 21. пример ниже, вам может потребоваться тонкая настройка по своему вкусу.

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

удачи!