云计算百科
云计算领域专业知识百科平台

90% 新手踩坑:sshd 启动失败、端口占用、时间不同步完整解决方案

Linux 日志、时间、网络全套实战教程

一、Linux 日志管理详解(rsyslog + journald)

1.1 rsyslog 系统日志服务

CentOS 7 默认使用 rsyslog 作为系统日志收集服务,绝大多数系统服务、认证、报错都会被统一记录。

核心知识点
  • 并非所有程序都由 rsyslog 记录日志,取决于程序开发者设计
    sshd:交由 syslog 记录登录、报错日志
    httpd/nginx:自带独立日志目录,不依赖 rsyslog
  • sshd 日志关联配置```bash
    liuyifei@server ~ 22:00:10$ grep AUTHPRIV /etc/ssh/sshd_config
    liuyifei@server ~ 22:00:15$ grep ^authpri /etc/rsyslog.conf
  • 默认认证日志路径:`/var/log/secure`

    ### 1.2 经典故障实战(SSHD 服务排错)
    #### 故障 1:sshd_config 配置文件丢失
    ##### 故障模拟
    ```bash
    liuyifei@server ~ 22:05:20 $ mv /etc/ssh/sshd_config .
    liuyifei@server ~ 22:05:28 $ systemctl restart sshd

    日志排查(实时监控)

    liuyifei@server ~ 22:06:10 $ tail -f /var/log/messages
    # 报错关键信息
    Jul 27 22:05:41 server sshd: /etc/ssh/sshd_config: No such file or directory
    Jul 27 22:05:41 server systemd: Failed to start OpenSSH server daemon.

    修复方案

    liuyifei@server ~ 22:07:02$ mv sshd_config /etc/ssh/
    liuyifei@server ~ 22:07:10$ systemctl restart sshd

    故障 2:sshd_config 配置参数非法
    故障模拟

    liuyifei@server ~ 22:10:01$ echo hello world >> /etc/ssh/sshd_config
    liuyifei@server ~ 22:10:10$ systemctl restart sshd

    日志排查

    liuyifei@server ~ 22:10:20 $ tail -f /var/log/messages
    # 报错关键信息
    Jul 27 22:10:21 server sshd: /etc/ssh/sshd_config: line 144: Bad configuration option: hello
    Jul 27 22:10:21 server systemd: Failed to start OpenSSH server daemon.

    修复方案

    删除非法配置,重启服务。

    liuyifei@server ~ 22:11:05$ sed -i '/hello/d' /etc/ssh/sshd_config
    liuyifei@server ~ 22:11:12$ systemctl restart sshd

    故障3:服务端口占用(sshd 22 端口被占)
    故障现象

    systemd 管理的 sshd 重启失败,但客户端依旧可以远程连接。##### 排查日志

    liuyifei@server ~ 22:15:25 $ journalctl -u sshd
    # 关键报错
    Jul 27 22:15:58 server sshd[6809]: error: Bind to port 22 on 0.0.0.0 failed: Address already in use.
    Jul 27 22:15:58 server sshd[6809]: fatal: Cannot bind any address.

    根因

    手动执行 /sbin/sshd 启动进程,脱离 systemd 管理,占用 22 端口。##### 修复方案

    liuyifei@server ~ 22:16:30 $ pkill -9 sshd
    liuyifei@server ~ 22:16:42 $ systemctl restart sshd

    1.3 systemd-journald 二进制日志

    journald 是 systemd 自带日志服务,二进制存储,安全性更高,支持按服务、时间、级别精准过滤。

    配置文件

    路径:/etc/systemd/journald.conf
    核心参数 Storage

    • persistent:持久化存储,重启不丢失,存放 /var/log/journal
    • volatile:临时存储,仅内存,重启丢失
    • auto:默认,有目录则持久化,否则临时存储
    开启持久化日志

    liuyifei@server ~ 22:18:10 $ vim /etc/systemd/journald.conf
    # 修改
    Storage=persistent
    # 重启服务生效
    liuyifei@server ~ 22:18:40 $ systemctl restart systemd-journald

    1.4 journalctl 高频查询命令(生产常用)

    # 实时监控日志
    liuyifei@server ~ 22:20:00 $ journalctl -f

    # 查看本次开机所有日志
    liuyifei@server ~ 22:20:10 $ journalctl -b 0

    # 查看最近5条日志
    liuyifei@server ~ 22:20:20 $ journalctl -n 5

    # 只查看错误级别日志
    liuyifei@server ~ 22:20:30 $ journalctl -p err

    # 查看今日所有日志
    liuyifei@server ~ 22:20:40 $ journalctl –since today

    # 查看指定服务日志(重点!排错神器)
    liuyifei@server ~ 22:20:50$ journalctl -u sshd.service
    liuyifei@server ~ 22:21:00$ journalctl -u httpd.service

    1.5 httpd 服务配置错误排错实战

    故障模拟(端口非法)

    liuyifei@server ~ 22:25:10$ yum install -y httpd
    liuyifei@server ~ 22:26:00$ sed -i 's/Listen 80/Listen 80000/g' /etc/httpd/conf/httpd.conf
    liuyifei@server ~ 22:26:20$ systemctl restart httpd

    日志排查

    liuyifei@server ~ 22:26:30 $ journalctl -f
    Jul 27 22:26:49 server httpd[2877]: AH00526: Syntax error on line 42 of /etc/httpd/conf/httpd.conf: Invalid address or port

    修复

    liuyifei@server ~ 22:27:10$ sed -i 's/Listen 80000/Listen 80/g' /etc/httpd/conf/httpd.conf
    liuyifei@server ~ 22:27:20$ systemctl restart httpd


    二、Linux 时间管理(时间校准 + 时区 + Chrony 时间服务器)

    2.1 时间相关三大命令

    date 系统时间

    # 查看时间
    liuyifei@server ~ 22:30:00$ date
    # 设置英文格式时间(必须英文格式才能修改)
    liuyifei@server ~ 22:30:10$ date -s 'Mon Jul 27 22:30:00 2026'

    hwclock 硬件时钟

    # 查看硬件时间
    liuyifei@server ~ 22:31:00$ hwclock -r
    # 系统时间写入硬件时间
    liuyifei@server ~ 22:31:10$ hwclock -w
    # 硬件时间同步到系统时间
    liuyifei@server ~ 22:31:20$ hwclock -s

    timedatectl 统一时间管理

    # 查看完整时间信息
    liuyifei@server ~ 22:32:00$ timedatectl

    # 关闭自动对时,才能手动改时间
    liuyifei@server ~ 22:32:10$ timedatectl set-ntp no

    # 手动设置时间
    liuyifei@server ~ 22:32:20$ timedatectl set-time '2026-07-27 22:30:00'

    # 设置时区(标准北京时间)
    liuyifei@server ~ 22:32:30$ timedatectl set-timezone Asia/Shanghai

    2.2 tzselect 交互式时区选择

    liuyifei@server ~ 22:35:00 $ tzselect
    # 依次选择:5 Asia → 9 China → 1 Beijing Time → yes
    # 最终时区:Asia/Shanghai

    2.3 chrony 时间同步服务(生产标配)

    CentOS 7 默认使用 chronyd 替代 ntpd,更快、更稳定。

    客户端配置(同步公网时间)

    # 安装
    liuyifei@server ~ 22:40:00$ yum install -y chrony

    # 修改时间服务器为阿里云
    liuyifei@server ~ 22:40:10$ vim /etc/chrony.conf
    server ntp.aliyun.com iburst

    # 启动并设置开机自启
    liuyifei@server ~ 22:40:20$ systemctl enable chronyd –now

    # 验证对时状态
    liuyifei@server ~ 22:40:30$ chronyc sources -v

    自建内网时间服务器(服务端 + 客户端)
    服务端配置(10.1.8.10)

    liuyifei@server ~ 22:45:00 $ vim /etc/chrony.conf
    # 允许内网网段同步
    bindaddress 10.1.8.10
    allow 10.1.8.0/24

    liuyifei@server ~ 22:45:20 $ systemctl restart chronyd
    liuyifei@server ~ 22:45:30 $ systemctl stop firewalld

    客户端配置

    liuyifei@client ~ 22:46:00 $ vim /etc/chrony.conf
    # 同步内网时间服务器
    server 10.1.8.10 iburst

    liuyifei@client ~ 22:46:20 $ systemctl restart chronyd
    liuyifei@client ~ 22:46:30 $ chronyc sources -v


    三、Linux 网络管理全套(查看 + 配置 + 排错)

    3.1 网络基础查看命令

    1. 网卡信息查看

    # 简洁查看网卡
    liuyifei@server ~ 22:50:00 $ ip -br link

    # 详细网卡信息
    liuyifei@server ~ 22:50:10 $ ip link show ens32

    2. IP 地址查看

    liuyifei@server ~ 22:51:00$ ip -br a
    liuyifei@server ~ 22:51:10$ ip addr show ens32

    3. 路由网关查看

    liuyifei@server ~ 22:52:00$ ip route
    liuyifei@server ~ 22:52:10$ route -n

    4. DNS 查看

    liuyifei@server ~ 22:53:00$ cat /etc/resolv.conf

    3.2 网络连通性测试

    ping 连通性测试

    liuyifei@server ~ 22:55:00$ ping baidu.com -c 4 -w 2

    mtr 路由追踪(排错首选)

    liuyifei@server ~ 22:56:00$ mtr -n 1.1.1.1

    3.3 ss 网络端口查看(替代 netstat)

    # 查看ssh监听端口
    liuyifei@server ~ 23:00:00$ ss -l |grep :ssh

    # 查看所有ipv4监听端口
    liuyifei@server ~ 23:00:10$ ss -an4

    # 查看端口对应进程
    liuyifei@server ~ 23:00:20$ ss -lnp4|grep :22
    liuyifei@server ~ 23:00:30$ ss -lnp4|grep :80

    端口冲突排错案例(nginx 占用80导致httpd启动失败)

    liuyifei@server ~ 23:05:00$ yum install -y nginx
    liuyifei@server ~ 23:05:20$ systemctl start nginx.service
    liuyifei@server ~ 23:05:40$ yum install -y httpd
    liuyifei@server ~ 23:06:00$ systemctl start httpd
    # 发现端口占用
    liuyifei@server ~ 23:06:20$ ss -lnp4|grep :80
    # 停止占用程序
    liuyifei@server ~ 23:06:30$ systemctl stop nginx
    liuyifei@server ~ 23:06:40$ systemctl start httpd


    四、NetworkManager 网络配置(nmtui + nmcli)

    4.1 nmtui 图形交互式配置(小白首选)

    终端输入 nmtui,可视化配置网卡 DHCP自动获取 / 静态IP,无需记忆命令。

    liuyifei@server ~ 23:10:00$ nmtui

    4.2 nmcli 命令行网络配置(生产常用)

    启停网络

    liuyifei@server ~ 23:12:00$ nmcli networking off
    liuyifei@server ~ 23:12:10$ nmcli networking on

    网卡设备管理

    # 查看设备
    liuyifei@server ~ 23:13:00$ nmcli device

    # 断开/激活网卡
    liuyifei@server ~ 23:13:10$ nmcli device disconnect ens192
    liuyifei@server ~ 23:13:20$ nmcli device connect ens192

    动态IP配置(DHCP)

    # 创建动态连接
    liuyifei@server ~ 23:15:00$ nmcli connection add type ethernet ifname ens192 con-name ens192-dynamic ipv4.method auto

    # 激活
    liuyifei@server ~ 23:15:20$ nmcli connection up ens192-dynamic

    静态IP配置

    # 创建静态连接
    liuyifei@server ~ 23:16:00$ nmcli connection add type ethernet ifname ens192 con-name ens192-static ipv4.method manual ipv4.addresses 10.1.8.10/24

    # 追加网关、DNS
    liuyifei@server ~ 23:16:20$ nmcli connection modify ens192-static ipv4.gateway 10.1.8.2 ipv4.dns 223.5.5.5

    # 激活生效
    liuyifei@server ~ 23:16:30$ nmcli connection up ens192-static

    4.3 网络配置文件说明

    网卡配置文件目录:/etc/sysconfig/network-scripts/

    • BOOTPROTO=dhcp:自动获取
    • BOOTPROTO=none:静态IP
    • ONBOOT=yes:开机激活网卡

    手动改配置文件后必须重载:

    liuyifei@server ~ 23:20:00$ nmcli connection reload
    liuyifei@server ~ 23:20:10$ nmcli connection up ens192-static


    五、主机名与域名解析

    5.1 主机名配置

    # 查看
    liuyifei@server ~ 23:22:00$ hostname

    # 永久修改(写入配置文件)
    liuyifei@server ~ 23:22:10$ hostnamectl set-hostname server.liuyifei.cloud

    5.2 本地域名解析优先级

    /etc/hosts 优先于 DNS

    本地 hosts 解析配置

    liuyifei@server ~ 23:23:00$ vim /etc/hosts
    10.1.8.10 server.liuyifei.cloud server

    5.3 DNS 故障排错

    无 DNS 时无法解析公网域名,配置 DNS 即可恢复:

    liuyifei@server ~ 23:25:00$ nmcli connection modify ens160 ipv4.dns 223.5.5.5
    liuyifei@server ~ 23:25:10$ nmcli connection up ens160


    六、补充:Vim 批量编辑高级用法

  • 批量注释:Ctrl+v 选中多行 → I → 输入# → ESC
  • 批量取消注释:Ctrl+v 选中注释符 → x
  • 批量列复制粘贴:Ctrl+v 选中矩形块 → y 复制 → p 粘贴

  • 七、总结

  • 日志排错:系统服务报错优先使用 journalctl -u 服务名 精准定位,替代传统 tail 抓日志;sshd、httpd 配置错误、文件丢失、端口占用是最高频故障。
  • 时间管理:生产必须开启 chrony 时间同步,可自建内网时间服务器保证集群时间统一。
  • 网络管理:熟练使用 nmcli 配置静态/DHCP 网络,ss 命令排查端口冲突,掌握 hosts 与 DNS 解析顺序。
  • 排错思维:服务启动失败90%原因:配置语法错误、文件缺失、端口占用、权限不足,优先查看系统日志排查问题。
  • 赞(0)
    未经允许不得转载:网硕互联帮助中心 » 90% 新手踩坑:sshd 启动失败、端口占用、时间不同步完整解决方案
    分享到: 更多 (0)

    评论 抢沙发

    评论前必须登录!