从具有动态外部 IP 的计算机连接到 Azure SQL Server

2024-04-10

我正在尝试将具有动态外部 IP 的本地笔记本电脑连接到我们的 Azure SQL Server。为此,我创建了一个虚拟网络网关并将笔记本电脑连接到该网关。此外,我还向 SQL Server 添加了一个专用端点。之后,我可以使用telnet成功连接到SQL服务器IP,如果我解析hosts文件中的SQL服务器FQDS,我可以通过SSMS连接到服务器。但如果没有主机文件,笔记本电脑总是尝试通过其公共端点/地址连接到 SQL 服务器。

我找到了以下文章:https://techcommunity.microsoft.com/t5/azure-database-support-blog/azure-sql-db-private-link-private-endpoint-connectivity/ba-p/1235573 https://techcommunity.microsoft.com/t5/azure-database-support-blog/azure-sql-db-private-link-private-endpoint-connectivity/ba-p/1235573这篇文章很棒。建议使用您自己的 DNS 服务器将 SQL Server FQDN 解析为本地 IP。不幸的是,笔记本电脑无法访问任何自定义 DNS,因此该解决方案不适合。 有两个问题:

  1. 是否可以使用专用终结点但没有自己的 DNS 服务器在具有动态 IP 的本地计算机和 Azure SQL 服务器之间建立连接?

  2. 如果第一个问题的答案为“否”,是否有其他方法可以使用任何其他 Azure 应用程序将具有动态 IP 的本地计算机连接到 Azure SQL 服务器?


首先,没有DNS服务就不能使用FQDN。因此,您确实需要一个自定义 DNS 服务器,以便在连接字符串中使用服务器的 FQDN,以便客户端从本地 VM 连接到 Azure SQL 服务器。

由于您使用的是笔记本电脑,因此您的计算机使用的 DNS 服务器很可能是由您的 ISP 指定的。您无法对其进行更多控制,也无法要求您的 ISP 配置 DNS 转发器。否则,您需要在内部网络中部署 DNS 服务器。目前,在这种情况下,最好的方法是使用本地计算机上的 HOSTS 文件来覆盖公共 DNS。

但是,如果您不喜欢使用 HOSTS 文件,您可以配置 Azure VM 作为 DNS 服务器与虚拟网络网关位于同一 Azure 虚拟网络中。

主要步骤:

  1. 部署 Azure VM 和 RDP 到该 VM,并运行 PowerShell 命令来安装 DNS 服务器角色。

    Install-WindowsFeature -Name DNS -IncludeManagementTools Get-WindowsFeature *DNS*

  2. Add Azure DNS (168.63.129.16) as a forwarder on your custom DNS server according to the step 5 in this blog https://techcommunity.microsoft.com/t5/azure-database-support-blog/azure-sql-db-private-link-private-endpoint-connectivity/ba-p/1235573. If you do not want to use forwarder you can also create a forward lookup zone and added manually the host to match the FQDN. You could read On-premises workloads using a DNS forwarder https://learn.microsoft.com/en-us/azure/private-link/private-endpoint-dns#on-premises-workloads-using-a-dns-forwarder for more details. enter image description here

  3. After you have configured the DNS server and set the DNS forwarder. You could change the DNS server of Azure VNet to your Azure VM's private IP address. enter image description here

  4. 重新启动 Azure VM 并重新下载 VPN 客户端包并重新连接 VPN 连接以进行网络更新。检查本地 VPN 客户端计算机上的 DNS 服务器,并将 DNS 服务器设置为 TCP/IP 设置中的自定义 DNS 服务器。然后,您将通过Azure服务的默认FQDN查找您的私有IP地址。

    In my example, I am using Azure storage account but it works the same with Azure SQL database when using a private endpoint on the Azure and P2S VPN connection. In this way, it requires that there are not any other VPN connections except the P2S VPN connection on the local machine. enter image description here

然后,您可以将 Azure SQL 服务器 FQDN 解析为专用终结点的专用 IP 地址。但是,通过 VPN 连接连接到 Azure SQL Server 的性能可能并不比通过公共 Internet 和公共 DNS 服务直接连接到它更好。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

从具有动态外部 IP 的计算机连接到 Azure SQL Server 的相关文章

