251118-NTP-Ubuntu时间同步(systemd-timesyncd和chrony区别)

systemd-timesyncd和chrony区别

一句话先给结论:
systemd-timesyncd 是“够用就好”的轻量级 SNTP 客户端;chrony 是功能完整、速度快、适应性强的现代 NTP 实现。

下面把差异拆开说清(信息取自 2025-09 以后多篇对比

维度 systemd-timesyncd chrony
协议 SNTP(Simple NTP) 完整 NTP
角色 只能当 客户端 可当 客户端 + 服务器
资源占用 极低(systemd 内置)
配置难度 几乎零(改 1 行即可) 简单(默认配置已合理)
同步速度 慢,一次性跳变 快,几十秒内收敛
网络适应性 一般,掉线后无补偿 优秀,支持离线漂移修正、间歇性网络、VPN、移动环境
精度 够用(ms 级) 高(µs~ms 级,视网络)
高级功能 ❌ 无 ✅ 多源选举、温度补偿、硬件时间戳、本地 stratum、ACL、速率限制等
适用场景 桌面、容器、轻量客户端 生产服务器、虚拟机、云实例、笔记本、离线机房

举例:

  • 笔记本频繁休眠/唤醒 → chrony 能在联网后 3~5 秒完成同步,timesyncd 可能要等下一次周期或手动重启服务
  • 内网需要自建 NTP 服务器 → timesyncd 做不到;chrony 加一行 allow 192.168.0.0/24

因此,“客户端-only + 极简配置” 选 systemd-timesyncd;
其余所有场景(尤其云、虚拟化、不稳定网络、服务器角色)直接上chrony

251126-西门子wincc 读取变量地址 如何通过tcp协议

西门子wincc 读取变量地址 如何通过tcp协议

WinCC 本身并不提供“裸 TCP”方式去直接读写 PLC 变量,它只通过 3 类“带应用层协议”的通道与 CPU 打交道,这 3 条通道全部跑在 TCP
之上,因此只要 PLC 的以太网口没被禁用,就可以“用 TCP 读地址”,区别只是你在 WinCC 里选哪条通道、填什么地址。下面把 3 种场景一次说清:

1. S7 Protocol Suite(端口 102,原生 S7 协议)

  • 适用:S7-300/400/1200/1500
  • PLC 侧要求:
    – 硬件组态 → “允许在线访问”必须打钩;
    – 如果只想“读”,可以不勾“允许 PUT/GET”;WinCC 用的是周期读服务,不走 PUT/GET。
  • WinCC 侧步骤:
    1. 变量管理器 → 右键“添加新的驱动程序” → 选“SIMATIC S7 Protocol Suite.chn”;
    2. 在“TCP/IP”单元下建“新连接”,填入 PLC 的 IP 地址(如 192.168.0.1),端口固定 102;
    3. 在连接下建变量,地址直接写绝对地址,如 DB100,DW20、M50.0、IW256;符号名读不到。
  • 特点:速度最快,支持位、字节、字、双字、浮点;1200/1500 的优化块必须关掉“优化的块访问”。

2. Modbus TCP(端口 502,需要 PLC 做 Modbus 服务器)

  • 适用:
    – 200 SMART、S7-1200/1500(需调用 MB_SERVER 指令),或第三方仪表。

  • PLC 侧:
    – 在程序里插入 MB_SERVER,指定寄存器映射(例如 %MW1000 对应 40001)。

  • WinCC 侧:

    1. 变量管理器 → 添加驱动“Modbus TCP/IP.chn”;

    2. 建连接,IP 填 PLC 地址,端口 502,Slave ID 255;

    3. 建变量,地址用 Modbus 格式:。

  • 特点:跨品牌通用,但只能访问连续寄存器区,位变量要按字读回后再位屏蔽。

3. OPC UA / OPC Classic(端口 4840 或 4862,走 TCP)

  • 适用:S7-1200/1500 自带 OPC UA 服务器;WinCC 也可以当 OPC Client。

  • PLC 侧:
    – 激活“OPC UA 服务器”并建证书,把需要访问的变量拖进“OPC UA 元素”。

  • WinCC 侧:

    1. 变量管理器 → 添加“OPC UA WinCC Channel”;

    2. 新建连接,URL 写 opc.tcp://PLC_IP:4840;

    3. 浏览名称空间,直接把符号变量拖进来即可,无需记绝对地址。

  • 特点:能读符号名、结构体、数组,安全性高,适合多客户端同时访问。

快速选型建议

  • 手里是纯西门子方案,追求极简配置——直接用“S7 Protocol Suite.chn”,端口 102,地址写绝对地址即可。
  • PLC 是 200 SMART,或者需要第三方一起读——用 Modbus TCP,端口 502,PLC 里先做 MB_SERVER。
  • 想读符号名、结构体,或者以后上云——用 OPC UA,端口 4840。

只要记住:WinCC 必须通过上述 3 种“应用层协议”之一才能解析变量,裸 TCP 套接字方式在 WinCC 端是不开放的。

251126-Wincc连接PLC并读取变量相关操作

Wincc 连接PLC并读取变量相关操作

设置PG/PC接口

PC选择进入控制面板。

请添加图片描述
找到STEP 7,然后下面的接口分配选择TCPIP.Auto。

在这里插入图片描述

Wincc操作

返回Wincc项目,在主菜单界面选择变量管理,右键打开。

在这里插入图片描述

右键变量管理,添加新的连接项。这里以1500PLC为例。

在这里插入图片描述

添加完后右键新增的通道,点击新建连接。

在这里插入图片描述

此时会出现一个NewConnection1,右键它选择连接参数。

在这里插入图片描述

按照实际情况填写IP地址和参数即可。

在这里插入图片描述

此时需要激活项目。

在这里插入图片描述

如果连接处握手符号有一个小绿勾,则代表与PLC连接上。

在这里插入图片描述

右键选择【AS符号】-【从AS中读取】即可读取PLC中变量。

在这里插入图片描述

左边是数据块,右边是变量。勾选即代表此变量会放入到Wincc的变量表中

在这里插入图片描述

选择完毕后点击返回即可。

在这里插入图片描述

如果什么都不选就会显示所有变量。

在这里插入图片描述

此时可以看到所有变量,然后可以全选添加进变量表。

在这里插入图片描述

当然我们选中的变量后续在界面下方的变量里。

在这里插入图片描述

251126-wincc安装教程

WinCC 8.1最新保姆级安装教程

https://blog.csdn.net/limanovember/article/details/149509164

20、 现在回到之前的WinCC 8.1文件夹,找到【Crack】文件夹,右键点击【打开】

图片

21、在打开的文件夹中,找到【CCLicenseService和谐补丁】程序,右键点击选择【复制】

图片

22、打开以下路径:C:\Program Files (x86)\Common Files\Siemens\Bin,然后在空白处右键点击选择【粘贴】选项

图片

23、如果系统提示需要管理员权限,点击【继续】允许操作

图片

24、找到刚才粘贴的【CCLicenseService和谐补丁】程序,右键选择【以管理员身份运行】(这一步对于软件正常运行至关重要!)

图片

25、在弹出的界面中,点击【执行补丁】按钮(这将为WinCC注册必要的组件)

图片

26、补丁执行完成后,点击【确定】,然后点击右上角的【关闭按钮】退出

图片

27、再次回到Crack文件夹,找到【Sim_EKB_Install…】程序,右键选择【以管理员身份运行】

图片

28、在打开的程序界面中,依次展开左侧的【WinCC】、【WinCC v8.1(2024)】、【WinCC v8.1 Basis】,然后勾选所有【短名称】,最后点击【安装长密钥】

图片

29、等待安装长密钥完成,界面会显示操作状态

图片

30、接下来点击【Interface v8.1】选项,勾选全部【短名称】,然后点击【安装长密钥】(确保每个组件都能正常工作)

图片

31、继续点击【All】选项

图片

32、点击【WinCC v8.1(2024)】,找到并勾选【4630】短名称,然后点击【安装长密钥】

图片

33、所有设置完成后,点击右上角的【关闭按钮】退出程序

图片

34、现在重启你的电脑(这一步很重要!),重启完成后回到桌面,找到【SIMATIC WINCC 8.1软件图标】,右键点击选择【打开】

图片

35、如果前面的步骤都正确执行,WinCC软件应该能够成功启动,运行界面如下图所示:

图片

251117-Ntp-Ubuntu时间同步配置-自动同步网络时间(NTP)

251117-Ntp-Ubuntu时间同步配置-自动同步网络时间(NTP)

systemd-timesyncd和chrony区别

1
2
3
4
5
6
7
举例:

- 笔记本频繁休眠/唤醒 → chrony 能在联网后 3~5 秒完成同步,timesyncd 可能要等下一次周期或手动重启服务
- 内网需要自建 NTP 服务器 → timesyncd 做不到;chrony 加一行 `allow 192.168.0.0/24`

因此,**“客户端-only + 极简配置”** 选 systemd-timesyncd;
**其余所有场景**(尤其云、虚拟化、不稳定网络、服务器角色)直接上chrony

Ubuntu/Linux 服务器上调整系统时间(日期和时间)可以通过以下命令实现,具体分为 手动设置自动同步
(NTP)两种方式:

查看当前系统时间

1
date

或查看详细时区信息:

1
timedatectl

手动设置时间

(1) 使用 date 命令(临时生效,重启可能失效)

1
sudo date -s "2024-05-21 15:30:00"

或:

1
2
sudo date +%T -s "15:30:00"   # 仅修改时间
sudo date +%Y%m%d -s "20240521" # 仅修改日期

(2) 使用 timedatectl(推荐,永久生效)

1
sudo timedatectl set-time "2024-05-21 15:30:00"

或分别设置日期和时间:

1
2
sudo timedatectl set-time 15:30:00
sudo timedatectl set-time 2024-05-21

3. 设置时区

(1) 查看可用时区

1
timedatectl list-timezones

或搜索特定时区(如上海):

1
timedatectl list-timezones | grep Shanghai

(2) 修改时区

1
sudo timedatectl set-timezone Asia/Shanghai

或使用传统方式:

1
sudo ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

4. 自动同步网络时间(NTP)

1
sudo timedatectl set-ntp true

检查状态:

1
timedatectl status

(2) 手动强制同步

如果 NTP 未自动同步,可以手动触发:

1
sudo systemctl restart systemd-timesyncd

或使用 ntpdate(需安装):

1
2
sudo apt install ntpdate -y
sudo ntpdate pool.ntp.org

5. 硬件时间(BIOS时间)同步

1
sudo hwclock --systohc

查看硬件时间:

1
sudo hwclock --show

总结

需求 命令
查看时间 date 或 timedatectl
手动改时间 sudo timedatectl set-time “YYYY-MM-DD HH:MM:SS”
修改时区 sudo timedatectl set-timezone Asia/Shanghai
启用 NTP 自动同步 sudo timedatectl set-ntp true
强制同步 NTP sudo ntpdate pool.ntp.org
同步硬件时间 sudo hwclock –systohc
1
2
3
4
⚠️ 注意:

在 生产服务器 上修改时间可能影响日志、数据库、计划任务等,建议在维护窗口操作。
如果服务器运行 Kubernetes/Docker,还需同步容器时间。

251112-谷歌chrome-需要认证:您登录计算机时,您的登录密钥环未被解锁

Chrome需要认证:您登录计算机时,您的登录密钥环未被解锁。

1762913417134

你遇到的这个弹窗:

“需要认证:您登录计算机时,您的登录密钥环未被解锁。”

是因为 Chrome(或 Chromium)试图读取保存的密码,但你的 GNOME Keyring(或 KDE Wallet) 没有自动解锁。


🔍 为什么会这样?

  • 你设置了 自动登录(如树莓派、Ubuntu 自动登录)。
  • 系统登录时没有输入密码,所以密钥环没有解锁
  • Chrome 启动时尝试访问密钥环 → 弹出解锁提示。

操作方法

安装工具

1
2
3
4
5
sudo apt install seahorse  # 安装图形化管理工具(可选)
seahorse

1. 找到 **“登录”** 密钥环,右键 → **“更改密码”**。
2. 输入旧密码(是你用户密码),**新密码留空** → 确认 → 会提示“不安全” → 确认即可。

确认工具->密码和密钥

1762914475634

更改密钥密码

1762914454683



✅ 解决方法(任选其一)


✅ 方法 1:禁用密钥环(最简单,适合 kiosk、展示机)

如果你只是用 Chrome 做展示、 kiosk、HMI,不需要保存密码,直接禁用密钥环。

  1. 打开终端,运行:

    1
    sudo apt install seahorse  # 安装图形化管理工具(可选)
  2. 打开“密码和密钥”(Passwords and Keys):

    1
    seahorse
  3. 找到 “登录” 密钥环,右键 → “更改密码”

  4. 输入旧密码(是你用户密码),新密码留空 → 确认 → 会提示“不安全” → 确认即可。

这样密钥环就是解锁状态,再也不会弹窗。


✅ 方法 2:让密钥环自动解锁(适合需要保存密码)

  1. 确保你设置了用户密码(不能是自动登录无密码)。
  2. 设置你的登录密码密钥环密码一致。
  3. 系统登录时会自动解锁密钥环,不会再弹窗

✅ 方法 3:Chrome 启动时禁用密钥环(命令行)

你已经用了 --password-store=basic,这本来是禁用密钥环的,但如果还弹窗,说明:

  • 你可能用的是 Snap 或 Flatpak 版 Chrome,它忽略这个参数。
  • 或者系统默认密钥环是 KDE Wallet

✅ 终极方案(kiosk 专用)

如果你只是做展示、HMI、全屏播放,不需要保存任何密码直接用方法 1 把密钥环密码设为空即可。


✅ 总结

场景 推荐方法
展示机、 kiosk、HMI 方法 1:密钥环密码设为空
需要保存密码 方法 2:登录密码和密钥环一致
命令行无效 方法 3:确认不是 Snap 版 Chrome

如你不确定是哪种 Chrome,运行:

1
which google-chrome-stable

如果输出是 /snap/...,那就是 Snap 版,建议卸载后装 .deb 版:

1
sudo apt install google-chrome-stable

251111-ubuntu20.04-chrome浏览器禁用更新

方法一:使用 apt-mark 锁定 Chrome 包(推荐)

1
sudo apt-mark hold google-chrome-stable

恢复更新

1
sudo apt-mark unhold google-chrome-stable

禁用 Google Chrome 的软件源

1
sudo vim /etc/apt/sources.list.d/google-chrome.list

在每一行前加上 # 注释掉内容,例如:

1
# deb [arch=amd64] http://dl.google.com/linux/chrome/deb/ stable main

保存并退出,然后运行:

1
sudo apt update

✅ 总结

方法 效果 推荐程度
apt-mark hold google-chrome-stable 阻止 Chrome 更新,简单有效 ⭐⭐⭐⭐
注释掉 google-chrome.list 完全关闭 Chrome 更新源 ⭐⭐⭐
禁用系统自动更新 影响整个系统,不推荐

如无特殊需求,推荐使用 apt-mark hold 方法,安全、可控、可随时恢复。

Chrome启动全屏

sudo /usr/bin/google-chrome-stable –password-store=basic –disable-background-networking
–kiosk http://127.0.0.1/hmi/r26o –disable-pinch –disable-translate –no-sandbox

–no-sandbox 会关闭 Chrome 的“沙箱”保护机制
一句话:–no-sandbox 是“拆掉保险杠”的调试开关,能不用就别用。

–disable-pinch
禁用触控板/触摸屏上的“捏合缩放”(pinch-to-zoom)手势。

–disable-translate
彻底关掉内置翻译功能(Google Translate 提示条)

251110-BIOS-Keypress-BIOSKeyPress-IPC-工控机重装系统按键

BIOS按键配置

品牌 BIOS按键
ZYR中亿睿 F11
Lenovo F2
联想电脑 F12
Dell台式机

Ubuntu 系统安装openssh-server

1
2
3
4
5
sudo apt update

sudo apt install openssh-server -y

ifconfig

ubuntu 20.04如何查看当前屏幕的-当前登录会话里直接看变量-当前登录会话里直接看变量(echo $DISPLAY)

1
echo $DISPLAY

在 Ubuntu 20.04 里,“当前屏幕的 DISPLAY” 就是 X11 的 DISPLAY 变量,格式通常是 :0、:1、:0.0 等。
下面给出几种最常用、最兼容的办法,无需安装额外软件即可拿到结果。

一句话总结
只要你在图形界面下,echo $DISPLAY 就是当前屏幕的 DISPLAY;
ssh 进来就用 loginctl show-user $USER -p Display –value,百试百灵。

Unit.Service.配置变量Environment

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
[Unit]
Description=app
After=mongod.service
StartLimitIntervalSec=0

[Service]
ExecStart=/usr/local/java -javaagent:/opt/atlassian/jira/atlassian-agent.jar -Duser.timezone=Asia/Shanghai -Dfile.encoding=UTF-8 -Duser.timezone=GMT+08 -XX:-OmitStackTraceInFastThrow -Xms10G -Xmx10G -XX:+PrintGC -Xloggc:/opt/data/app/gc/gc.log -XX:MetaspaceSize=1G -XX:MaxMetaspaceSize=2G -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/opt/data/app/gc/ -jar /opt/data/app/lib/app.jar --spring.config.location=/opt/data/app/lib/application.properties
User=root
Group=root
Environment="DISPLAY=:0" # 需配置X11协议规则
PrivateTmp=true
LimitNOFILE=65536
Restart=always
RestartSec=1

[Install]
WantedBy=multi-user.target
Alias=app.service

在 Ubuntu 系统中,磁盘检查(fsck)通常在启动时自动运行,以确保文件系统的完整性。

如果你希望取消或调整磁盘检查的行为,可以通过以下几种方法来实现:

1. 修改 /etc/fstab 文件

/etc/fstab 文件定义了文件系统的挂载选项,包括是否在启动时进行磁盘检查。你可以通过修改这个文件来取消磁盘检查。

  1. 打开 /etc/fstab 文件

    1
    sudo vim /etc/fstab
  2. 找到需要修改的文件系统条目: 每一行代表一个文件系统条目,通常包含以下字段:

    1
    <file system> <mount point>   <type>  <options>       <dump>  <pass>

其中 `` 字段(第六个字段)定义了启动时是否进行磁盘检查:

  • 0:不进行磁盘检查。
  • 1:在启动时进行磁盘检查(通常用于根文件系统)。
  • 2:在启动时进行磁盘检查(通常用于其他文件系统)。
  1. **将 字段设置为 `0`**: 将需要取消磁盘检查的文件系统条目的 字段设置为 0。例如:
    1
    UUID=your-uuid /               ext4    errors=remount-ro 0       0
  2. 保存并退出: 保存文件并退出编辑器。

Ubuntu系统分盘建议

分区名称 分区格式 类型 大小 描述
swap 主分区 swap area 18G 交换空间,类似Windows下的虚拟内存。
空间大小,一般是等于电脑内存;如果容量足够,可以等于物理内存的2倍。
比如16GB内存,就可以给固态硬盘32GB的空间,太小也不好,太大也没用。博主这里配的是18G(运行内存16G+2G)。
efi 逻辑分区 efi system partition 2G 引导分区。空间大小为2G。
/ 逻辑分区 ext4日志文件系统 40G 根目录,分配40G。
/usr 逻辑分区 ext4日志文件系统 50G linux系统存放软件的地方。
/usr/local 逻辑分区 ext4日志文件系统 40G 承载用户安装的软件。(可选配)
/usr/local 逻辑分区 ext4日志文件系统 300G 相当于个人文件夹,用户存储数据,类似Windows下的User。
建议分配稍微大点,因为以后自己的图片、视频、下载内容基本都在这里面。博主安排了500G。

1762756042707

251110-BIOS-IPC-工控机重装按键

ubuntu 20.04如何查看当前屏幕的-当前登录会话里直接看变量-当前登录会话里直接看变量(echo $DISPLAY)

1
echo $DISPLAY

在 Ubuntu 20.04 里,“当前屏幕的 DISPLAY” 就是 X11 的 DISPLAY 变量,格式通常是 :0、:1、:0.0 等。
下面给出几种最常用、最兼容的办法,无需安装额外软件即可拿到结果。

一句话总结
只要你在图形界面下,echo $DISPLAY 就是当前屏幕的 DISPLAY;
ssh 进来就用 loginctl show-user $USER -p Display –value,百试百灵。

Unit.Service.配置变量Environment

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
[Unit]
Description=app
After=mongod.service
StartLimitIntervalSec=0

[Service]
ExecStart=/usr/local/java -javaagent:/opt/atlassian/jira/atlassian-agent.jar -Duser.timezone=Asia/Shanghai -Dfile.encoding=UTF-8 -Duser.timezone=GMT+08 -XX:-OmitStackTraceInFastThrow -Xms10G -Xmx10G -XX:+PrintGC -Xloggc:/opt/data/app/gc/gc.log -XX:MetaspaceSize=1G -XX:MaxMetaspaceSize=2G -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/opt/data/app/gc/ -jar /opt/data/app/lib/app.jar --spring.config.location=/opt/data/app/lib/application.properties
User=root
Group=root
Environment="DISPLAY=:0" # 需配置X11协议规则
PrivateTmp=true
LimitNOFILE=65536
Restart=always
RestartSec=1

[Install]
WantedBy=multi-user.target
Alias=app.service