Azure VM中的出站连接

时间:2014-02-14 10:43:51

标签: java networking ubuntu azure

我们无法从Azure中的虚拟机(Ubuntu 13.10)连接到外部资源。超时后连接中断或以后连接很多时间。

Traceroute显示网络存在问题。只有TTL大于20转才能连接资源。

traceroute to email-smtp.us-east-1.amazonaws.com (54.243.69.182), 30 hops max, 60 byte packets
 1  * * *
 2  * * *
 3  * * *
 4  * * *
 5  * * *
 6  * * *
 7  * * *
 8  * * *
 9  * * *
10  * * *
11  * * *
12  * * *
13  * * *
14  * * *
15  * * *
16  * * *
17  * * *
18  * * *
19  * * *
20  * * *
21  * * *
22  ec2-54-243-69-182.compute-1.amazonaws.com (54.243.69.182)  84.343 ms  81.948 ms  81.601 ms

尝试将默认DNS更改为8.8.8.8,没有帮助。

com.sun.jersey.api.client.ClientHandlerException: java.net.SocketException: Connection timed out
 at com.sun.jersey.client.apache.DefaultApacheHttpMethodExecutor.executeMethod(DefaultApacheHttpMethodExecutor.java:213)
 at com.sun.jersey.client.apache.ApacheHttpClientHandler.handle(ApacheHttpClientHandler.java:175)
 at com.sun.jersey.api.client.Client.handle(Client.java:648)

1 个答案:

答案 0 :(得分:0)

Azure会阻止ICMP协议,因此您将无法使用tracerouteping。尝试使用以下内容测试连接:

nc -vz -w 1 54.243.69.182 22

或者如果你想模仿重复ping的行为怎么样:

while true; do nc -vz -w 1 54.243.69.182 22; sleep 1; done

良好的输出示例:

Connection to 54.243.69.182 22 port [tcp/ssh] succeeded!

错误的输出示例:

nc: connect to 54.243.69.182 port 22 (tcp) timed out: Operation now in progress

确保您 EC2安全组中的Azure主机IP已打开端口(本示例中为22)。另请注意, Azure分配外部IP地址如果您停止并启动VM,则可能会更改(除非您为其分配虚拟IP)。这是从Azure主机的命令行中找到Internet IP地址的一种很好的方法:

curl http://ifconfig.me/