orangePi香橙派kunpengpro的openEuler 系统时间同步和远程连接

举报
koufeika 发表于 2025/11/07 17:47:15 2025/11/07
【摘要】 适用于:香橙派 Kunpeng Pro、openEuler 22.03 LTS-SP4(aarch64) 问题背景刚烧录的 openEuler 系统存在以下问题:时间偏差巨大(回到 1970.1.1 08:00),导致 TLS 证书校验失败,无法下载软件包缺少 NTP 自动校时配置,开机后时间不会自动同步需要安装 Tailscale 实现远程访问与组网 一键初始化脚本将以下脚本保存为 ini...

适用于:香橙派 Kunpeng Pro、openEuler 22.03 LTS-SP4(aarch64)

问题背景

刚烧录的 openEuler 系统存在以下问题:

  • 时间偏差巨大(回到 1970.1.1 08:00),导致 TLS 证书校验失败,无法下载软件包
  • 缺少 NTP 自动校时配置,开机后时间不会自动同步
  • 需要安装 Tailscale 实现远程访问与组网

一键初始化脚本

将以下脚本保存为 init_openeuler.sh,赋予执行权限后运行:


#!/bin/bash

# openEuler 初始化脚本:时间同步 + Tailscale 安装

# 适用于 openEuler 22.03 LTS-SP4

  

set -e

  

echo "==> 步骤 1: 临时修正系统时间(避免 TLS 证书校验失败)"

timedatectl set-ntp false

timedatectl set-time "$(date -d '+8 hours' +'%Y-%m-%d %H:%M:%S' 2>/dev/null || echo '2025-11-04 10:00:00')"

timedatectl set-ntp true

echo "当前时间: $(date -Is)"

  

echo ""

echo "==> 步骤 2: 安装并配置 chrony(NTP 时间同步)"

if ! rpm -q chrony &>/dev/null; then

dnf -y install chrony

fi

  

# 备份原配置

test -f /etc/chrony.conf && cp -n /etc/chrony.conf /etc/chrony.conf.bak

  

# 添加关键配置(如果不存在)

grep -q "^makestep" /etc/chrony.conf || echo "makestep 1.0 3" >> /etc/chrony.conf

grep -q "aliyun.com" /etc/chrony.conf || echo "server ntp.aliyun.com iburst" >> /etc/chrony.conf

grep -q "cn.pool.ntp.org" /etc/chrony.conf || echo "pool cn.pool.ntp.org iburst" >> /etc/chrony.conf

  

# 启用并启动服务

systemctl enable --now chronyd

  

# 强制立即同步

sleep 2

chronyc -a makestep

  

echo ""

echo "==> 步骤 3: 验证时间同步状态"

chronyc tracking

timedatectl status | head -7

  

echo ""

echo "==> 步骤 4: 安装 Tailscale"

if ! command -v tailscale &>/dev/null; then

# 添加 Tailscale RHEL8 兼容源

curl -fsSL https://pkgs.tailscale.com/stable/rhel/8/tailscale.repo -o /etc/yum.repos.d/tailscale.repo

dnf -y install tailscale

fi

  

# 启用并启动 tailscaled

systemctl enable --now tailscaled

  

echo ""

echo "==> 步骤 5: 启动 Tailscale(需要浏览器认证)"

echo "请在浏览器中打开返回的 URL 完成设备认证:"

tailscale up --ssh

  

echo ""

echo "==> 初始化完成!"

echo ""

echo "服务状态检查:"

systemctl is-active chronyd tailscaled

systemctl is-enabled chronyd tailscaled

  

echo ""

echo "Tailscale 状态:"

tailscale status

  

echo ""

echo "============================"

echo "初始化成功!后续操作提示:"

echo "1. 时间同步:已配置开机自启,无需手动干预"

echo "2. Tailscale:已加入 Tailnet,可使用 Tailscale SSH 远程连接"

echo "3. 如需接受路由:tailscale up --ssh --accept-routes=true"

echo "============================"

使用方法


# 1. 上传或创建脚本

vi init_openeuler.sh

# 粘贴上述内容并保存

  

# 2. 赋予执行权限

chmod +x init_openeuler.sh

  

# 3. 以 root 身份运行

./init_openeuler.sh


手动逐步操作

1. 修正系统时间(避免证书校验失败)


# 临时关闭自动同步,手动设置近似时间,再重新开启

timedatectl set-ntp false

timedatectl set-time "2025-11-04 10:00:00" # 修改为当前实际日期时间

timedatectl set-ntp true

  

# 验证时间已更新

date -Is

原因:系统时间停留在 1970 年时,HTTPS 证书被判定为"尚未生效",导致 dnf install 失败。


2. 安装并配置 chrony


# 安装 chrony(如果未安装)

rpm -q chrony || dnf -y install chrony

  

# 备份原配置

cp -n /etc/chrony.conf /etc/chrony.conf.bak

  

# 添加快速跳变配置(开机时允许大幅调整时间)

