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

Linux系统中如何跨主机访问本地Python HTTP服务器?

解决Python HTTP Server无法跨机器访问的问题

我之前也碰到过一模一样的情况!别着急,咱们一步步来排查,大概率是网络绑定或者防火墙的问题,下面是我亲测有效的几个步骤:

1. 先确认服务器的局域网IP,确保网络连通

首先你得知道服务器在局域网里的真实IP,在服务器上运行ip addr命令,找到类似192.168.x.x或者10.0.x.x的局域网地址(别用127.0.0.1,那是本地回环)。然后在客户端机器上ping这个IP:

ping 192.168.1.100  # 替换成你的服务器局域网IP

如果ping不通,先解决两台机器的网络连通问题——比如是不是在同一个WiFi/局域网下?服务器有没有开启局域网隔离?

2. 修改Python HTTP Server的绑定地址

默认情况下,python3 -m http.server 8080只会绑定到127.0.0.1,也就是只有服务器本地能访问。你需要让它监听所有网络接口,改成下面的命令:

cd server  # 先进入你的server目录
python3 -m http.server 8080 --bind 0.0.0.0

0.0.0.0表示绑定所有可用的网卡,这样客户端就能通过服务器的局域网IP访问了。这一步我当初踩过坑,默认绑定本地真的很容易忽略!

3. 检查服务器的防火墙规则

即使绑定了正确的地址,防火墙可能会挡住8080端口的请求,分两种常见情况处理:

  • Ubuntu/Debian系(用ufw防火墙):
    sudo ufw allow 8080/tcp  # 开放TCP的8080端口
    sudo ufw reload  # 让规则生效
    
  • CentOS/RHEL系(用firewalld防火墙):
    sudo firewall-cmd --add-port=8080/tcp --permanent  # 永久开放端口
    sudo firewall-cmd --reload  # 重载规则
    

也可以临时关闭防火墙测试(仅限排查用,别长期关闭):

# Ubuntu/Debian
sudo systemctl stop ufw
# CentOS/RHEL
sudo systemctl stop firewalld

如果关闭防火墙后客户端能访问,就说明是防火墙的问题,把上面的规则加上就行。

4. 客户端测试访问

现在在客户端用wget或者浏览器测试:

  • 用wget的话:
    wget http://你的服务器IP:8080
    
  • 浏览器访问的话,直接输入http://你的服务器IP:8080,应该能看到server目录下的文件列表。

关于GNOME文件共享的小补充

如果你之前试GNOME共享没成功,可能是缺少必要的服务包,比如Debian/Ubuntu下需要安装samba:

sudo apt install samba

安装后再重新配置共享目录,但其实用Python HTTP Server更轻量,先把上面的步骤搞定,应该就能解决你的问题啦!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.29 11:42:34