Ubuntu公网服务器Scrapyd界面无法访问,连接被拒绝排查
排查Scrapyd公网访问被拒绝的问题
嘿,你遇到的这个问题其实是Scrapyd新手常踩的配置误区,我帮你梳理几个最可能的原因和排查步骤:
1. 别搞混了scrapy.cfg的作用——它不是Scrapyd服务的配置文件!
这是最容易掉进去的坑:你现在写的scrapy.cfg主要是给scrapyd-deploy这个部署工具用的(用来指定部署目标地址、项目设置),而Scrapyd服务本身启动时,默认根本不会读取这个文件。
你在scrapy.cfg里写的[scrapyd]配置段,Scrapyd服务完全没读到,所以它还是用默认的绑定地址127.0.0.1,自然外部访问不了。
解决办法:
把[scrapyd]里的配置放到Scrapyd服务的专属配置文件中:
- Ubuntu系统下,默认的Scrapyd配置文件路径是
/etc/scrapyd/scrapyd.conf,如果不存在就自己创建一个 - 或者启动Scrapyd时手动指定你的配置文件(记得用绝对路径,避免服务找不到):
scrapyd --config /home/your-user/your-project/scrapy.cfg
2. 确认Scrapyd服务的实际监听状态
改完配置后,一定要验证服务确实在监听0.0.0.0:6800。在服务器上执行以下命令:
netstat -tulpn | grep 6800
如果系统没有netstat,用ss命令也可以:
ss -tulpn | grep 6800
- 如果输出显示的是
127.0.0.1:6800,说明配置没生效,服务还是只监听本地 - 如果看不到任何输出,要么Scrapyd没启动,要么端口被其他程序占用了
3. 检查“隐形”的网络防火墙
你说已经开放了所有端口,但要注意两种容易忽略的情况:
- 云服务器安全组:像阿里云、腾讯云、AWS这类服务商,哪怕你关了Ubuntu本地的
ufw防火墙,安全组如果没开放6800端口的入方向规则,外部还是访问不了。赶紧去你的云服务商控制台,添加一条允许所有IP(或指定IP)访问6800端口的入规则。 - 本地连通性测试:先在服务器上用
curl http://0.0.0.0:6800测试,如果能返回Scrapyd的网页,说明服务本身没问题,问题肯定出在外部网络的连通性上。
4. 查看Scrapyd启动日志找报错
别直接后台启动Scrapyd,先在前台启动看看有没有报错:
scrapyd --config /path/to/your/scrapy.cfg
如果看到Address already in use,说明6800端口被其他程序占了;如果看到No such file or directory,说明配置文件路径写错了。这些细节都会导致服务无法正常监听端口。
额外小提醒:部署配置的细节
你的[deploy:default]里的url是http://127.0.0.1:6800/——如果你是在本地开发机上执行scrapyd-deploy,这个地址要改成服务器的公网IP或者域名,不然会把爬虫部署到本地的Scrapyd(如果有的话),而不是远程服务器哦。
内容的提问来源于stack exchange,提问作者Amanda
相关产品推荐
相关产品推荐

