ファイアウォールは、ポート1433の着信(またはSQLServerがTCP/IPでリッスンするポート番号)とポート1024から65535の発信を許可するように構成する必要があります。
これは、1024〜65535のすべてのファイアウォールポートをアウトバウンドトラフィック用に開く必要があることを意味しますか?
私が使用したすべてのルーターベースのファイアウォールは、
後者は「ステートフルパケットインスペクション」の一部です。ルーター/ファイアウォールは、アクティブなTCP接続の状態を追跡します。
したがって、通常、新しく開いたインバウンドポートへの応答を明示的に許可する必要はありません。
たとえば、SSHの宛先ポート22へのインバウンドトラフィックを許可するようにルーターを構成する場合、応答に関する追加のルールも指定する必要はありません(送信元ポート22からany宛先ポート#) 。
インバウンドでは、最小限の開始が可能ですが、これらのポートを使用するだけではうまくいかないようです。私は常にこれらのインバウンドを開かなければなりません:
TCP 1433、TCP 1434、TCP 1444、UDP 1434
アウトバウンドに関しては、100%確信はありませんが、これを試してみます。
に入る
SQL Server構成マネージャー(SQL Server Management Studioではありません)> SQLServerネットワーク構成> MSSQLSERVERのプロトコル> TCP/IP>プロパティ> IPアドレスタブ
動的ポートを設定します。おそらくポートごとに1つであるため、複数の接続を許可する範囲を残してください。
私がプログラムで、別のコンピューターに接続している場合は、独自のポートが必要です。ソケットを作成すると、カーネルがソケットを選択する必要があります。通常、OSは次の範囲からポートを割り当てます。 エフェメラルポート 範囲。これで、クライアントにポートがあり、どこかに接続できるようになりました。私には、これは構成で推奨されているように見えます。ファイアウォールにエフェメラルポート範囲の送信を許可するように指示してください。インターネットに。
すでにクライアント(Internet Explorer、Firefox、P2Pクライアントなど)を使用している場合は、おそらくこの範囲をすでに開いています。 SQLServerが求めている特別なものは何もありません。インバウンドポートとは異なり、これは特別な「SQL Server範囲」ではなく、他のインターネットアプリが停止できる場合は、すでに開いています。ファイアウォールには、これらを無効にする構成が設定されているか、すべてが無効になる可能性があります。ここでの推奨事項が一致していないように見えるため、1024-65535ではない可能性があります Windowsの実際の範囲 。
SQLServerがインターネットにアウトバウンドで接続する必要がある理由はもっと不思議です。特別な理由がない限り、これは私には奇妙に思えます。少なくとも理由がわからない限り、インターネット上のランダムな場所に接続するものをできるだけ少なくしたいと考えています。