找回密码
立即注册
搜索
热搜: Java Python Linux Go
发回帖 发新帖

456

积分

0

好友

66

主题
发表于 昨天 01:40 | 查看: 4| 回复: 0

在Linux系统中,systemd 是进程ID为1的初始化进程。它的一项功能是提供套接字激活机制。

对于标准服务,如 SSH(安全外壳协议)systemd 默认会创建一个名为 ssh.socket 的单元,并监听TCP 22端口。

当有客户端尝试连接主机的SSH端口时,systemd 进程会感知到这个连接请求,随即动态启动 ssh.service 服务,并将已建立的TCP连接句柄移交给该服务进程来处理后续的客户端通信。之后,systemd 会继续监听22端口。这种机制的优势在于,只有在有实际连接需求时才会加载服务进程,从而节省系统内存资源。

这解释了为何一台新安装的Linux主机,无需额外配置就能通过22端口进行SSH连接,因为这是一项由 systemd 管理的标准服务。

Linux端口连接排查:为何SSH(22)通而HTTP(80)不通? - 图片 - 1

然而,HTTP协议 对应的80端口并非这类由 systemd 默认管理的“标准服务”。因此,系统默认并不会监听TCP 80端口,导致外部连接尝试会失败。

当客户端尝试连接一个未被任何进程监听的端口时,操作系统的网络协议栈无法匹配到对应的连接元组,便会向客户端发送一个TCP RST(复位)报文,客户端通常会看到“Connection reset by peer”或类似的错误提示。

要解决80端口无法连接的问题,通常需要以下步骤:

  1. 启动服务:在服务器上运行一个支持HTTP协议的进程(如Nginx、Apache),并配置其监听TCP 80端口。关于Web服务器的部署与配置,可以参考 云栈社区的后端与架构板块
  2. 检查防火墙:如果已经有进程在监听80端口,但连接依然失败,那么很可能是防火墙规则阻止了访问。你需要检查系统防火墙(如 firewalldiptables)或云服务商的安全组规则,确保已放行TCP 80端口的入站流量。这类运维安全配置是云原生与运维中的常见操作。



上一篇:PostgreSQL主备库归档日志配置详解:archive_mode设置与实战排查
下一篇:Spring Boot项目Maven统一依赖管理实战:集成Apache Commons、POI等实用工具库
您需要登录后才可以回帖 登录 | 立即注册

手机版|小黑屋|网站地图|云栈社区(YunPan.Plus) ( 苏ICP备2022046150号-2 )

GMT+8, 2025-12-7 00:29 , Processed in 0.092420 second(s), 38 queries , Gzip On.

Powered by Discuz! X3.5

© 2025-2025 CloudStack.

快速回复 返回顶部 返回列表