web-dev-qa-db-ja.com

sshトンネルポートの範囲

私はsshトンネリングを次のように使用します:ssh -i <my_file> -R *:0:localhost:80 <my_name>@<Host>

ポート= 0の場合、サーバーは私にポートを割り当てます。サーバーはどのように選択し、どのように範囲を構成できますか?

2
Thomas

サーバー側のポート範囲をsshに指定して選択することはできないと確信していますが、クライアント側では指定できません。サーバー上の* nixライクなシステムを想定すると、/proc/sys/net/ipv4/ip_local_port_rangeでエフェメラルポート範囲を設定できるはずです。

おそらくもっと便利なのは、サーバー側で割り当てられたポートを取得したい場合です。これについては、 ここ および ここ で説明しました。

1
crimson-egret

OSがポートをTCPまたはUDPエンドポイントに割り当てる場合、 エフェメラルポート範囲 を使用します。オペレーティングシステムは、この範囲から未使用のポート番号を任意に割り当てます。ファッション。ランダムに番号を選択する場合もあれば、範囲の下限から開始して、使用されていない最初の番号を割り当てる場合もあります。

このページ いくつかの異なるオペレーティングシステムで範囲を表示および変更する方法について説明します。 Linuxでは、/proc/sys/net/ipv4/ip_local_port_rangeにアクセスして、範囲を表示および変更できます。

$ cat /proc/sys/net/ipv4/ip_local_port_range 
1024 4999

# echo "49152 65535" > /proc/sys/net/ipv4/ip_local_port_range 

または、sysctlを使用してキーnet.ipv4.ip_local_port_rangeを表示または設定することもできます。

2
Kenster