web-dev-qa-db-ja.com

インターネット経由でSQL Serverに接続する

インターネット経由でSQL Serverに接続したい:

  1. ファイアウォールをオフにしました
  2. ルーターでDMZ=を有効にしました。ホストアドレスはSQL Server LAN IPである192.168.1.24です。
  3. SQL ServerとSQL Server Browserの両方のルーターでポートを開きます(1433-1434)
  4. (canyouseeme)Webサイト経由で開いているポートを確認したところ、結果は1433で成功し、1434でエラーになりました(エラーの理由はわかりません)。
  5. TCPプロトコルに必要な構成を行いました
  6. サーバーがリモート接続を許可されていることを確認しました

しかし、インターネット経由でサーバーに接続できませんでした。

私のLAN IPは192.168.1.24です
インスタンスはデフォルトのインスタンスです
私のパブリックIPは95.218.156.146です(例)

サーバー名のテキストボックスに(192.168.1.24)と入力するとサーバーに接続できますが、195.218.156.146または95.218.156.146、1433と入力すると接続できません

注意:

  1. ブラウザにパブリックIPを配置すると、ルーターページが表示されます(つまり、パブリックIPが正しいことを意味します)
  2. ルーターにポート転送が見つかりませんでしたが、DMZとポートマッピングを設定しました enter image description hereenter image description here
2
salbenny

これを行うための推奨される方法は、2つのサイト間にVPNをセットアップすることです。これを行う手順は、使用されている特定のファイアウォール/ルーターによって異なります。 VPNを使用できない場合は、ポートマッピングを使用して接続をセットアップする方法について次の情報が提供されます。ポートマッピングを使用する場合は、追加のファイアウォールルールと組み合わせてのみ使用し、マッピングされたポートを介してルーティングできる送信元IPアドレスを制限して、地球上のすべてのハッカーがSQL Serverにアクセスできないようにする必要があります。

1.サーバーIP構成

IPCONFIG / ALLを実行して、Windows ServerのIP構成を確認します。結果には両方のIPアドレスを含めることができますが、少なくとも内部IP:
-192.168.1.24
-95.218.133.168

2.ルーティングを確認する

次のコマンドでtracerouteを開始します:TRACERT <external IP of server>。サーバーへのルートを受信したことを確認します。

重要なのは、LANとインターネットから同じことを行うことです。結果は、インターネットチェックでは次のようになります。

 1    <1 ms    <1 ms    <1 ms  <IP of your router>
 2    <1 ms    <1 ms    <1 ms  <IP of your ISP>
 3    <1 ms    <1 ms    <1 ms  <Another IP connecting to your company>
 4     2 ms     1 ms     1 ms  outside.yourcompany.com [<public IP of your company>]
 5     3 ms     1 ms     1 ms  dmz.yourcompany.com [<IP of DMZ component>]
 6     3 ms     1 ms     1 ms  router.yourcompany.com [<IP of router>]
 7     3 ms     1 ms     1 ms  sqlserver.yourcompany.com [<IP of server>]

ファイアウォールの設定によっては、会社のファイアウォールを通過できない場合がありますが、tracertが正しい方向に進んでいる場合は、その方法を「認識」しています。ファイアウォールがネットワークの外観を誰かに伝えておらず、ポート要求をSQL Serverに転送していない可能性があります(ルーター構成を参照してください)

3. SQL ServerのIP構成を確認する

  1. SQL Server構成マネージャーでSQL Serverネットワーク構成のブランチを開き、インスタンスを選択します。 (例:Protocols for 'MSSQLSERVER'
  2. 右クリックしてプロパティを開きます。接続を妨げる可能性のある設定がないことを確認します。終了したら設定を閉じます。
  3. プロトコル設定の右側のペインで、TCP/IPプロトコルが'Enabled'であることを確認します。
  4. 次に、TCP/IP設定を右クリックして、プロパティを開きます。 [プロトコル]タブで...
    a)EnabledYesに設定されていることを再度確認します。
    b)設定Listen AllYesに設定されていることを確認します。
    c)画面は次のようになります。
    Protocol Tab

  5. [IPアドレス]タブに切り替えて、_IPnを確認します...
    a)アクティブはYesに設定されています
    b)有効はYesに設定されます
    c)IPアドレスは外部IPアドレスです(パブリックアドレスが1つしかないため、SQL Serverに外部アドレスを割り当てることができない場合は内部アドレスです)。
    d)TCP動的ポートは(値なし/空)に設定されています
    e)TCPポートは1433に設定されています
    f)画面は次のようになりますが、IPアドレスが表示されます。 enter image description here

  6. 次に、IPAll部分の設定を確認します。
    a)TCP動的ポートは(値なし/空)に設定されています
    b)TCPポートは(値なし/空)に設定されています
    c)画面は次のようになります。
    IPAll Configuration

4.ルーターの構成を確認する

パブリックIPはサーバーのものではなく、ルーターのものです。サーバーがルーターの背後にある場合は、ルーターが要求をSQL Serverに転送していることを確認する必要があります。この構成設定は、ルーターによって異なります。次に、ルーターを構成するいくつかの例を示します。
- ポート転送 (Zyxel)
- 静的ポート共有のセットアップ (Fritz AVM)
- ルーターでポート転送を構成するにはどうすればよいですか? (D-Link)

提供されているヒントとテクニックを使用して、インターネットからの接続を受け入れるようにSQL Serverを設定できます。

免責事項:インターネット経由でLAN内のデータベースに接続することを許可することは、実際には推奨されません。攻撃される危険があります。

5