ssh -gと0.0.0.0は重複していますか?

ssh -gと0.0.0.0は重複していますか?

次の2つのコマンド間に違いはありますか?

ssh -g -L 8080:localhost:80 [email protected]
ssh -L 8080:0.0.0.0:80 [email protected]

答え1

これは互いに関係のない2つの値です。

opensshオプション-gssh_configクライアントオプションの指定と同じ-o GatewayPorts=yes。前に配置できる未作成のオプションセクションに影響します。-Lオプション:

-L [bind_address:]port:host:hostport

-gGatewayPortsデフォルト)またはローカルバインディングの両方が指定されていない場合、nosshはデフォルトで次のバインディングに設定されます。ローカルホスト(これは再びIPv4 127.0.0.1+ IPv6を意味します::1)。有効-g(または-o GatewayPorts=yes)を使用すると、デフォルトはINADDR_ANY(0.0.0.0)+ in6addr_any(::)です。存在するデフォルト値やオプションに関係なく、オプションにバインドするIPアドレスを追加してクライアントのローカルアドレスを上書きできます-L

だから:

ssh -g -L 8080:localhost:80 [email protected]

以下と同じ:

ssh -L 0.0.0.0:8080:localhost:80 [email protected]

または、IPv6対応システムでは(両方のプロトコルが必要な場合):

ssh -L 0.0.0.0:8080:localhost:80 -L '[::]:8080:localhost:80' [email protected]

これで-g、OPに関連しない2番目のコマンドは次のようになります。

ssh -L 8080:0.0.0.0:80 [email protected]

一般的に明らかなエラー:リモート側に通知します。つながるいいえ製本INADDR_ANYへ。

一つのために目的地つまり、ターゲットを選択せず​​に、システムにソケットの接続時期を決定させてください。この場合、リモートシステムは(sshdリモートサーバーからの要求に応じて)独自のアドレスのいずれかを選択し、127.0.0.1または$ HOSTを選択できます。それとも私たちは知りません(リモートシステムテストでは127.0.0.1)。

connect(4, {sa_family=AF_INET, sin_port=htons(80), sin_addr=inet_addr("0.0.0.0")}, 16)

127.0.0.1から127.0.0.1までの実際の接続(マイテスト)

関連情報