BettaFish
BettaFish copied to clipboard
因为默认的5000端口被占用,换成了未被占用的6000,却打不开网址,换成未被占用的9000可以打开网址
帖子详见:https://linux.do/t/topic/1009280/425?u=limm2025
Hi @xiuxiuxius! I'm Dosu and I’m helping the BettaFish team.
你遇到的问题很常见,主要原因通常不是代码本身,而是操作系统或网络环境对端口的特殊处理。根据社区反馈和代码分析,以下几点值得重点排查:
- 端口6000在Linux系统上常被X11服务默认占用或保留,即使
lsof没显示进程监听,也可能被系统或防火墙特殊处理,导致外部无法访问(而9000通常不会被特殊用途占用); - 某些防火墙、SELinux或代理规则会默认屏蔽6000端口的外部访问,可以尝试用
sudo iptables -L或firewall-cmd --list-all等命令检查防火墙规则,或临时关闭防火墙测试; - 如果是服务器部署,确保Flask绑定的是
0.0.0.0而不是127.0.0.1,否则只能本机访问,外部无法访问(代码里已确认是通过参数设置host和port的,没有端口特殊逻辑); - 前端如果写死了
localhost:端口,需要改成服务器实际IP或域名,尤其是远程访问时,否则浏览器会请求本地而不是服务器; - 有用户反馈某些代理(如ClashX)或浏览器插件会对特定端口做拦截或重定向,建议更换端口或关闭代理测试(详见相关讨论);
- 端口变更后建议重启终端或环境,确保环境变量和配置生效(见类似案例)。
综上,建议优先避开6000、5000等常用或系统保留端口,选择9000、15080等高位端口,并检查防火墙、代理和前端配置。如果还有问题,可以补充具体的访问方式(本地/远程、浏览器/命令行等)和报错信息,便于进一步定位。
To reply, just mention @dosu.
How did I do? Good | Irrelevant | Incorrect | Verbose | Hallucination | Report 🐛 | Other