我在 Azure 上有一个 Ubuntu 虚拟机。我在 azure 管理门户中添加了一个 enpoint:
NAME PROTOCOL PUBLIC PORT PRIVATE PORT LOAD-BALANCED SET
---------------------------------------------------------------
HTTP TCP 80 80 -
我试着听它:
var http = require('http');
var server = http.createServer(function (request, response) {
response.writeHead(200, {"Content-Type": "text/plain"});
response.end("Hello World\n");
});
server.listen(80);
如果我 ssh 并卷曲它,它会起作用:
$ curl localhost:80
Hello World
但是,如果我尝试通过 访问它subdomain.cloudapp.net
,则不会返回任何内容。当通过公共 IP 地址访问时,它也不会返回任何内容。
我应该使用我的节点应用程序监听哪个端口和地址才能从外部访问它?
我是否需要另一个 azure 服务才能访问 VM?
如果防火墙有问题,我将如何启用公共访问?
编辑:
我检查了是否有防火墙,但没有:
$ sudo ufw status
[out :: subdomain.cloudapp.net] Status: inactive
编辑2:
配置了不同的 ubuntu vm,但它仍然无法正常工作。尝试重新启动 iptables,但没有服务已知:
$ sudo service iptables restart
iptables: unrecognized service
iptables 是:
$ sudo iptables -L
Chain INPUT (policy ACCEPT)
target prot opt source destination
ACCEPT udp -- anywhere anywhere udp dpt:bootpc
ACCEPT tcp -- anywhere anywhere state NEW tcp dpt:http
Chain FORWARD (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination