Ubuntu

Azure 出站通信

  • July 25, 2014

我在 Azure 服務上的 Ubuntu 電腦上遇到出站通信問題。我已經使用 Ubuntu 14.04(也嘗試過 12.04)設置了伺服器,並且通過 SSH 連接到機器或瀏覽到機器沒有問題。我遇到的問題是,當我設置的應用程序嘗試連接到它無法連接的 MongoDB 副本集時,兩者都會拋出:

pymongo.errors.AutoReconnect: [Errno 110] Connection timed out

和:

bson.errors.InvalidDocument: BSON document too large (7754 bytes)
   - the connected server supports BSON document sizes up to 0 bytes

在域上執行mtr --report副本集以及 google 或 microsoft 或 stackoverflow 或 serverfault 我總是得到以下返回:

Start: Fri Jul 25 09:35:38 2014
HOST: hostname                  Loss%   Snt   Last   Avg  Best  Wrst StDev

如果我嘗試 ping 域,我會得到以下資訊:

PING serverfault.com (198.252.206.16) 56(84) bytes of data.
^C
--- serverfault.com ping statistics ---
106 packets transmitted, 0 received, 100% packet loss, time 105135ms

我不知道該去哪裡。任何幫助是極大的讚賞。這是一個標準的虛擬機設置,ssh 和 https 埠開放,沒有虛擬網路。如果您需要其他任何東西,請告訴我,我會盡力提供。

除了虛擬網路之外的 TCP 和 UDP,Azure 不支持任何東西。因此,您將無法使用 ping (ICMP) 出站。Traceroute 也不起作用(即使出站探測使用 TCP SYN 或 UDP),因為它依賴於 ICMP TTL 過期消息才能返回到您的主機。

因此,您嘗試的 ping 和 mtr 並沒有任何意義。您可以嘗試使用“nc -vz www.serverfault.com 80”之類的方法,它會檢查您是否可以在 Web 埠上連接。您應該期望看到類似的內容:

$ nc -vz www.serverfault.com 80
Connection to www.serverfault.com 80 port [tcp/www] succeeded!

至於您的應用程序和數據庫之間的通信,您在此處包含的資訊太少,無法正確解決此問題。

對於一些一般性提示:如果您在同一個 Azure 虛擬網路上擁有應用程序和數據庫伺服器,您將能夠通過使用虛擬網路中的內部 IP 地址與您的數據庫通信。由於它們不在同一個虛擬網路上,因此您需要在數據庫伺服器上設置一個端點並檢查您的訪問控制列表(牢記安全要求)。這個問題可能會有所幫助:https ://stackoverflow.com/questions/13995734/azure-vms-virtual-network-inter-communication 。

引用自:https://serverfault.com/questions/615441