在Azure中使用内部和外部IP进行路由

我在Azure中有一些虚拟机的VNet。 VNet有一个站点到站点的VPN连接返回到我的房屋。 从本地客户端,我可以成功连接到虚拟机的私有IP地址。 但是,本地客户端无法连接到虚拟机的公共IP地址。 另一方面,如果我尝试从不同的互联网连接(手机或家中的3G)连接到虚拟机,则可以毫无问题地连接到公共地址。 在本地networking设备上没有networkingACL可能会阻止此stream量(事实上,在公共IP地址的traceroute在ntwk.msn.net地址处被切断)。 任何想法可能是什么问题?

更新2:我已经在一个单独的IP范围内build立了一个新的vnet,并且新build了一个具有公有IP的虚拟机。 连接到这个虚拟机的公共IP工作正常。 原来的VNET的VPN /路由中的东西似乎是问题的一部分,因为没有VPN一切都很好。

更新:我开始认为这与虚拟机上的网卡有关。 Azure NIC在同一个NIC上具有私有IP和公有IP,但VM不会看到公共IP地址。 现在,NIC所在的vNet具有一定的路由规则,指定某些stream量应通过我们的VPN路由到本地。 我想在内部的请求通过公共互联网成功地到达虚拟机的公有IP,但是答复是通过VPN从私有IP发送的,并且客户端丢弃它,因为它来自不同的IP。 由于虚拟机上的操作系统不知道公共IP地址,我不知道如何解决这个问题。

更新3:我使用Wireshark在虚拟机上嗅探数据包,发现当我从本地连接到外部IP时,虚拟机没有收到数据包。 所以问题可能出在VNet,公网IP的SNAT,或者VM本身的路由上。

您的问题可能是由您的客户端或本地组织Intranet边缘设备(例如防火墙,代理,NAT)引起的。 我认为这可能是由本地防火墙或本地防火墙造成的。

但是,您仍然应该检查一些要点。以下示例步骤适用于Windows VM(故障排除思路也适用于Linux VM):

  1. 您的客户端来宾或公共networking防火墙具有是否阻止RDP triffic。
  2. 检查您的组织Intranet边缘设备:

    a。内部防火墙阻止HTTPS连接或RDP到Internet。

    b代理服务器阻止远程桌面连接。

    c。在边缘networking中的设备上运行的入侵检测或networking监视软件阻止远程桌面连接。

  3. 您的NSG阻止来自互联网的RDPstream量。

有关连接到Azure中的Windows VM的问题的详细RDP故障排除步骤,请参阅此文档 。

有关连接到Azure中Linux VM的问题的详细SSH故障排除步骤,请参阅此文档 。