You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

AWS SAM Local启动API无法外部访问问题求助

解决同一WiFi下Android设备无法访问本地SAM Local API的问题

我来帮你排查这个问题,这种跨设备访问本地SAM服务的场景我之前也遇到过,核心原因是SAM Local默认只监听localhost,其他设备根本连不上,咱们一步步来解决:

1. 修改SAM Local启动命令,监听所有网卡

SAM Local默认绑定的是127.0.0.1,只有本地能访问。你需要在启动命令里加上--host 0.0.0.0参数,让服务监听电脑所有可用的网络接口:

sudo sam local start-api --docker-network db-pros --host 0.0.0.0

这个参数会让SAM API服务对局域网内的所有设备开放。

2. 找到电脑的局域网WiFi IP(不是docker0或以太网IP)

你之前试的docker0是容器内部的网桥IP,Android设备在局域网里根本访问不到这个网段。你需要找的是电脑连接WiFi时分配的IP:

  • Linux:执行ip addr show wlan0,找inet开头的IPv4地址(比如192.168.3.10)
  • Mac:在「系统设置-网络-Wi-Fi」里查看「IPv4地址」
  • Windows:在命令行执行ipconfig,找「无线局域网适配器 Wi-Fi」下的「IPv4地址」

3. 检查电脑防火墙,开放3000端口

电脑的防火墙大概率会拦截局域网设备对3000端口的请求,你需要手动允许:

  • Linux(ufw防火墙):
    sudo ufw allow 3000/tcp
    
  • Windows:打开「Windows Defender防火墙-高级设置」,添加入站规则,允许TCP 3000端口的连接
  • Mac:在「系统设置-网络-防火墙-选项」里,添加SAM Local进程或者直接允许3000端口的入站连接

4. 确认Android设备和电脑在同一网络,且无AP隔离

  • 先在Android设备上ping电脑的局域网IP,如果ping不通,检查路由器是否开启了AP隔离(有些路由器叫「客户端隔离」),这个功能会阻止同一WiFi下的设备互相访问,需要关掉。
  • 确保两者连接的是同一个WiFi热点,不是2.4G和5G分开的不同SSID(如果路由器有双频,尽量让两者连同一频段)

5. 用正确的地址访问API

在Android设备上访问时,用电脑的局域网IP加端口,比如:

http://192.168.3.10:3000/[lambda-name]

别再用127.0.0.1或者docker0的IP了,这些地址只在本地或容器内部有效。

额外注意点

因为你用了--docker-network db-pros,Lambda容器和数据库容器在同一个docker网络里,这个设置不会影响数据库连接——Lambda容器依然可以通过数据库容器的名称或内部IP访问数据库,不用做额外修改。

内容的提问来源于stack exchange,提问作者user93466

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.27 03:56:40