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

基于RaspAp与dnsmasq搭建本地Web服务的配置问题

问题解决方案

一、替换自定义域名访问Flask应用

1. 修改树莓派主机名

  • 编辑/etc/hostname,把里面的raspberrypi改成你想要的自定义域名(比如localapp)
  • 编辑/etc/hosts,找到127.0.1.1 raspberrypi这行,把raspberrypi替换成同一个自定义域名
  • 重启树莓派:sudo reboot

2. 配置dnsmasq实现域名解析

不要直接修改主dnsmasq.conf,用RaspAp的专属配置文件更稳妥:

  • 编辑/etc/dnsmasq.d/090_raspap.conf(如果找不到,找RaspAp生成的dnsmasq配置文件)
  • 添加一行:address=/你的自定义域名/树莓派AP的静态IP(比如address=/localapp/192.168.50.1,RaspAp默认AP网关是192.168.50.1)
  • 重启dnsmasq服务:sudo systemctl restart dnsmasq
  • 验证配置:dnsmasq --test,确保无语法错误

二、解决安卓设备访问异常

1. 统一解析方式

  • 确保树莓派装了avahi-daemon(RaspAp默认自带),没装的话执行:sudo apt install avahi-daemon
  • 安卓设备如果打不开.local,要么检查ROM是否禁用了mDNS(部分定制系统会关),要么直接用上面配置的自定义静态域名访问

2. 教师手机无法访问的排查

  • 确认手机连的是树莓派的AP,不是其他同名网络
  • 手动设置手机WLAN的DNS为树莓派AP网关IP(比如192.168.50.1),避免用公共DNS解析失败
  • 先试直接访问树莓派IP(比如http://192.168.50.1),能打开就是DNS的问题;打不开的话检查防火墙:sudo ufw status,确保80/5000端口(Flask默认端口)开放

三、让设备识别为无互联网连接

1. 关闭互联网转发

  • 登录RaspAp管理界面(默认http://192.168.50.1),进Hotspot设置,把Internet sharing改成Disabled
  • 或者手动改:编辑/etc/sysctl.conf,把net.ipv4.ip_forward=1改成net.ipv4.ip_forward=0,然后执行sudo sysctl -p生效

2. 拦截联网检测地址

部分设备会通过特定地址判断是否联网,直接把这些地址解析到无效IP:

  • 在dnsmasq配置文件里加两行:
    address=/connectivitycheck.gstatic.com/0.0.0.0
    address=/captive.apple.com/0.0.0.0
    
  • 重启dnsmasq服务,设备再连接时就会识别为无互联网

四、Flask应用的访问配置

  • 必须让Flask绑定到0.0.0.0,不然只有树莓派本地能访问:
    启动命令改成:flask run --host=0.0.0.0
    或者代码里设置:
    if __name__ == '__main__':
        app.run(host='0.0.0.0', port=5000)
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.17 12:05:31