ホストマシンがSSHサーバーソフトウェアも実行しており、インターネットからアクセスできる場合は、コマンドを使用できますssh -L 22065:127.0.0.1:22 user@192.168.122.65
。この-L
オプションは次の方法で使用されます。
-L [bind_address:]port:host:hostport
Specifies that the given port on the local (client) host is to be
forwarded to the given host and port on the remote side. This
works by allocating a socket to listen to port on the local side,
optionally bound to the specified bind_address. Whenever a con‐
nection is made to this port, the connection is forwarded over
the secure channel, and a connection is made to host port
hostport from the remote machine. Port forwardings can also be
specified in the configuration file. IPv6 addresses can be spec‐
ified by enclosing the address in square brackets. Only the
superuser can forward privileged ports. By default, the local
port is bound in accordance with the GatewayPorts setting. How‐
ever, an explicit bind_address may be used to bind the connection
to a specific address. The bind_address of “localhost” indicates
that the listening port be bound for local use only, while an
empty address or ‘*’ indicates that the port should be available
from all interfaces.
ホストのIPアドレスが10.0.0.5であるとします。インターネット上のシステムから、コマンドを使用してホストのポート22065への接続を確立できますssh -p 22065 user@10.0.0.5
。注:ホストのパブリックIPアドレスを使用している場合でも、ゲストシステムの有効なユーザーIDとパスワードを提供する必要があります(例の目的でプライベートIPアドレス範囲10.xxxのアドレスを使用しています)。接続性は実際にゲストにトンネリングされます。
ホストのポート22065への接続が確立されると、ホストから192.168.122.65のゲストシステムへの最初のSSH接続によって確立されたSSHトンネルを介して転送されます。インターネット上のSSHクライアントに関しては、ポート22065でゲストシステムに直接接続しますが、実際には10.0.0.5ホストからSSHトンネルを介してそのシステムのポート22に接続しています。注:これが機能するためには、ホストからゲストシステムへのSSH接続がその時点で起動している必要があります。
私が置いた場所に127.0.0.1
はputもできますが192.168.122.65
、接続は外部のシステムではなく、localhostアドレス、つまりゲスト自体への接続なので、使用します127.0.0.1
必要なファイアウォールルールについては、ホストと、ポート22065または選択したポートへの着信TCP接続を許可するインターネットとの間のファイアウォールにルールを設定する必要があります。ゲストシステムに追加のファイアウォールルールは必要ありません。