在azure VM上访问web服务

在azure VM上访问web服务,azure,curl,ip,endpoint,Azure,Curl,Ip,Endpoint,我有一个jersey/grizzly web服务,运行在带有Ubuntu服务器14.04 LTS的Azure虚拟机上。我可以使用curl从机器内部访问web服务,但是从机器外部请求只是超时 也就是说,我可以做这个卷曲线: curl -X POST http://example.cloudapp.net:80/resource/path --data "text=´Mario" 并从虚拟机外壳中获取响应,但不能从我的windows控制台或同一Azure数据中心中的其他虚拟机获取响应 我在我的Ma

我有一个jersey/grizzly web服务,运行在带有Ubuntu服务器14.04 LTS的Azure虚拟机上。我可以使用curl从机器内部访问web服务,但是从机器外部请求只是超时

也就是说,我可以做这个卷曲线:

curl -X POST http://example.cloudapp.net:80/resource/path --data "text=´Mario"
并从虚拟机外壳中获取响应,但不能从我的windows控制台或同一Azure数据中心中的其他虚拟机获取响应

我在我的
Main.java中的端口9998上启动Grizzly web服务器:

public class Main {

    public static final URI BASE_URI = UriBuilder.fromUri("http://0.0.0.0/").port(9998).build();

    protected static SelectorThread startServer() throws IOException {
        final Map<String, String> initParams = new HashMap<String, String>();
        initParams.put("com.sun.jersey.config.property.packages", "mypackage");
        SelectorThread threadSelector = GrizzlyWebContainerFactory.create(BASE_URI, initParams);     
        return threadSelector;
    }

    public static void main(String[] args) throws IOException {
        SelectorThread threadSelector = startServer();
        System.in.read();
        threadSelector.stopEndpoint();
    }    
}
我已经设置了一个Azure端点,这样我就可以访问VM上的webservice,在内部端口9998和外部端口80之间进行转换

端点上没有ACL规则,因此最重要的是让所有内容都通过

我在虚拟机中的iptables设置为允许所有内容通过:

$ sudo iptables -L -n
Chain INPUT (policy ACCEPT)
target     prot opt source               destination
ACCEPT     udp  --  0.0.0.0/0            0.0.0.0/0            udp dpt:68
我的理论是问题出在虚拟机之外,但我不知道从哪里开始。有人知道如何解决这个问题或如何进行故障排除吗?如果您还需要什么,请询问。有一件事可能会有所帮助,那就是我是否可以获取Azure端点的访问尝试日志,但我不知道如何获取它们

$ sudo iptables -L -n
Chain INPUT (policy ACCEPT)
target     prot opt source               destination
ACCEPT     udp  --  0.0.0.0/0            0.0.0.0/0            udp dpt:68