无法从公网访问Verdaccio页面的技术求助
我来帮你捋捋这个问题——同IP下5000端口的服务能正常访问,但Verdaccio的4873端口不行,这种情况大概率是配置或网络限制导致的,咱们一步步排查解决:
1. 检查Verdaccio的监听配置
Verdaccio默认只监听本地回环地址(127.0.0.1),这就导致只有服务器本机能访问,公网请求根本传不进来。你需要修改它的配置文件:
- 配置文件默认路径:Linux/macOS是
~/.config/verdaccio/config.yaml,Windows一般在C:\Users\<你的用户名>\.config\verdaccio\config.yaml - 找到
listen字段,默认可能是listen: 127.0.0.1:4873,把它改成listen: 0.0.0.0:4873,这样Verdaccio就会监听服务器的所有网卡端口 - 修改完成后,重启Verdaccio服务(如果是后台运行的进程,先杀掉再重新启动)
2. 排查防火墙/安全组规则
既然5000端口能正常访问,说明IP本身没问题,但4873端口可能被防火墙或云服务商的安全组拦截了:
- 本地防火墙:
- Linux系统:用命令
sudo ufw allow 4873/tcp开放4873端口(如果用firewalld,就执行sudo firewall-cmd --add-port=4873/tcp --permanent再sudo firewall-cmd --reload) - Windows系统:打开「Windows Defender防火墙」→「高级设置」→「入站规则」,新建规则允许TCP 4873端口的连接
- Linux系统:用命令
- 云服务器安全组:如果你用的是阿里云、腾讯云这类服务商,一定要在控制台的安全组配置里添加入站规则,开放TCP 4873端口,源地址设为
0.0.0.0/0(允许所有公网IP访问)
3. 验证Verdaccio的监听状态
修改完配置后,确认Verdaccio确实在监听正确的地址:
- Linux/macOS:执行
ss -tulpn | grep 4873,如果输出里有0.0.0.0:4873,说明监听配置生效了;如果还是127.0.0.1:4873,那就是配置没改对或者服务没重启成功 - Windows:执行
netstat -ano | findstr :4873,查看本地地址是否为0.0.0.0:4873
4. 本地测试先确认服务正常
在服务器本机用 curl http://localhost:4873 测试,如果能返回Verdaccio的页面HTML内容,说明服务本身没问题;这时候再用公网机器访问 http://你的服务器IP:4873,应该就能正常打开页面查看私有包了。
内容的提问来源于stack exchange,提问作者jojo____
相关产品推荐
相关产品推荐

