SSHセッション経由でリモートマシンにインターネットを提供しますか?


19

リモート/ホストマシン(同じネットワーク/ LAN)にSSH接続しているマシンはインターネットにアクセスできますが、ホストはアクセスできません。

アップデートを実行してホストにパッケージをインストールすると、プロキシをローカルで起動し、それを使用するようにリモートマシンを構成する必要があるため、非常に不便になります。

だから、SSHや他の何かを介してこれを行う簡単な方法があるのだろうかと思っていましたか?

私は内にある複雑さを認識していますが、知りたいと思っていました。

plinkEmacs を使用する(重要な場合)。

回答:


21

インターネットにアクセスできるマシンhasinetとそうでないマシンを呼び出しましょうnoinet

あなたはSSH接続を作ることができればから noinet にします hasinet

これは、OpenSSHの組み込みSOCKSプロキシを使用して簡単に実行できます。このコマンドはnoinet、ポートでリッスンするときにSOCKSプロキシをセットアップします1080

noinet$ ssh -D 1080 hasinet

からのみSSH接続 確立できる場合noinet hasinet

OpenSSHのSOCKSプロキシを実行してhasinetから、ポートをnoinetに転送できますhasinet。これは、次のような1つのコマンドで巧妙に行うことができます(@Patrickに感謝):

hasinet$ ssh -D 1080 localhost -t ssh -R 1080:localhost:1080 noinet

SOCKSプロキシの使用方法

このプロキシの使用方法は、アプリケーションによって異なります。一部のアプリケーションにはSOCKSプロキシが組み込まれています。その場合は、でプロキシを使用するようにアプリを構成する必要がありますlocalhost:1080。そうでない場合は、@ sciurusが示唆するように、プロキシチェーンまたはレッドソックを使用できます。tsocksは、一部のコマンドにネットワークアクセスのみを提供する必要がある場合、より軽量なソリューションです。


1
noinetが抜け出す必要があるときにhasinetにsocksプロキシをインストールする代わりに、ただssh -t -D 1080 localhost ssh -R 1080:localhost:1080 noinet(1つのコマンドがあります)。
パトリック14

2

SSH経由でこれを行う方法は次のとおりです。

インターネットにアクセスできないマシンで、実行します

ssh -D 8080 machine_with_internet_access

8080は未使用のポート番号に置き換えることができますが、

次に、次のようなソフトウェアをインストールします proxychainsredsocksし、localhost:8080に接続するように構成し、それらを介したインターネットアクセスが必要なソフトウェアを実行します。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.