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

如何用安卓手机Firefox访问Debian9上Apache2部署的站点?

问题分析与解决方案

让我来帮你排查安卓手机无法访问Apache服务器的问题,从你提供的信息来看,核心原因是防火墙规则未允许局域网设备访问80端口,具体分析如下:

1. 防火墙规则的关键问题

查看你提供的iptables -L -v输出:

  • INPUT链的最后一条规则是REJECT all -- any any anywhere anywhere reject-with icmp-host-prohibited,这条规则会拒绝所有未被前面规则明确允许的入站流量。
  • 负责允许公共端口的IN_public_allow链中,仅开放了SSH的22端口:
    ACCEPT     tcp  --  any    any     anywhere             anywhere             tcp dpt:ssh ctstate NEW
    
    而Apache服务使用的80端口没有被添加到允许列表,因此来自安卓手机的HTTP请求被防火墙直接拦截了。

2. 本地访问正常的原因

你在PC本地访问127.0.0.1或192.168.31.52都正常,是因为INPUT链中存在允许回环接口(lo)流量的规则:

ACCEPT     all  --  lo     any     anywhere             anywhere

本地请求走的是回环接口,不受公共端口规则限制,但安卓手机的请求是通过局域网接口(enp3s0)进入的,必须经过公共端口规则校验。

3. 解决步骤

临时开放80端口(重启后失效)

执行以下命令将80端口添加到允许规则:

sudo iptables -A IN_public_allow -p tcp --dport 80 -m conntrack --ctstate NEW -j ACCEPT

添加后可以立刻测试安卓手机是否能访问。

永久保存规则(Debian 9环境)

为了避免重启后规则丢失,需要保存当前iptables配置:

  1. 先创建规则目录(如果不存在):
    sudo mkdir -p /etc/iptables
    
  2. 保存规则:
    sudo iptables-save > /etc/iptables/rules.v4
    
  3. 确保系统启动时自动加载规则,可以安装iptables-persistent:
    sudo apt-get install iptables-persistent
    
    安装过程中会提示是否保存当前规则,选择"是"即可。

额外检查项

确认你的安卓手机和PC处于同一局域网段(192.168.31.x),可以在手机的WiFi设置中查看IP地址,确保其网段与PC的192.168.31.52一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.14 08:38:13