Python中如何让Mac上的服务可以被其他电脑访问?
在同样的内网里, 我启动了服务
ifconfig 后看了 ip 是 192.168.1.141, 服务的端口是 8069,
但是我 192.168.1.141:8069 打不开网页
防火墙也关了
我怀疑是端口的问题 然后 google 了一下
用命令 sudo ipfw add 8069 allow tcp from any to any dst-port 8069 可以开放端口
但是 command not found
大佬们有什么解决方案吗
Python中如何让Mac上的服务可以被其他电脑访问?
请你去读那些友好的手册
要让Mac上的Python服务能被其他电脑访问,关键是把服务绑定到正确的网络接口并配置防火墙。
最简单的办法是使用Flask创建一个HTTP服务,绑定到0.0.0.0而不是127.0.0.1。这样服务会监听所有网络接口:
from flask import Flask
app = Flask(__name__)
@app.route('/')
def hello():
return "服务已启动,可被其他电脑访问"
if __name__ == '__main__':
# 关键:host='0.0.0.0' 让服务监听所有网络接口
app.run(host='0.0.0.0', port=5000, debug=True)
运行后,其他电脑可以通过http://你的Mac的IP地址:5000来访问。
重要步骤:
- 在Mac上打开“系统设置” > “网络”,找到你的IP地址(通常是192.168.x.x)
- 确保Mac防火墙允许该端口:系统设置 > 网络 > 防火墙 > 防火墙选项,添加Python或端口5000的例外
- 如果使用公司/学校网络,可能需要联系网络管理员
一句话建议:绑定0.0.0.0并配置防火墙就能让服务被局域网访问。
直接上 ngrok
先用 wireshark 抓个包看看
有可能服务监听的 127.0.0.1:8069
你的服务限了 host 的感觉
感觉没描述清楚呢,到底是 web 服务还是 redis、mysql 等,如果是 web 服务,可以用一下 frp ;如果是单纯想内网访问 web,那么可能就像上面所说的监听的是 127.0.0.1:8069,应该改成 0.0.0.0:8069,或者去掉 bind_ip 的设置(看配置而定)。
web 服务
典型地,我们先来考虑下怎么解决这个问题。
1. 确认你的服务有没有启动成功
2. 确认你的 client 访问了正确的地址
3. 确认你的 client 使用方式正确
首先,你尝试从浏览器打开,我们假定你是启动了一个 HTTP 服务。
第一个问题,如果你使用的服务端程序有明确的启动成功的表现,那么第一个问题得解。
第二个问题,你尝试用一个内网 ip 打开,首先确认是不是双方在同一个内网下,以及端口和主机开放情况。就是大家上面猜测,是不是只 HTTP 服务启动 bind 了本机 ip,127.0.0.1 而不是向所有地址开放。
第三个问题,前文假定你是启动了一个 HTTP 的服务,但是你的正文描述中没有明确表示你启动的是一个 HTTP 的服务,所以你可以再确定一下,这个服务使用的应用层的协议是不是能被浏览器解析。
至于你得到的反馈"command not found",建议先理解一下命令的含义再进行操作,不然对你的电脑而言是比较危险的。
局域网: 启动 指定 ip 0.0.0.0
广域网: 启动 localhost or 127.0.0.1 然后 frp

