SSF0SSF0
首页
前端
  • Node
  • Go
  • Python
  • MySql
  • Bash
  • Git
  • Docker
  • VuePress
  • CI/CD
  • 服务器
  • 网站
  • 学习资料
  • 软件
  • 开源项目
Timeline
Github
标签
分类
首页
前端
  • Node
  • Go
  • Python
  • MySql
  • Bash
  • Git
  • Docker
  • VuePress
  • CI/CD
  • 服务器
  • 网站
  • 学习资料
  • 软件
  • 开源项目
Timeline
Github
标签
分类
  • Bash

    • Bash 获取路径在不同类型电脑的区别
  • Git

    • Git 使用 ssh 与 https 的区别
    • Git 回滚、重置与变基
    • 文件名大小写发生变化的坑
    • Git 提交信息规范解读与实践指南
    • Git 历史邮箱统一
    • Git 拉取 GitHub 失败、配置代理及 DNS 问题排查总结
    • Git 实战教程:如何使用 Cherry-pick 或直接覆盖让两个分支同步公共功能
  • Docker

    • Docker 命令大全
    • nginx 镜像部署静态文件
    • Docker 运行命令说明
    • 使用 node 镜像运行本地项目
    • 挂载和卷的区别
    • Docker 打包多平台镜像
    • Docker 使用 mysql
    • Docker 容器网络访问问题总结
    • Docker 容器绑定ip问题
  • VuePress

    • 使用 VuePress 搭建个人博客概括
  • CI/CD

    • blog 使用 Github-Actions 部署 docker 服务器
    • GitHub Actions项目部署国内服务器文件传输时间优化
  • 服务器

    • 腾讯云使用 ssh 连接服务器(Linux 实例)
    • ssl 证书安装到 docker 服务器
    • 操作系统与架构
    • ssh 连接时长问题
    • Oracle 服务器基础知识
    • OCI 专属网络拓扑图
    • 甲骨文-宝塔面板无法访问问题
    • 甲骨文服务器防火墙问题排查记录
    • 甲骨文重启后宝塔面板无法访问
  • hosts 文件指南
  • Cloudflare DNS与代理
  • 跨平台定时任务设置指南
  • Edge 浏览器连不上代理?一场由插件引发的“夺权”与 v2rayN 的深度探索
  • 二级域名访问异常排查记录
  • 软件走代理时如何抓包
  • JetBrains AI 使用
  • Clash 代理工作原理详解

宝塔面板无法访问问题排查记录

1. 问题描述

在 OCI(甲骨文云)Ubuntu 服务器上安装宝塔面板后,浏览器无法访问宝塔面板地址。

当前宝塔面板实际端口为:

  • 21412

浏览器访问:

  • https://服务器公网IP:21412

现象:

  • 页面打不开
  • 超时或连接失败
  • 但 OCI 控制台安全规则中已经放行了对应端口

2. 环境信息

  • 云平台:OCI(Oracle Cloud Infrastructure)
  • 系统:Ubuntu
  • 面板:宝塔 Linux 面板
  • 宝塔实际端口:21412

3. 最终原因

原因不是 OCI 没放行,而是 Ubuntu 系统内的 iptables 防火墙仍然拦截了 21412 端口。

也就是说,这里存在两层防火墙:

  1. OCI 控制台安全规则
  2. Ubuntu 系统防火墙(iptables/nftables/ufw)

即使 OCI 控制台放行了端口,如果 Ubuntu 本机防火墙没有放行,外部依然无法访问。


4. 排查过程

4.1 确认宝塔实际端口

先确认宝塔当前面板端口是否真的是 21412:

bt default

4.2 确认宝塔服务是否在监听端口

检查系统是否真的在监听 21412:

sudo ss -lntp | grep 21412

如果有输出,说明宝塔服务本身正常监听。


4.3 抓包确认公网请求是否到达服务器

使用 tcpdump 抓包:

sudo tcpdump -ni any tcp port 21412

结果看到公网请求的 SYN 包已经到达服务器内网地址,例如:

公网IP.xxx > 10.0.0.34.21412: Flags [S]

这说明:

  • OCI 控制台安全规则已经生效
  • 公网流量已经到达服务器

也就是说,问题不在 OCI 这一层。


4.4 检查 Ubuntu 本机防火墙规则

查看 iptables:

sudo iptables -L INPUT -n --line-numbers

排查时发现规则类似:

  • 允许已建立连接
  • 允许 icmp
  • 允许 lo
  • 允许 22 端口
  • 然后直接 REJECT 所有其他入站流量

因此,21412 在系统里没有被放行,导致请求虽然到达服务器,但被 Ubuntu 本机防火墙拦截。


5. 解决方法

在 REJECT 规则之前插入一条允许 21412 的规则:

sudo iptables -I INPUT 5 -p tcp --dport 21412 -j ACCEPT

执行后,宝塔面板立即恢复可访问。


6. 为什么 OCI 已经放行了,还要在 Ubuntu 里再放行?

因为是两层防火墙:

公网
  -> OCI 控制台安全规则
  -> Ubuntu 系统防火墙
  -> 宝塔服务

含义分别是:

  • OCI 放行:允许流量到达云主机
  • Ubuntu 放行:允许流量进入系统并交给宝塔进程

两层都要放行,外部访问才会成功。


7. 宝塔面板里的防火墙说明

宝塔“系统防火墙”页面本质上是在管理 Linux 系统里的防火墙规则,通常是:

  • iptables
  • 或 nftables

所以:

  • 宝塔不是额外独立的一套云防火墙
  • 它管理的是 Ubuntu 本机防火墙
  • 它不能替代 OCI 控制台安全规则

另外,宝塔页面里看到 8888 备注为“宝塔Linux面板默认端口”,只是说明 8888 是默认值。 当前服务器实际端口已经改成了 21412,所以最终应以:

bt default

输出结果为准。


8. 本次问题结论

本次“宝塔面板打不开”的根因是:

OCI 控制台端口已放行,但 Ubuntu 本机 iptables 未放行 21412,导致请求到达主机后被系统防火墙拦截。

最终通过以下命令解决:

sudo iptables -I INPUT 5 -p tcp --dport 21412 -j ACCEPT

9. 建议的后续处理

9.1 保存防火墙规则,避免重启丢失

sudo apt-get update
sudo apt-get install -y iptables-persistent
sudo netfilter-persistent save

9.2 最小放行原则

建议只开放必要端口:

  • 22:SSH,仅允许自己的公网 IP
  • 21412:宝塔面板,仅允许自己的公网 IP
  • 80:网站 HTTP
  • 443:网站 HTTPS

9.3 不用的端口建议关闭

如果不用,建议关闭:

  • 8888
  • 888
  • 20
  • 21
  • 39000-40000

10. 本次排查用到的命令汇总

查看宝塔端口

bt default

查看监听情况

sudo ss -lntp | grep 21412

抓包确认请求是否到达

sudo tcpdump -ni any tcp port 21412

查看 iptables 规则

sudo iptables -L INPUT -n --line-numbers

临时放行 21412

sudo iptables -I INPUT 5 -p tcp --dport 21412 -j ACCEPT

保存规则

sudo netfilter-persistent save

11. 一句话总结

云控制台放行,只代表“流量能到服务器”;系统防火墙放行,才代表“服务真的能被访问”。

问题延续:

甲骨文重启后宝塔面板无法访问

最后更新时间:
贡献者: 何风顺
上一页
OCI 专属网络拓扑图
下一页
甲骨文服务器防火墙问题排查记录