返回知识库

服务器 · 网络与入口

安全组与防火墙Security Group & Firewall

请求进服务器要过两道门:机器外的云安全组和机器里的防火墙,两道都放行才通。网站端口对所有人,SSH 只对自己的 IP,数据库不对公网;改完从外网实测是哪道门拦的。

控制台明明开了 443,为什么还是不通?

请求从外网进来要先后穿过两扇门:云安全组和机器里的 ufw。左右两张规则表可以增删、切换来源;点来访者按钮,请求会停在拦住它的那一列,目标清单跟着亮灭。改过规则后旧结果会标「需重测」。

任务:网站 443 对所有人开、你的 SSH 进得来、扫描器撞 22 和 5432 全被挡。服务器 203.0.113.10 上 SSH、Nginx 和数据库都在听(数据库误配成接所有来源,见「端口」),现在只剩两道门能挡。

外网来访者

① 云安全组在云厂商控制台改 · 机器外面
  • 443 网站
  • 22 SSH
② 系统防火墙 ufw在机器里改(AI 通过 SSH 执行)
  • 22 SSH

服务器

  • 22 SSH
  • 443 Nginx
  • 5432 数据库
  1. 你在家 → 443 网站应该进得来门①未测门②服务器
  2. 你在家 → 22 SSH应该进得来门①未测门②服务器
  3. 陌生扫描器 → 22 SSH应该被挡门①未测门②服务器
  4. 陌生扫描器 → 5432 数据库应该被挡门①未测门②服务器

目标清单

  • ○网站 443 能进未测
  • ○你的 SSH 22 能进未测
  • ○扫描器撞 22 被挡未测
  • ○扫描器撞 5432 被挡未测

原因还没测。下一步:先点「你在家访问网站 443」,看请求停在哪扇门前。

知识点:两道门、谁在哪改、放给谁

通道里已经演过,这里只给命名。

  • 安全组在机器外面,由云厂商在流量到达服务器之前拦截,在控制台改;防火墙(ufw / firewalld)在机器里面,要登录服务器改。
  • 两道门都放行,请求才进得来。连不上时两边都查,不要只盯着控制台。
  • 规则有两半:端口和来源。网站 80/443 对所有人;SSH 22 只对你的 IP;数据库、缓存、应用端口不对公网。
  • 「全部端口 · 所有人」能让一切连通,也让扫描器长驱直入,不是排障手段。
  • 改完从外网实测,并说清是哪道门拦的;两道门规则保持一致,一道配错还有另一道兜底。
  • 有的系统镜像默认没开 ufw,这时只剩安全组一道门,更要配准。

什么时候用、怎么用

自己买服务器后,第一次上线和每次「外网连不上」都要过一遍。

  • 信号:AI 说「服务已启动、本机 curl 正常」,但外网超时;或者你换了网络(公司、咖啡馆)后 SSH 突然连不上——你的 IP 变了。
  • 先确认应用本身在听对外地址(见「端口」),再查两道门。
  • 让 AI 列出安全组入方向规则和 ufw 规则,逐条对照:端口、来源、是否两边一致。
  • 验收:从外网逐个端口测,22 只有你能连、443 所有人能开、5432 等连不上,并说明每个结果是哪道门造成的。
  • 不适用:用托管平台(Vercel 等)时没有安全组要你管;它们只给你域名和平台自带的访问控制。

正反例:同一句「外网连不上」

目标都是让网站能访问,差别在放开了什么。

正例找到拦住它的那扇门,只补那一条

外网 443 超时:AI 查到安全组放了、ufw 没放;只在 ufw 加一条 443 · 所有人。网站打开,扫描器撞 22 和 5432 仍被挡。

反例「全部端口对所有人放行」

网站是通了,可几小时后数据库日志里全是陌生 IP 的登录尝试,SSH 也在被撞密码。

快速自测

安全组里 22 只对你的 IP 开。你在咖啡馆连 SSH 一直超时,在家却正常。最可能的原因是?

继续查证

术语的技术定义和行为以这些一手或权威资料为准。

下一步学

和本知识点经常一起出现的概念。