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

AWS EC2上通过Docker部署Wiki.js无法公网访问问题求助

排查解决方案

  • 端口映射与访问规则不匹配是核心问题:你启动容器的参数为 -p 8080:3000,代表将EC2实例本地的8080端口映射到Wiki容器内部的3000端口,日志提示访问3000是容器内部端口,对外暴露的实际端口为8080。你当前安全组仅开放了3000端口,且大概率访问时使用了实例IP:3000,自然无法连通。
    两种修复方案二选一即可:
    1. 在EC2绑定的安全组中添加入站规则,开放TCP协议8080端口的公网访问权限,之后直接访问http://EC2公网IP:8080即可进入配置页
    2. 删除现有容器后重新启动,将端口映射调整为3000映射3000,适配已开放的安全组规则,操作命令如下:
      docker rm -f wiki
      docker run -d -p 3000:3000 --name wiki --restart unless-stopped -e "DB_TYPE=mysql" -e "DB_HOST=172.0.0.1" -e "DB_PORT=3306" -e "DB_USER=wikijs" -e "DB_PASS=wikijsrocks" -e "DB_NAME=wiki" requarks/wiki:2
      
  • 调整后仍无法访问可继续排查以下项:
    • 检查VPC关联的网络ACL规则,确认没有拦截8080/3000端口的入站、出站流量,默认VPC网络ACL为全开放,自定义ACL需手动添加允许规则
    • 登录EC2实例执行ss -tulnp | grep 对应端口号,确认端口处于正常监听状态,同时排查实例本地的iptables、firewalld规则是否拦截了对应端口的公网访问
    • 确认访问时使用的是EC2的公网IP/公网域名,私有IP仅支持同VPC内网环境访问
    • 你填写的数据库地址172.0.0.1存在配置错误,正确的本地回环地址为127.0.0.1,如果后续出现数据库连接失败问题,可将DB_HOST修改为EC2的私有IP,或使用--link参数关联数据库容器解决容器内网络互通问题

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.11 03:36:02