如何从另一台VM远程访问ASP.NET Core 6 Web API
让ASP.NET Core 6 Web API允许其他VM访问的步骤
1. 修改API的绑定地址
默认ASP.NET Core仅绑定localhost,需调整配置让它监听所有可用网络接口:
- 通过Program.cs配置
在Program.cs中添加地址绑定逻辑:var builder = WebApplication.CreateBuilder(args); // 其他服务配置... // 绑定所有IP的7270端口(同时支持HTTP和HTTPS) builder.WebHost.UseUrls("http://*:7270", "https://*:7270"); var app = builder.Build(); // 中间件配置... - 通过launchSettings.json配置
打开项目Properties/launchSettings.json,修改对应节点的applicationUrl:
注:"applicationUrl": "https://*:7270;http://*:7270",dotnet run启动时会优先读取此配置;发布后独立运行建议用Program.cs或命令行参数。 - 启动时命令行指定
运行API时追加参数:dotnet run --urls "http://*:7270;https://*:7270"
2. 配置防火墙规则
确保API所在机器的防火墙允许7270端口的入站连接:
- Windows防火墙
打开「Windows Defender防火墙」→「高级设置」→「入站规则」→「新建规则」,选择「端口」,输入7270,允许连接,选择适用网络类型,完成规则创建。 - Linux防火墙(以ufw为例)
执行命令开放端口:sudo ufw allow 7270/tcp sudo ufw reload
3. 验证网络连通性
- 获取API所在机器的局域网IP(Windows用
ipconfig,Linux用ip addr),比如192.168.1.100。 - 在目标VM先测试网络可达性:
若ping不通,需确认两台VM是否在同一局域网,或是否存在网络隔离策略。ping 192.168.1.100 - 测试API访问:在目标VM用浏览器或curl访问:
注:HTTPS可能触发证书信任问题,可临时改用HTTP测试(生产环境不建议),或给目标VM安装自定义SSL证书。curl https://192.168.1.100:7270/swagger/index.html
4. 额外注意事项
- 若API部署在Docker容器中,需确保端口映射正确(如
-p 7270:7270),且容器网络模式允许外部访问。 - 生产环境建议绑定具体IP而非
*,并配置合法SSL证书保障通信安全。
内容的提问来源于stack exchange,提问作者Dino Thunder
相关产品推荐
相关产品推荐

