【发布时间】:2017-11-17 04:10:07
【问题描述】:
我试图在不使用 DDNS 服务的情况下从任何地方访问我编写的 Web API 服务(目前托管在控制台应用程序中以方便使用)。我知道公共IP可能会改变,没关系。我将始终可以访问新的。我这样做只是为了好玩。
到目前为止,我做了以下事情:
- 我在路由器的 DHCP 中设置了一个静态 IP(本例中为 192.168.1.101);
- 添加了从 50000 端口到 50000 端口的端口转发(更容易确保我不会混淆周围的东西);
- 为防火墙上的 50000 端口添加了入站规则,并设置了“允许连接”;
服务设置为始终在地址 192.168.1.101:50000 上启动。 Cors 也设置为 CorsOptions.AllowAll
我的问题来了:当我使用 Postman 使用本地 IP 地址和端口向 API 发出请求时,一切都按预期工作。
但是,如果我尝试使用相同的端口访问公共 IP 地址,如下所示: public_ip:50000/ApiRoute 无论我从哪个设备(本地计算机或连接在同一网络或不同网络上的其他设备)发出请求,我都会超时;
公共 IP 地址的来源是 ifconfig.co 网站。
有谁知道为什么公共 IP 不起作用?老实说,我没有想法。
【问题讨论】:
-
当您说“防火墙”时,您指的是路由器设置还是运行该服务的操作系统的防火墙?另外,您是否尝试过使用网络外部的公共 IP 访问服务(例如,使用您的手机(而不是 wifi))?
-
@itsme86 当我谈到防火墙时,我指的是 Windows 防火墙。我使用了未连接到家庭网络(移动数据)的 Android 平板电脑上的 REST 客户端,得到了相同的结果。我应该提到:)
标签: c# networking asp.net-web-api2 port portforwarding