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

LinuxMint 18.3中dnsmasq与以太网冲突,需兼顾WiFi Django服务与联网

解决dnsmasq运行时台式机无法上网的问题

我来帮你搞定这个问题——核心原因是dnsmasq默认会监听所有网络接口,甚至会接管系统的DNS配置,导致以太网的互联网DNS解析被干扰。下面是一步步的解决方案,既能让WiFi热点正常提供Django站点服务,又不影响台式机通过以太网访问互联网:

1. 调整dnsmasq配置,让它只专注于WiFi接口

编辑你的dnsmasq.conf文件,添加以下关键配置,确保dnsmasq只在WiFi网卡上工作,不碰以太网的网络设置:

# 指定dnsmasq只监听WiFi接口(把wlan0换成你的WiFi网卡名称,可用ip addr查看)
interface=wlan0
# 强制dnsmasq只绑定指定接口,不抢占系统全局的DNS端口(53)
bind-interfaces
# 给WiFi客户端分配IP的范围和租期
dhcp-range=192.168.4.2,192.168.4.20,255.255.255.0,24h
# 把你的Django站点域名(比如django.local)指向台式机的WiFi静态IP(这里假设是192.168.4.1)
address=/django.local/192.168.4.1

bind-interfaces是关键,它能防止dnsmasq干扰以太网的DNS解析流程,让系统继续用以太网提供的DNS服务器访问互联网。

2. 固定台式机的DNS配置,避免被篡改

LinuxMint默认用NetworkManager管理网络,可能会自动覆盖/etc/resolv.conf。我们可以手动锁定DNS设置:

  • 先备份原文件:
    sudo cp /etc/resolv.conf /etc/resolv.conf.backup
    
  • 编辑/etc/resolv.conf,填入以太网的DNS服务器(比如你的路由器IP,或者公共DNS如8.8.8.8):
    nameserver 192.168.1.1  # 替换成你的以太网网关/路由器IP
    nameserver 8.8.8.8
    
  • 让NetworkManager不再自动修改DNS:编辑/etc/NetworkManager/NetworkManager.conf,修改[main]段:
    [main]
    dns=none
    
  • 重启NetworkManager生效:
    sudo systemctl restart NetworkManager
    

3. 确保WiFi接口和hostapd配置正确

  • 先给WiFi网卡设置静态IP(和dnsmasq里的网段对应):
    sudo ip addr add 192.168.4.1/24 dev wlan0
    sudo ip link set wlan0 up
    
  • 检查hostapd的配置(/etc/hostapd/hostapd.conf),确保它只绑定WiFi接口:
    interface=wlan0
    driver=nl80211
    ssid=你的热点名称
    hw_mode=g
    channel=6
    wpa=2
    wpa_passphrase=你的热点密码
    wpa_key_mgmt=WPA-PSK
    wpa_pairwise=TKIP
    rsn_pairwise=CCMP
    
  • 让hostapd加载这个配置:编辑/etc/default/hostapd,设置:
    DAEMON_CONF="/etc/hostapd/hostapd.conf"
    

4. 启动服务并验证

  • 先启动hostapd:
    sudo systemctl start hostapd
    
  • 再启动dnsmasq:
    sudo systemctl start dnsmasq
    
  • 验证台式机互联网访问:ping google.com,应该能正常解析和连通。
  • 验证WiFi客户端访问Django:连接热点后,访问http://django.local:8000(记得Django要绑定到0.0.0.0:python manage.py runserver 0.0.0.0:8000)。

额外注意事项

  • 防火墙要允许WiFi接口的DHCP和DNS流量:
    sudo ufw allow in on wlan0 from 192.168.4.0/24 to any port 53
    sudo ufw allow in on wlan0 from 192.168.4.0/24 to any port 67
    
  • 如果需要开机自动启动服务,执行:
    sudo systemctl enable hostapd
    sudo systemctl enable dnsmasq
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.22 07:53:39