SSHセッションを介してリモートコンピュータにインターネットサービスを提供しますか?

SSHセッションを介してリモートコンピュータにインターネットサービスを提供しますか?

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

ホストシステムでアップデートを実行してパッケージをインストールすることは、エージェントをローカルで起動し、それを使用するようにリモートシステムを設定する必要があるため、非常に不便です。

SSHなどでこれを行うより簡単な方法があるかどうか疑問に思います。

私は複雑さを知っていますが、知りたいです。

Emacs経由で使用してくださいplink(重要な場合)。

答え1

私たちはインターネットにアクセスできる機械hasinetとそうでない機械を指しますnoinet

SSH接続を確立できる場合~から noinet 到着 hasinet

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

noinet$ ssh -D 1080 hasinet

SSH接続のみを設定できる場合到着 noinet ~から hasinet

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

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

SOCKSプロキシの使用方法

このプロキシの使用方法はアプリケーションによって異なります。一部のアプリケーションは組み込みSOCKSプロキシをサポートしています。この場合、アプリケーションをonに設定する必要がありますlocalhost:1080。そうでない場合は、@sciurusが提案したようにプロキシチェーンまたはredsockを使用できます。靴下特定のコマンドに対してのみネットワークアクセスが必要な場合、これはより軽いソリューションです。

答え2

-R組み込みで、@smammyが提案した長いコマンドを必要としないSOCKS4 / 5アクションでフラグを使用できます。

[hasinet]$ ssh -R 1080 noinet

次のプロキシを使用できます。

[noinet]$ curl -x socks5h://127.0.0.1:1080 http://www.google.it

-Rこれは、ターゲットホストが提供されていない場合、このフラグがSOCK4 / 5プロキシに置き換えられるために機能します。男性SSHから:

       -R [bind_address:] port:host:hostport
       -R [bind_address:] port
              Specifies that connections to the given TCP port or Unix socket on the remote (server) host are to be forwarded to the local side.

              This works by allocating a socket to listen to either a TCP port or to a Unix socket on the remote side.  Whenever a connection is made to this port or Unix socket, the connection is forwarded over  the  secure  channel,
              and a connection is made from the local machine to either an explicit destination specified by host port hostport, or local_socket, or, if no explicit destination was specified, ssh will act as a SOCKS 4/5 proxy and for‐
              ward connections to the destinations requested by the remote SOCKS client.
              [snip]

答え3

SSHを介してこれを行う方法は次のとおりです。

インターネットにアクセスできないコンピュータで次を実行してください。

ssh -D 8080 machine_with_internet_access

交換できます8080未使用のポート番号、

次に、次のソフトウェアをインストールします。プロキシチェーンまたはレッドソックス、接続するように設定ローカルホスト:8080、これによりインターネットアクセスが必要なソフトウェアを実行します。

関連情報