随机推荐

  • Spring Data JPA更新方法

    我仍在寻找 Spring Data JPA 中的更新方法来更新给定的Object保存在关系数据库中 我只找到了一些解决方案 其中我被迫通过 Query 注释指定某种 UPDATE 查询 与 Modifying 相比 例如 Modifying
  • CodeIgniter SMTP 电子邮件消息 - 用等号替换字符

    我正在使用 CodeIgniter 电子邮件库通过我们的 Exchange 服务器发送电子邮件 我遇到的问题是电子邮件的内容变得混乱 有一些单词被等号 替换 我尝试了 2 个不同的 Exchange 服务器 它们位于不同的位置并且没有任何关
  • anaconda 中使用的 Gcc 版本的 python

    如何更改 anaconda 或虚拟环境中使用的 python gcc 版本 现在当我启动 python 时它显示 GCC 4 4 7 20120313 Red Hat 4 4 7 1 在linux2上 这与系统范围内的相同gcc in us
  • 我的问题是关于 R 的:如何对 R 中表中的每个重复进行编号?

    在我的数据集中 它们是全名列 例如 下面 我想在它旁边添加另一列 提及名称是否使用 R 出现了两次一 二 三 四 次 输出应类似于下面的列 重复次数 例如 数据集名称 People Full name Number of repetitio
  • 如何捕获并打印未知类型的异常

    我有一些程序 每次运行它时 它都会引发异常 我不知道如何检查它到底抛出了什么 所以我的问题是 是否可以捕获异常并打印它 如果它源自std exception你可以通过参考捕捉 try code that could cause except
  • 如何将 FFmpeg 命令行转换为 ffmpeg-python 代码?

    我有这个命令行代码 ffmpeg i 0 mp4 c v libx265 preset fast crf 28 tag v hvc1 c a aac bitexact map metadata 1 out mkv 我想将其转换为Python
  • 在同一个ipa中支持armv6和armv7

    我有一个 XCode 项目 配置如下 项目格式 XCode 3 1 兼容 架构 标准 armv6 armv7 基础 SDK 最新 iOS 当前设置为 iOS 4 2 仅构建活动架构 未选中 有效架构 armv6 armv7 我的问题 生成的
  • 如何在selenium中获取和设置文本编辑器值

    我的网页上有文本编辑器 我需要使用 c 中的 selenium 脚本填充其值 我知道如何为文本框执行此操作 我已经检查了流程在文本框中设置值 https stackoverflow com questions 10557196 using
  • 如何隐藏 optgroup/option 元素?

    有没有办法隐藏option or optgroupHTML 元素 我试过打电话hide 在 jQuery 中 也使用常规 Javascript 来设置style display none 它可以在 Firefox 中运行 但不能在任何其他浏
  • 带有 REST API 的 Ruby on Rails

    我对 Ruby on Rails 很陌生 虽然我喜欢所提供的组织和标准 但我对如何让 Rails 在这种特定情况下为我工作感到有点困惑 我有一个 Web 服务 我想将其与 Rails 应用程序一起使用 直接连接到数据库会很好 并且可以立即为
  • GXT 3.x EditorGrid:逐个单元选择单元格编辑器类型

    无论如何 是否可以逐个单元地定义编辑器类型GXT 3 0 我需要创建一个转置表 列变成行 行变成列 在这种情况下 一列 从普通表的角度来看 将具有不同的编辑器类型 而行将具有相同的编辑器类型 我正在尝试使用以下方法 它似乎工作正常 并允许根
  • 使输入类型=“密码”在移动设备上使用数字键盘

    在我为移动设备设计的网站上 我有一个用于 PIN 码的输入字段 我希望在输入文本时隐藏文本 并且希望当移动设备上的用户想要输入 PIN 码时弹出数字键盘 当类型 数字 时 数字键盘会弹出 但当类型 密码 时 数字键盘不会弹出 并且我无法 或
  • 如何在 Access 开发中使用版本控制?

    我参与更新 Access 解决方案 它有大量的 VBA 大量的查询 少量的表格以及一些用于数据输入和报告生成的表单 它是 Access 的理想候选者 我想更改表设计 VBA 查询和表单 如何使用版本控制跟踪我的更改 我们使用 Subvers
  • C 中的类型转换会变得香蕉吗? [关闭]

    Closed 这个问题需要调试细节 help minimal reproducible example 目前不接受答案 看来 C 和我对这里的预期输出存在分歧 I have struct r struct int r i float r f
  • 有没有办法打印到输出控制台? (双猫3)

    有没有办法使用结构化文本打印输出到控制台 例如 VB NET 中的 debug print 双猫3 您可以通过 TwinCAT 代码通过 ADS 命令发送消息 该函数称为ADSLOGSTR https infosys beckhoff co
  • Cordova:意外的机器代码 - 您上传的内容同时包含位代码和本机机器代码

    我正在构建一个 iOS Cordova 应用程序 当我将其上传到 iTunes Connect 时 它返回以下错误 意外的机器代码 您上传的内容同时包含位代码和本机机器代码 当您提供位码时 无需也包含机器代码 要减少上传的大小 请使用 Xc
  • 如何让实体框架更新复杂类型?

    我正在使用实体框架 EF 从存储过程创建复杂类型 最近 存储过程发生了变化 添加了更多返回值 我想更新映射到该存储过程的复杂类型 这可能吗 如果可以 如何实现 我目前正在每次删除我的函数导入和复杂类型存储过程更改 这很可能不是最好的方法 我
  • 何时使用 RedirectToAction 以及何处使用 RedirectToRouteResult?

    Question 在什么情况下 我可以使用RedirectToAction以及在哪里使用RedirectToRouteResult 我有两个如下所示的操作方法 方法 1 public class ActionResultTypesContr
  • 如果我有使用 Google App Script 的缩略图链接,如何在 Google SpreadSheet 中显示缩略图?

    我正在实施 Google Apps 脚本并尝试在 Google Spread Sheet 中显示数据 我能够正确显示文本数据 但我有一个视频的缩略图 URL 我想在电子表格单元格中显示它 即我想显示与我的 java 脚本变量 对象中的 UR
  • 从具有动态外部 IP 的计算机连接到 Azure SQL Server

    我正在尝试将具有动态外部 IP 的本地笔记本电脑连接到我们的 Azure SQL Server 为此 我创建了一个虚拟网络网关并将笔记本电脑连接到该网关 此外 我还向 SQL Server 添加了一个专用端点 之后 我可以使用telnet成