如何使用运行IIS Web服务器的公共IP访问我的EC2实例?

问题描述 投票:0回答:2

我在端口5000上的EC2 Ubuntu 16.04实例中运行了IIS服务器。当我尝试使用实例的公共IP从不同的机器或网络访问它时,它不允许我连接。

我一直在搜索并查看类似的问题但没有成功。

很多人说这是与安全组和实例上的开放端口有关,但据我所知,我已经这样做了。我已经对实例正在使用的安全组进行了三次检查,这是我的规则

我已经确认应用程序正在使用curl从服务器获取响应,这似乎工作正常并产生正确的输出。

telnet localhost 5000也有效。

通过将ICMP规则添加到安全组,我可以使用公共IP成功ping服务器。


ufw被禁用。

我尝试将端口添加到iptables,应用程序似乎正在侦听正确的端口。

iptables的:


Webserver启动配置:

{
  "iisSettings": {
    "windowsAuthentication": false,
    "anonymousAuthentication": true,
    "iisExpress": {
      "applicationUrl": "http://0.0.0.0:50135/",
      "sslPort": 0
    }
  },
  "profiles": {
    "IIS Express": {
      "commandName": "IISExpress",
      "launchBrowser": true,
      "launchUrl": "api/values",
      "environmentVariables": {
        "ASPNETCORE_ENVIRONMENT": "Development"
      }
    },
    "API": {
      "commandName": "Project",
      "launchBrowser": true,
      "launchUrl": "api/test",
      "environmentVariables": {
        "ASPNETCORE_ENVIRONMENT": "Development"
      },
      "applicationUrl": "http://0.0.0.0:5000/"
    }
  }
}

我也尝试过更改applicationUrl,但这似乎没有做任何事情。

有谁知道为什么我无法从公共IP地址访问服务器?

amazon-web-services iis amazon-ec2
2个回答
0
投票

连接被拒绝意味着客户端能够连接,但是服务器监听器拒绝了它,netstat -an显示了dotnet进程监听127.0.0.1:5000,这意味着它只能从本地机器访问。解决方案是通过更改配置文件中applicationUrl的值并重新启动Web服务,将本地地址绑定到0.0.0.0而不是localhost。


0
投票

在AWS EC2中,您应该将应用程序绑定到EC2实例的专用IP。

  1. 从命令提示符执行ipconfig命令并获取私有ip。
  2. 配置应用程序以绑定到该专用IP
  3. 重启IIS
  4. 确保EC2实例的安全组具有允许从“Anywhere”访问端口5000的入站规则
© www.soinside.com 2019 - 2024. All rights reserved.