# 🔥 紧急修复:无法访问服务的问题 ## 问题诊断 ✅ **服务状态正常:** ``` argocd-server NodePort 80:31875/TCP,443:31064/TCP gitea-http NodePort 3000:32158/TCP demo-nginx NodePort 80:30080/TCP test-app NodePort 80:30081/TCP ``` ❌ **问题原因:阿里云ECS安全组未开放NodePort端口** 从本地无法访问这些端口,但从master节点内部可以访问,说明是云服务器安全组阻止了外部访问。 ## 🔧 解决方案 ### 方案1: 配置阿里云安全组(推荐) #### 步骤1: 登录阿里云控制台 1. 访问 https://ecs.console.aliyun.com/ 2. 登录你的阿里云账号 #### 步骤2: 找到安全组 1. 左侧菜单选择 **网络与安全** → **安全组** 2. 找到你的ECS实例所在的安全组 #### 步骤3: 添加入方向规则 点击 **配置规则** → **入方向** → **手动添加**,添加以下规则: | 端口范围 | 授权对象 | 描述 | |---------|---------|------| | 30080/30080 | 0.0.0.0/0 | Demo App | | 30081/30081 | 0.0.0.0/0 | Test App | | 31875/31875 | 0.0.0.0/0 | ArgoCD HTTP | | 31064/31064 | 0.0.0.0/0 | ArgoCD HTTPS | | 32158/32158 | 0.0.0.0/0 | Gitea HTTP | | 30625/30625 | 0.0.0.0/0 | Gitea SSH | 或者一次性开放NodePort范围: | 端口范围 | 授权对象 | 描述 | |---------|---------|------| | 30000/32767 | 0.0.0.0/0 | K3s NodePort范围 | **注意:** 如果只想允许特定IP访问,将 `0.0.0.0/0` 改为你的公网IP。 #### 步骤4: 保存并等待生效 保存规则后,等待1-2分钟生效。 ### 方案2: 使用Traefik Ingress(推荐用于生产) Traefik已经部署并监听在80和443端口,我们可以通过Ingress访问服务。 #### 2.1 配置ArgoCD Ingress ```bash ssh fei@8.216.38.248 kubectl apply -f - <