web-dev-qa-db-ja.com

apt-トンネルプロキシ経由でインストールを取得しますが、クライアント側からのみsshを実行します

だから...これは私の問題です:

自分のマシンからVPNにアクセスできます。 SSH経由でVPN内のサーバーにアクセスできますが、ファイアウォールがリバースssh接続をブロックしているため、このマシンは裏返しにアクセスできません。そのため、トンネル経由でインターネットを使用してapt-getを使用することはできません。

Lan configuration

どうすればエミュレートできますか:

Sudo ssh -D 9999 root@<machineoutsidevpn>

しかし、VPNの外部から。または、インターネット接続を使用してパッケージをインストールする方法はありますか?

10
rasputino

セットアップ:

コンピューターA

  • インターネットにアクセスできる
  • コンピューターBにアクセスできる
  • SSHがインストールされています

コンピューターB

  • インターネットにアクセスできません
  • OpenSSHサーバーがインストールされています

手順:

  1. コンピューターBへのssh fromコンピューターA

    Sudo ssh -R <selected port>:us.archive.ubuntu.com:80 [email protected]
    
  2. コンピューターBの/etc/apt/apt.confを編集して、次の行を含めます。

    Acquire::http::Proxy "http://localhost:<selected port>";
    Acquire::https::Proxy "https://localhost:<selected port>";
    
  3. コンピューターBでapt-get updateまたはinstallまたはupgradeを実行すると、動作するはずです。


いくつかの注意:

  • [〜#〜] have [〜#〜]コンピュータBを使用してapt-getリポジトリにアクセスしている間、コンピュータAからコンピュータBへのsshの元のセッションをアクティブに保ちます。
  • トンネルを利用するために同じssh接続を使用する必要はありません(つまり、コンピューターBに複数のssh接続がある場合、それらはすべて機能するはずです)

PuTTYの使用

これは、PuTTYを使用して実現することもできます(コンピューターAがWindowsマシンであると想定)。

  1. セッションを開始するときに、[SSH]-> [トンネル]を選択します
  2. ソースポート:<selected port>
  3. 宛先:us.archive.ubuntu.com:80
  4. 「リモート」ラジオボタンを選択します
  5. 「追加」ボタンを選択
  6. 通常どおりにセッションを構成します。
  7. 上記の手順2と3に従ってください
30
James Mertz

オプションは、SSHトンネリングを有効にすることです。これにより、別のプロトコル内でSSHセッションを実行できます。このオプションを使用すると、ファイアウォールをだまして、着信接続が実際にはポート21ではなくhttpポート80の応答であると見なすことができます。以下の例では、微調整が必​​要になる場合があります。お好みに合わせて。

ssh -L 9000:serverIpAddress:80 [email protected]

幸運を!

0
G_G