grep -q "^makestep" /etc/chrony.conf || echo "makestep 1.0 3" >> /etc/chrony.conf

  

# 添加国内 NTP 源(提高同步速度)

grep -q "aliyun.com" /etc/chrony.conf || echo "server ntp.aliyun.com iburst" >> /etc/chrony.conf

grep -q "cn.pool.ntp.org" /etc/chrony.conf || echo "pool cn.pool.ntp.org iburst" >> /etc/chrony.conf

  

# 启用并启动服务

systemctl enable --now chronyd

  

# 立即强制同步

sleep 2

chronyc -a makestep

配置说明

  • makestep 1.0 3:前 3 次更新允许时间跳变超过 1 秒(快速纠正大偏差)
  • server ntp.aliyun.com iburst:使用阿里云 NTP 服务器(国内访问快)
  • pool cn.pool.ntp.org iburst:使用中国 NTP 池(冗余备份)

3. 验证时间同步


# 查看同步状态(应显示 Leap status: Normal)

chronyc tracking

  

# 查看 NTP 源列表(* 表示当前使用的源)

chronyc sources -v

  

# 查看系统时间同步状态

timedatectl status

# 应显示:

# System clock synchronized: yes

# NTP service: active


4. 安装 Tailscale


# 添加 Tailscale RHEL8 源(openEuler 22.03 兼容 EL8)

curl -fsSL https://pkgs.tailscale.com/stable/rhel/8/tailscale.repo \

-o /etc/yum.repos.d/tailscale.repo

  

# 安装 Tailscale

dnf -y install tailscale

  

# 启用并启动服务

systemctl enable --now tailscaled


5. 启动并认证 Tailscale


# 启动 Tailscale 并开启内置 SSH

tailscale up --ssh

  

# 会输出类似:

# To authenticate, visit:

# https://login.tailscale.com/a/xxxxxxxxx

  

# 在浏览器中打开该 URL 完成设备认证

  

# 查看状态

tailscale status


验证与检查

验证服务状态


# 检查服务运行状态

systemctl is-active chronyd tailscaled

# 应输出:

# active

  

# 检查开机自启动

systemctl is-enabled chronyd tailscaled

# 应输出:

# enabled

验证时间同步


# 查看时间同步质量

chronyc tracking | grep -E "Reference|Stratum|Leap"

# Reference ID 应显示一个有效的 NTP 服务器 IP

# Stratum 应为 2-4(数字越小越准确)

# Leap status 应为 Normal

  

# 查看当前使用的 NTP 源(* 表示当前选择的源)

chronyc sources

验证 Tailscale


# 查看 Tailscale 连接状态

tailscale status

  

# 测试与其他节点的连接

tailscale ping <其他设备名或IP>

  

# 查看本机的 Tailscale IP

tailscale ip -4


常见问题与排错

问题 1:时间仍然不同步


# 检查 chronyd 日志

journalctl -u chronyd -f

  

# 手动强制同步

chronyc -a makestep

  

# 检查 NTP 源是否可达

chronyc sources -v

# 如果所有源都不可达(Reach 为 0),检查网络或防火墙

问题 2:Tailscale 安装失败


# 如果官方脚本无法识别 openEuler,使用手动方法:

curl -fsSL https://pkgs.tailscale.com/stable/rhel/8/tailscale.repo \

-o /etc/yum.repos.d/tailscale.repo

dnf -y install tailscale

  

# 或使用静态二进制文件:

curl -fsSL https://pkgs.tailscale.com/stable/tailscale_1.90.6_arm64.tgz -o /tmp/tailscale.tgz

tar -xzf /tmp/tailscale.tgz -C /usr/local/bin --strip-components=1

问题 3:Tailscale 认证 URL 无法访问


# 使用 Auth Key 替代浏览器认证:

# 1. 在 Tailscale 管理后台生成 Auth Key(可设置为可复用)

# 2. 使用 Auth Key 启动:

tailscale up --ssh --authkey=tskey-auth-xxxxxxxxxxxxxxxxxx

问题 4:设备无 RTC 电池,每次重启时间归零

已解决:chrony 配置了开机自启动和 makestep,会在启动后自动快速校时。

如需进一步优化:


# 确保 chronyd 在网络就绪后立即启动

systemctl edit chronyd

# 添加:

[Unit]

After=network-online.target

Wants=network-online.target


附录:配置文件参考

/etc/chrony.conf 关键配置


# 国内 NTP 源

server ntp.aliyun.com iburst

pool cn.pool.ntp.org iburst

  

# 开机快速跳变(前 3 次更新允许大幅调整)

makestep 1.0 3

  

# 其他默认配置...

driftfile /var/lib/chrony/drift

logdir /var/log/chrony

开机自启动验证


# 查看 chronyd 自启动状态

systemctl list-unit-files | grep chronyd

# 应显示:chronyd.service enabled

  

# 查看 tailscaled 自启动状态

systemctl list-unit-files | grep tailscaled

# 应显示:tailscaled.service enabled


【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。