動的ポートはいつ「動的」ですか?


23

今日Dynamic Ports、同僚の1人と話し合っていましたが、彼らがどのように機能するかを明確にするのに役立つ情報があります。

最初の質問:場合IPALL TCP Dynmaic Portsの設定は、特定の番号は(1971と言う)あなたは1971年の静的ポートまたは現在1971であり、将来のある時点で変更される可能性があり、ダイナミックポートを持っているということを意味しています。

ここに画像の説明を入力してください

2番目の質問:これは私が最も興味を持っているものです。IPALL TCP Dynmaic Ports数十回のインスタンスの再起動を通じて、数年間同じポート(設定の値)を持つインスタンスがあります。インスタンスの再起動後に動的ポートが実際に変更される原因は何ですか?

回答:


22

このKB記事:特定のポートでリッスンするようにSQL Serverを構成する方法は、次のことを明確にします。

動的ポート割り当て

動的ポート割り当てを使用するようにSQL Serverのインスタンスを構成し、SQL Serverのインスタンスをまだ再起動していない場合、レジストリ値は次のように設定されます。

TCPDynamicPorts =空白

TCPPort = 0

ただし、動的ポート割り当てを使用するようにSQL Serverのインスタンスを構成し、SQL Serverのインスタンスを再起動すると、レジストリ値は次のように設定されます。

TCPDynamicPorts =使用されている現在のポート

TCPPort =使用されている現在のポート

静的ポート割り当て:

静的ポートを使用するようにSQL Serverのインスタンスを構成し、SQL Serverのインスタンスをまだ再起動していない場合、レジストリ値は次のように設定されます。

TCPDynamicPorts =使用される最後のポート

TCPPort =次の再起動後に使用される新しい静的ポート。サーバーネットワークユーティリティを使用して設定した新しい静的ポート

ただし、静的ポートを使用するようにSQL Serverのインスタンスを構成し、SQL Serverのインスタンスを再起動すると、レジストリ値は次のように設定されます。

TCPDynamicPorts =空白

TCPPort =サーバーネットワークユーティリティを使用して設定した新しい静的ポート

2番目の質問 -

名前付きSQLServerを起動するたびに、割り当てられたポートが使用されます。ポートが別のプログラム使用されている場合、 SQL Serverは再起動時に別のポートを選択します。つまり、動的ポートは最初の起動時に選択され、通常は将来の再起動(レジストリに保存)でも同じままです -ただし別のプログラムで使用されると、SQLサーバーは新しいポートを選択します。注:Prodサーバーでは、静的ポートのみを使用します-セキュリティと管理の容易さの理由。

注:もっとクールなことを見つける:

動的ポートが使用されているか、T-SQLを使用していないかを確認します。

SELECT NAME
    ,protocol_desc
    ,type_desc
    ,state_desc
    ,is_admin_endpoint
    ,port
    ,is_dynamic_port
    ,ip_address
FROM sys.tcp_endpoints

ここに画像の説明を入力してください

netstat -anocmdlineを使用して確認するために使用できます 。

さらに、SQL Serverへの接続に使用しているポートについて、クライアント側のレジストリで以前にキャッシュされたものを確認できます。

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSSQLServer\Client\SNI11.0\LastConnect

ここに画像の説明を入力してください


ありがとう、それはとても便利なリンクです!動的ポートがポートを変更する原因を知っていますか?Second question上記の私の質問をご覧ください。
ケネスフィッシャー

@KennethFisher for your- second question指定されたSQLServerを起動するたびに、割り当てられたポートが使用されます。ポートが別のプログラムで使用されている場合、 SQL Serverは再起動時に別のポートを選択します。動的ポートは最初の起動時に選択され、通常は将来の再起動(レジストリに保存)しても同じままですが、別のプログラムで使用される場合、SQLサーバーは新しいポートを選択します。:Prodサーバーでは、静的ポートのみを使用します-セキュリティと管理の容易さの理由。
キンシャー

なぜ静的ポートで動作する完全に新しいサービス(SQLサーバーブラウザ)を実装する価値があると思うのかを説明してくれますか?このポートが使用されている場合、SQLサーバーを起動したいだけで起動しない可能性があります他のサービスがポートを使用している場合、使用しているおそらく最も高価なソフトウェアに接続するにはあまりにも不器用です。
カカズ
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.