OPC-DA-ALL-List-OPC-(二)-什么是OPC

OPC

OPC(OLE for Process Control, 用于过程控制的OLE)是一个工业标准,管理这个标准国际组织是OPC基金会.

为什么需要OPC

OPC是为了不同供应厂商的设备和应用程序之间的软件接口标准化,使其间的数据交换更加简单化的目的而提出的。作为结果,从而可以向用户提供不依靠于特定开发语言和开发环境的可以自由组合使用的过程控制软件组件产品。

利用驱动器的系统连接:

Driver connection

利用OPC的控制系统构成:

OPC connection

Opc的分层结构

OPC Structure

OPC对象中的最上层的对象是OPC服务器。一个OPC服务器里可以设置一个以上的OPC组。OPC服务器经常对应于某种特定的控制设备。例如,某种DCS控制系统,或者某种PLC控制装置。

OPC组是可以进行某种目的数据访问的多个的OPC标签的集合,例如某监视画面里所有需要更新的位号变量。正因为有了OPC组,OPC应用程序就可以以同时需要的数据为一批的进行数据访问,也可以以OPC组为单位启动或停止数据访问。此外OPC组还提供组内任何OPC标签的数值变化时向OPC应用程序通知的数据变化事件

OPC-DA-ALL-List-OPC-(一)-安装Matrikon OPC Simulation Server

安装OPC Server模拟器

可以在此处下载
或者去官网下载

双击下载下来的MatrikonOPCSimulation.EXE安装文件

Collecting Information

接受并Next

Complete Setup

选择Complete Setup并Next

Select the install path

安装路径为c:\Program Files\Matrikon\OPC然后Next

Create quick start icon

默认,Next

Confirm password

默认密码是MatrikonOPC然后选择Next

Ready to start

然后选择Next进行安装

最后安装完成会出现如下图示

Install finished

选择第一个和第二个Checked,其他选项Uncheck 第一个的意思是打开MatrikonOPC Configuration Panel 第二个的意思是打开Quick
Start文档(有兴趣可以看一下,英文的)

本次安装包含三部分

  • Analyzer分析器
  • Explorer浏览器
  • Simulation模拟器

OPC-DA-ALL-List-转载

OPC

框架对比

img

*

1.PLC
和OPC
*

使用的PLC:西门子的S7-300,具体型号如下图

img

使用的OPC server软件:

项目使用KEPServer V6
(427M,中文):百度网盘 ,密码: ykj2

KEPServer的123网盘分享:https://www.123pan.com/s/Lwn8Vv-4qnx
提取码:pTA9

模拟仿真用的 MatrikonOPC
Simulation(50M),百度网盘,密码: mcur

2.连接测试

什么是OPC

OPC是工业控制和生产自动化领域中使用的硬件和软件的接口标准,以便有效地在应用和过程控制设备之间读写数据。O代表OLE(
对象链接和嵌入),P (process过程),C (control控制)。
OPC服务器包括3类对象(Object):服务器对象(Server)、项对象(Item)和组对象(Group)。
OPC标准采用
C/S模式
,OPC服务器负责向OPC客户端不断的提供数据。

img

来源:OPC-(二)-什么是OPC

img

OPC server软件使用

MatrikonOPC: 使用Matrikon OPC Server Simulation

Server和Client

要实现的是Client(Java)和Client(PLC)之间的通信
中间借助OPCServer,Server上设定好地址变量,不同的Client读写这些变量值实现通信。
示意图如下

img

配置Server和Client

OPC和DCOM配置:通信不成功都是配置的问题。。。
配置OPCserver
一般一个电脑(win10)同时安装Server(比如KEPServer)和Client(Java编写的),就配置这个电脑就行
如果是在两个电脑上,那就都需要配置。

3.通信实现

img

Utgard

源码:https://github.com/ctron/org.openscada.utgard

Github上的

最全面的测试(Utgard和JeasyOPC测试):OPC_Client

博客参考

Github上的:资料下载

4.实现过程

1.补充学习了一下OPC的概念:

2.使用MatrikonOPC,了解OPCserver是怎么用的

3.关于OPC UA

  • 支持的OPC UA的西门子PLC至少是s7-1500(2021年10月27日 14:58:00 现在不能确定,看到一个回答,s7-300如果有网口就能和OPCUA通信)
  • 我的s7-300是没法用的,所以就不需要搜集OPC UA的资料了
  • 更正(2021年9月16日11:13:32):最近看OPC UA的资料,发现使用UA是可以的。

4.关于用Java实现

  • C#和C++都不用配置DCOM,直接调用函数
  • 既然是非要用Java,那就别想太方便,需要配置DCOM。

5.关于Utgard

utgard是一个开源的项目,基于j-interop
做的,用于和OPC SERVER通讯。

  • j-interop是纯java封装的用于COM/DCOM通讯的开源项目,这样就不必使用JNI

6.关于JeasyOPC

  • JeasyOPC源码下载
  • 借助一个dll库来实现的和OPCServer的通信,但是JCustomOpc.dll,,太老了,而且支持只32位系统

7.最终实现

  • 当然选Utgard
  • 过程就是把需要的jar包找到,

然后复制编程指导
里的读写代码,读就是启动线程一直对相应地址变量读取数值,写就是对相应地址变量写入数值

8.测试

  • 参考OPC_Client里的例子
  • 关于配置文件的代码直接复制用了
  • 例子实际也用不到,试了试,,因为实际只需要对地址变量读写数值就可以了

9.关于订阅方式数据采集

参考:https://www.hifreud.com/2014/12/27/opc-3-main-feature-in-opc/#订阅方式数据采集

并不需要OPC应用程序向OPC服务器要求,就可以自动接到从OPC服务器送来的变化通知的订阅方式数据采集(Subscription)。服务器按一定的更新周期(UpdateRate)更新OPC服务器的数据缓冲器的数值时,如果发现数值有变化时,就会以数据变化事件(DataChange)通知OPC应用程序。

因为没有使用这种订阅方式,所以当时没试过,后来尝试使用Async20Access,会报错。参考上面文章,说是:还必须设置身份标识,,我没试成功。

img

10.问题:

  • 在虚拟机里用localhost一直报错,要写固定IP才行
  • 配置里的IP是安装OPCServer软件的电脑的IP,如果使用无线连接,请查看无线的IP地址
  • 能不能循环对一个组(group)监控?好像不可以,官方Demo里有两种数据读取方式:1.循环监控item;2.item添加到group,只读取一次
  • 如果Java写的client和安装OPCServer软件是两台电脑:那两个电脑都要配置相同DCOM,包括账号密码都要一样

win10家庭版是否可以?可以,有些麻烦,主要是用户管理部分配置,有人已经验证过可以,我就不试了。建议虚拟机装win10专业版,参考

  • 关于组态王,作为OPCSerever,我怎么尝试都没连接上,,有人能连上,我就不试了。
  • 关于异步:我使用的同步读取数据,,异步读取没试过,别问我异步的问题。
  • group是客户端维护还是服务端维护:服务端可以建自己的分组,但是客户端看到的还是一个个单独的item,group是客户端自己的分组。我是这样理解的。

客户端能不能读到服务端的所有item列表:当然可以,请参考

关于KEPServer的注册表ID

img

11.maven依赖

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
<!--utgard -->
<dependency>
<groupId>org.openscada.external</groupId>
<artifactId>org.openscada.external.jcifs</artifactId>
<version>1.2.25</version>
<exclusions>
<exclusion>
<groupId>org.bouncycastle</groupId>
<artifactId>bcprov-jdk15on</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.openscada.jinterop</groupId>
<artifactId>org.openscada.jinterop.core</artifactId>
<version>2.1.8</version>
</dependency>
<dependency>
<groupId>org.openscada.jinterop</groupId>
<artifactId>org.openscada.jinterop.deps</artifactId>
<version>1.5.0</version>
<exclusions>
<exclusion>
<groupId>org.bouncycastle</groupId>
<artifactId>bcprov-jdk15on</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.openscada.utgard</groupId>
<artifactId>org.openscada.opc.dcom</artifactId>
<version>1.5.0</version>
</dependency>
<dependency>
<groupId>org.openscada.utgard</groupId>
<artifactId>org.openscada.opc.lib</artifactId>
<version>1.5.0</version>
</dependency>
<dependency>
<groupId>org.bouncycastle</groupId>
<artifactId>bcprov-jdk15on</artifactId>
<version>1.61</version>
</dependency>
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-core</artifactId>
</dependency>
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
</dependency>

Windows2016配置OPC DA DCOM通信-转载

https://www.claves.cn/archives/5838

一、进入DCOM配置程序

1.1 运行 dcomcnfg 进入 DCOM 配置程序

img

1.2 “组件服务” >“计算机” >“我的电脑” >“DCOM 配置”进入 CCOM 配置程序

img

二、服务端配置

2.1 服务端DCOM配置

步骤1:右击“我的电脑”进行属性设置

img

1)、设置“我的电脑”默认属性

img

2)、设置“我的电脑” COM 安全机制之访问权限 -“编辑限制”

img

img

img

img

步骤 4:选择用户:

1
2
3
4
5
6
7
8
9
Administrator 
Administrators
ANONYMOUS LOGON
Distributed COM Users
Everyone
Guests
INTERACTINE
NETWORK
SYSTEM

步骤 5:设置以上 9 个用户访问权限为:

img

本地访问:允许
远程访问:允许
3)、设置“我的电脑” COM 安全机制之访问权限 -“编辑默认值”

img

同 设置“我的电脑” COM 安全机制之访问权限 -“编辑限制”步骤 1 到步骤 5
4)、设置“我的电脑” COM 安全机制之启动和激活权限 -“编辑限制”

img

增加用户:

1
2
3
4
5
6
7
8
9
Administrator 
Administrators
ANONYMOUS LOGON
Distributed COM Users
Everyone
Guests
INTERACTINE
NETWORK
SYSTEM

配置每个用户权限为:

img

5)、设置“我的电脑” COM 安全机制之启动和激活权限 -“编辑限制”

img

增加用户:

1
2
3
4
5
6
7
8
9
Administrator 
Administrators
ANONYMOUS LOGON
Distributed COM Users
Everyone
Guests
INTERACTINE
NETWORK
SYSTEM

配置每个用户权限为:

img

2、配置 OpcEnum
1)、选择“ DCOM 配置”

img

2)、选择“ OpcEnum”

img

注:若此处未找到 OpcEnum 插件,需安装一个 OPC Core Components Redistributable (x64) ,
可以自行百度查找安装,并注意需安装对应操作系统的安装包。

img

3)、右击配置 OpcEnum 属性之常规为无

img

4)、配置 OpcEnum 属性之“安全”

img

5)、对“配置权限”之“自定义”进行“编辑”
增加用户:

1
2
3
4
5
6
7
8
9
Administrator 
Administrators
ANONYMOUS LOGON
Distributed COM Users
Everyone
Guests
INTERACTINE
NETWORK
SYSTEM

配置每个用户名权限为:

img

6)、配置 OpcEnum 属性之“标识”

img

注:若此处交互式运用为灰色不能选择,按以下步骤进行操作。

①、在 C 盘中找 OpcEnum.exe 的安装位置
②、把安装位置拉到运行中: OpcEnum.exe 安装位置+空格+ //regserver 回车确定

img

3、配置 opc server

1)、选择 OPC Server 组件服务名称,本例 OPC Server 为 KEP Server

img

2)、配置 KEP Server 属性之“常规”为“无”

img

3)、配置 KEP Server 属性之“安全”

img

4)、对“配置权限”之“自定义”进行“编辑”

增加用户:

1
2
3
4
5
6
7
8
9
Administrator 
Administrators
ANONYMOUS LOGON
Distributed COM Users
Everyone
Guests
INTERACTINE
NETWORK
SYSTEM

配置每个用户名权限为:

img

二 服务端安全策略配置

1、进入安全策略程序
控制面板 >管理工具 >本地安全策略

img

2、配置安全策略之安全

img

网络访问:本地账户的共享和安全模式设置为“经典”

img

3、配置安全策略之匿名用户

img

网络访问:将 Everyong 权限应用于匿名用户设置为“已启用

img

三 服务端防火墙配置

1、进行防火墙“例外” (允许程序通过 Windows 防火墙通讯)

控制面板 >所有控制面板项 >Windows 防火墙 >允许的程序

img

2、添加 DCOM 端口

控制面板 >所有控制面板项 >Windows 防火墙 >高级设置

img

img

img

img

img

img

img

出站规则同入站规则设置

3、添加例外程序 OpcEnum

OpcEnum 路径程序在 C:\Windows\System32\OpcEnum.exe

img

4、添加例外程序 OPC Serve(本例为 KEP SERVE)

KEP SERVE 的路径程序在 C:\Program Files (x86)\KEPServerEx\servermain.exe

img

5、添加 MMC 控制台程序

img

6、打开文件和共享

img

最后确保下列所有项都在防火墙例外程序中

img

img

img

第三节 客户端配置

一 客户端 DCOM 配置

1、配置“我的电脑”
所有配置与服务端配置“我的电脑”相同

一 客户端防火墙配置

1、添加 DCOM 端口
所有配置与服务端配置“我的电脑”相同

Siemens wincc opc da 数据断流问题探索-转载

https://www.claves.cn/archives/6181

一、问题

项目场景

某行业DCS控制系统通过西门子WinCC系统实现,为了实现智能集控功能,需要从WinCC OA采集产线数据。

技术问题

频繁出现OPC DA Client采集连接断开问题,导致工业互联网平台数据断流,检查DCOM等配置后无果,无法直接排除原因。

分析过程

客户端 190.182.183.15 Administrator/Apef123456
服务端 190.182.57.71/72 Administrator/Apef123456!

1、客户端与服务端登录的用户名与密码不一致,新增了一个用户OpcUser/Apef123456

2、客户端可以ping通服务端IP、服务端不能ping通客户端IP

——————–服务端与客户端测试——————————————

3、190.182.183.15服务器仅远程服务端(190.182.57.71)时,190.182.183.15服务器上的客户端才能正常访问服务端(190.182.57.71)
的OPC服务
4、190.182.183.15服务器仅远程服务端(190.182.57.72)时,190.182.183.15服务器上的客户端才能正常访问服务端(190.182.57.72)
的OPC服务

——————–服务端与服务端测试——————————————

5、190.182.183.15服务器远程服务端(190.182.57.71/72)
时,两服务端的客户端都能正常访问各自的OPC服务,一旦190.182.183.15服务器断开其中一个远程,未断开远程的客户端不能访问已断开远程的OPC服务

初步分析结果

比较明显断流与远程桌面存在关系。

问题深入探究

咨询西门子业内专家后,转发提供URL资料。

1
https://support.industry.siemens.com/cs/mdm/109792613?c=133562653835&dl=zh&t=1&s=RDP&lc=en-DE

下面是上述URL链接的内容。

远程访问和远程桌面协议 (RDP)

远程访问 WinCC 站

有关远程访问的最新操作说明,请参见以下常见问题解答:

有关远程组态的详细信息,另请参见 WinCC 信息系统的“组态 > 多用户系统 > 远程组态”部分。

允许方案

以下方案已经过测试:

  • WinCC 作为单用户系统
  • WinCC 作为分布式系统
  • WinCC 在冗余模式下
  • WinCC/WebUX 服务器

也可以在允许方案中通过 OPC 进行通信。

使用 RealVNC

有关“RealVNC”使用方面信息,请访问 Internet 上的客户支持页面:

RealVNC 不支持键盘锁

请注意“RealVNC”不支持键盘锁。仅在使用远程桌面协议连接时,键盘锁才有效。

通过 RDP 对 WinCC 系统进行远程维护

仅当 WinCC 服务器或单用户系统运行在 WinCC ServiceMode 模式时,才允许使用远程桌面协议 (RDP)。

使用 RDP 时的限制

遵循下列限制:

  • 以本地“SIMATIC HMI”用户组成员的用户身份启动 WinCC
    项目。这意味着通过远程控制台操作时,可启动所有服务。详细信息请参见“组态 > WinCC ServiceMode”
  • 尚未允许在 SIMATIC 管理器中用于集成操作。
注意中断远程桌面连接后数据丢失当远程桌面连接中断(例如,由于从运行远程桌面客户端的计算机上拆下网络电缆)时,归档和 OPC 服务器等将不再从数据管理器接收值。该状态将维持到连接恢复或大约 35 秒的超时时间到时。

启动远程桌面

可利用“远程桌面”客户端通过控制台会话来访问 WinCC 系统。

只有同一用户通过控制台接管或初次登录,才可实现通过“远程桌面协议”访问。

用户组和访问权限

所有“远程桌面”用户都必须是目标 PC 上“SIMATIC HMI”用户组的成员。

操作步骤

  1. 要启动控制台会话,打开“运行”(Run) 对话框,例如使用 <Windows 按钮 + R>。

  2. 输入以下命令:

    • - mstsc /v: /admin

    输入计算机名称或 IP 地址作为服务器。

有关附加参数的详细信息,输入以下命令:

  • - mstsc /?

移植:仅通过 UNC 路径远程移植 WinCC 项目

仅使用 UNC 路径远程移植 WinCC 项目。

发布该项目的项目路径或文件夹。

在 WinCC 项目移植器中,将此 UNC 路径作为项目目录。

二、解决方法

解决方法:

  • WinCC 服务器配置成WinCC ServiceMode 模式;
  • 关闭RDP远程桌面服务;

OPC的DCOM配置-转载

源网址:https://www.cnblogs.com/tqianly/p/3749357.html

OPC的DCOM配置

关于OPC通讯做的比较多了。但是OPC的DCOM配置一直没认真去查资料,专心去整。这可能是因为我在测试程序的时候都是把服务器跟客户端在同一台电脑上运行,这样就不要配置DCOM。现在来记录一下下个人在网上查找的资料吧。

http://blog.csdn.net/jinzhili/article/details/970233

http://www.cnblogs.com/johnpher/archive/2012/10/27/2742207.html

我首先是根据第一个博客提供的方法配置了一下,然后用OPC客户端连接的时候,没有成功。提示

“ 对 COM 组件的调用返回了错误 HRESULT E_FAIL。 ”

然后我又按照第二个博客的办法配置了一下,OPC客户端就可以连的上远程的OPC服务器了。所以只能说我这次成功了,但不知道我有没有多余的配置。

下面来说说我做的吧。

(1)服务器的配置

a)安装 NWLink IPX/SPX/NetBIOS Compatible Transport Protocol 协议

在“网络连接”里面找到你用的那个网络端口,比如说我用的是无线上网,选择“无线网络连接”,右击“属性”。

img

在以上页面中点击“安装” —— “协议”——找到那个协议安装。(我的那个协议已经装过了,所以在列表中可以看到)。

b)关闭防火墙跟杀毒软件。在服务器机跟客户端机都需要。

c) 运行dcomcnfg

img

在如下图的“我的电脑”的属性页中配置:

img

在以下的选项卡里面设置:

img img

在“COM安全”选项添加Administrator、ANONYMOUS、LOGON Guest、everyone、Eason(这个是我电脑的登陆名,这里也设置了)

然后每一个都把权限给勾上。

img

d)在OPC服务器上,还要回到“组件服务”界面,打开”DCOM配置”,找到注册的OPC服务器的名称选项,打开它的属性。

img

img img img

(注:有时做好dcom配置后,需要重新启动电脑才起作用。所以为了安全起见,建议最好重新启动一下电脑,再做下一步)。

e)本地安全策略配置**
**

1、OPC服务器和OPCClient服务器都要设置:打开“控制面版”——“管理工具”——打开“本地安全策略” 安全选项——”网络访问:本地帐户的共享和安全模式”——属性

img

注:如果不配置这个,那么在连接OPC服务器的时候,就会出现拒绝访问的现象。

(2)客户端的配置

**
**客户端按照以上服务器的

a)、b)、c)、e)配置,然后就可以连接的上了。

附一些可能的配置方法:

一、在装有某OPC SERVER的机器上。DCOM配置如下
\1. 运行服务器上的dcomcnfg程序,进行DCOM配置。
\2. 进入DCOM的总体默认属性页面,将“在这台计算机上启用分布式COM”打上勾,将默认身份级别改为“无”。
\3. 进入DCOM的总体默认安全机制页面,确认默认访问权限和默认启动权限中的默认值无EveryOne,
如果不去掉EveryOne,应用服务器不能正常启动。
4.在常规页面中,双击你的应用服务器,打开你的应用服务器DCOM属性设置。
5.将常规页面中的身份验证级别改为“无”。
6.位置页面中选上“在这台计算机上运行应用程序”。
7.将安全性页面设置中,均选择“使用自定义访问权限”,编辑每一个权限,将EveryOne加入用户列表中。
8.身份标识页面中,选择“交互式用户”。
注意NT的GUEST用户不能禁用。
二、在客户端机器上DCOM配置如下:
1后点”开始”->”运行”,输入”dcomcnfg”,然后回车,启动dcom配 置。
2. 常规页面中,双击你的应用服务器,打开你的应用服务器DCOM属性设置。
3. 将常规页面中的身份验证级别改为“无”。
4. 身份标识页面中,选择“交互式用户”。
5. 位置页面中,选择“在这台计算机上运行应用程序”。
进入DCOM的总体默认属性页面,将“在这台计算机上启用分布式COM”打上勾,将默认身份级别改为“无”。
两端配置好后,客户端机器就可以访问远方机器的OPCSERVER了

在Win11上离线安装 .NET Framework 3.5的方法

随 Windows 11提供的是.NET Framework 4.8,该环境可以运行任何 .NET Framework 4.x 应用。
而.NET Framework 3.5 支持为 .NET Framework 2.0 到 3.5 生成的应用,需要自行安装。

当Win11的应用软件需要.net framework3.5的运行环境时,就会提示“你的电脑上的应用需要使用以下Windows功能:.NET Framework 3.5(
包括.NET 2.0和3.0)。

在线安装耗时很长,下面是离线安装.NET Framework 3.5的方法:

1、下载离线安装包,Win 10安装net 3.5的方法都是先下载net 3.5的cab包,然后用dsim命令来安装。

2、关掉所有[杀毒软件]及电脑管理管家等如360安全卫士

3、将下载的安装包放到c盘windows目录下(根据需要放置)

6d10cfdc3c944de5b062d11f880507ec.png

4、用命令行安装:
以管理员身份打开cmd,输入以下命令:

1
dism.exe /online /enable-feature /featurename:netfx3 /Source:C:\Windows\sxs

等待进度到100%,显示操作成功完成: df868a68afad4c21846446c7d3b185f7.png

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
在Win11上离线安装 .NET Framework 3.5的方法

随 Windows 11提供的是.NET Framework 4.8,该环境可以运行任何 .NET Framework 4.x 应用。
而.NET Framework 3.5 支持为 .NET Framework 2.0 到 3.5 生成的应用,需要自行安装。
当Win11的应用软件需要.net framework3.5的运行环境时,就会提示“你的电脑上的应用需要使用以下Windows功能:.NET Framework 3.5(包括.NET 2.0和3.0)。
在线安装耗时很长,下面是离线安装.NET Framework 3.5的方法:

1、下载离线安装包,Win 10安装net 3.5的方法都是先下载net 3.5的cab包,然后用dsim命令来安装。
2、关掉所有杀毒软件及电脑管理管家等如360安全卫士
3、将下载的安装包放到c盘windows目录下(根据需要放置)
/4、用命令行安装:
以管理员身份打开cmd,输入以下命令:
dism.exe /online /enable-feature /featurename:netfx3 /Source:C:\Windows\sxs

等待进度到100%,显示操作成功完成即可。

Windows安装SSH-Win32-OpenSSH

ssh config配置文件

C:\ProgramData\ssh
C:\ProgramData\ssh\sshd_config
%programdata%\ssh\sshd_config

配置 sshd_config

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Port 22
ListenAddress 0.0.0.0
SyslogFacility LOCAL0
LogLevel QUIET
PubkeyAuthentication yes
PermitEmptyPasswords no
PasswordAuthentication no
AuthorizedKeysFile C:/Users/Administrator/.ssh/authorized_keys
IgnoreUserKnownHosts no
IgnoreRhosts yes
Subsystem sftp sftp-server.exe

PermitRootLogin yes
GSSAPIAuthentication no
PubkeyAcceptedKeyTypes=+ssh-rsa

禁用日志记录

1
2
3
4
# 禁用通道
wevtutil sl "OpenSSH/Operational" /e:false
# 清空旧文件
wevtutil cl "OpenSSH/Operational"

执行后,即使 sshd 重启,事件查看器里也只剩一条“服务已启动”,而且文件大小保持 0 KB,可视为“没有日志”。

安装 GIT 配置 authorized_keys

C:/Users/Administrator/.ssh/authorized_keys

ssh-keygen需要配置为ISA

1
2
3
4
5
6
7
8
9
10
ssh-keygen -t rsa -m PEM
ssh-keygen -t rsa -m PEM

Generating public/private rsa key pair.
Enter file in which to save the key (/c/Users/Administrator/.ssh/id_rsa):
Enter passphrase for "/c/Users/Administrator/.ssh/id_rsa" (empty for no passphrase):
Enter same passphrase again:

Your identification has been saved in /c/Users/Administrator/.ssh/id_rsa
Your public key has been saved in /c/Users/Administrator/.ssh/id_rsa.pub

ARMBoxLinuxBox盒子工控机

LinuxBox配置清单

序号 事项
1 安装chromium-browser ,命令sudo apt-get install chromium-browser -y
2 禁用ChromeBrower数据收集功能
1.打开 Chromium 浏览器。
2.点击右上角的菜单按钮,选择“设置”。
3.在“隐私和安全”部分,找到“帮助改进 Chrome 的功能和性能”选项并关闭
3 配置ChromeBrower开机自启动和全屏(/home/ubuntu/.config/autostart)
4 配置WiFi连接
5 桌面禁用锁屏和黑屏配置
6 配置Ubuntu时区
sudo timedatectl set-timezone Asia/Shanghai
sudo cat /etc/timezone
7 Chrome disable browser metrics
chmod -R 000 /root/snap/chromium/common/chromium/BrowserMetrics
d--------- 2 root root 16K 6月 12 22:00 BrowserMetrics

LinuxBox盒子图片

操作系统版本 lsb_release -a

1
2
3
4
5
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 24.10
Release: 24.10
Codename: oracular

连接地址 192.168.0.148

序号 账号 密码
1 ubuntu ubuntu
2 root As12345678

软件安装(Chrome/中文)

  • chrome安装(root安装)

    1
    sudo snap install chromium
  • 浏览器字体安装

    1
    2
    3
    4
    5
    6
    7
    8
    sudo apt update && sudo apt upgrade -y
    sudo apt install language-pack-zh-hans -y

    sudo locale-gen zh_CN.UTF-8 # 生成中文 locale
    sudo update-locale LANG=zh_CN.UTF-8 # 设置系统默认语言

    export LANG=zh_CN.UTF-8
    sudo apt install fonts-wqy-zenhei fonts-wqy-microhei fonts-noto-cjk -y

Chrome开机自启动

创建桌面启动文件

这种方法适合需要自定义启动参数的场景:

  1. 打开终端,运行以下命令创建启动文件:
1
2
3
mkdir -p ~/.config/autostart
cd ~/.config/autostart
vim chromium.desktop
  1. 在文件中输入以下内容:
1
2
3
[Desktop Entry]
Type=Application
Exec=sh -c "sleep 15 && /usr/bin/google-chrome-stable --disable-background-networking --start-maximized --disable-infobars --password-store=basic --kiosk 'http://120.86.188.226:8081/hmi/a3886ab468c84417a24df00fcf56a253/zlg63v?pageId=LJ-A '"
  • --start-maximized:启动时最大化窗口。
  • --password-store=basic --disable-background-networking --kiosk:全屏模式。
  • "http://www.example.com":替换为你希望打开的网页地址。
  • 配置URL地址:"http://192.168.0.190/hmi/dsfq"

Ubuntu22.04网络配置固定IP地址

1
2
cp  /etc/systemd/network/10-eth0.network /etc/systemd/network/10-eth0.network.bak
vim /etc/systemd/network/10-eth0.network

/etc/systemd/network/10-eth0.network

1
2
3
4
5
6
7
8
9
10
11
12
13
14
[Match]
Name=eth*

[Network]
DHCP=
Address=192.168.1.240/24
Gateway=192.168.1.1
#DNS=192.168.1.1

[DHCPv4]
RouteMetric=100

[IPv6AcceptRA]
RouteMetric=100

/etc/systemd/network/20-wlan0.network

1
2
3
4
5
6
7
8
9
10
11
12
[Match]
Name=wlan0

[Network]
DHCP=yes
IgnoreCarrierLoss=5 seconds

[DHCPv4]
RouteMetric=4096

[IPv6AcceptRA]
RouteMetric=4096

WiFi连接Linux盒子

序号 方式
1 你用命令nmtui 然后选择第二个
2 (如果没有这个nmtui命令)root目录下有一个wifi开头的脚本,执行这个脚本连接WIFI

操作方式/root/wifi-connect.sh

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
/root/wifi-connect.sh

Connect to wifi network wlan0: brcmfmac

1: CU_Jtyu
2: DIRECT-519BC577
3: DIRECT-49-HP Laser 136w
4: bus
5: kingdee
6: bus5G
Choose wifi SSID: 6
Please enter password/pre shared key for [bus5G]:
Trying to authenticate, please wait...
auth ok
Saving wifi config...
Try getting ip from DHCP...
Setting LLMNR support level "yes" for "3", but the global support level is "no".

Ready. Wifi address: 192.168.0.196

Linux盒子配置一直亮屏(禁用锁屏和黑屏)

在 Ubuntu 20.04 中,可以通过命令行禁用锁屏和黑屏功能。以下是具体步骤:

手工操作禁用锁屏(黑屏命令行无效)


禁用锁屏

  1. 禁用屏幕保护程序和锁屏

    • 打开终端(Terminal)。

    • 输入以下命令来禁用屏幕保护程序和锁屏功能:

    1
    2
    3
    4
    5
    6
    sudo gsettings set org.gnome.desktop.screensaver lock-enabled false
    sudo gsettings set org.gnome.desktop.screensaver idle-activation-enabled false

    sudo gsettings set org.gnome.desktop.screensaver enabled false
    sudo gsettings set org.gnome.settings-daemon.plugins.power sleep-inactive-ac-type 'off'
    sudo gsettings set org.gnome.settings-daemon.plugins.power sleep-inactive-battery-type 'off'
  • 第一个命令禁用了锁屏功能,第二个命令禁用了屏幕保护程序的自动激活。
  1. 禁用电源管理中的屏幕关闭

    • 输入以下命令来禁用屏幕关闭:
    1
    2
    3
    sudo gsettings set org.gnome.settings-daemon.plugins.power sleep-inactive-ac-type 'nothing'

    sudo gsettings set org.gnome.settings-daemon.plugins.power sleep-inactive-battery-type 'nothing'
  • 这些命令分别设置了在连接电源适配器和使用电池时,系统不会自动关闭屏幕。

禁用黑屏

黑屏通常是由于屏幕保护程序或电源管理设置导致的。通过上述命令禁用了屏幕保护程序和电源管理中的屏幕关闭后,黑屏问题应该会得到解决。

验证设置

  • 你可以通过以下命令查看当前的设置是否生效:

    1
    2
    3
    4
    gsettings get org.gnome.desktop.screensaver lock-enabled
    gsettings get org.gnome.desktop.screensaver idle-activation-enabled
    gsettings get org.gnome.settings-daemon.plugins.power sleep-inactive-ac-type
    gsettings get org.gnome.settings-daemon.plugins.power sleep-inactive-battery-type
  • 如果返回值为 false'nothing',说明设置已经生效。

注意事项

  • 如果你使用的是其他桌面环境(如 KDE、XFCE 等),可能需要使用不同的命令或工具来调整这些设置。
  • 如果你希望恢复默认设置,可以将上述命令中的 false'nothing' 改为 true 或默认值。

通过以上步骤,你应该可以在 Ubuntu 20.04 中通过命令行禁用锁屏和黑屏功能。

Chrome日志存储过大22G chromium/BrowserMetrics

/root/snap/chromium/common/chromium/BrowserMetrics 这个文件夹是什么东西,容量太大了

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
sudo find / -type f -exec du -h {} + 2>/dev/null | sort -rh | head -n 20
sudo du -ah / | sort -rh | head -n 20

30G /
22G /root/snap/chromium/common/chromium/BrowserMetrics
22G /root/snap/chromium/common/chromium
22G /root/snap/chromium/common
22G /root/snap/chromium
22G /root/snap
22G /root
3.4G /usr
2.8G /snap
2.0G /var
1.6G /usr/share
1.5G /usr/lib
1.4G /var/lib
1.2G /var/lib/snapd
1.2G /snap/gnome-42-2204/201/usr
1.2G /snap/gnome-42-2204/201
1.2G /snap/gnome-42-2204
1.1G /usr/lib/aarch64-linux-gnu
1016M /var/lib/snapd/snaps
961M /snap/gnome-42-2204/201/usr/lib

解决办法chromium/BrowserMetrics

—>解决办法

完全卸载snap安装的Chromium 应用,使用谷歌官方网站下载的浏览器。

1
2
3
4
5
6
sudo snap remove --purge chromium 
sudo snap remove --purge chromium-browser

#安装
sudo wget https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb
sudo dpkg -i google-chrome-stable_current_amd64.deb

禁用更新

1
2
3
4
5
sudo refresh chromium --unhold
sudo snap set chromium refresh.metered=unhold

sudo snap set system refresh.metered=hold
sudo snap get system refresh.metered
1).更新到最新版本
1
sudo snap refresh chromium
2).Disable chromium更新
2.1.第一种disable方式
1
2
3
4
5
6
7
8
9
10
11
12
1.移除snap对chromium的自动更新。
# snap refresh chromium --unhold
Removed general refresh hold of chromium。

2.保持snap对chromium的自动更新
# snap refresh chromium --hold
General refreshes of "chromium" held indefinitely

# snap refresh --time
timer: 00:00~24:00/4
last: today at 21:26 CST
next: tomorrow at 05:11 CST
2.2.第二种disable方式
1
2
3
4
5
1.移除snap对chromium的自动更新。
# sudo snap set chromium refresh.metered=unhold

2.保持snap对chromium的自动更新
# sudo snap set chromium refresh.metered=hold
2.3.Disable snap系统更新
1
2
# sudo snap set system refresh.metered=hold
# sudo snap get system refresh.metered

LinuxBox一键运行脚本编写

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
#!/bin/sh

sudo apt update
sudo apt upgrade -y

sudo timedatectl set-timezone Asia/Shanghai
sudo cat /etc/timezone

sudo mkdir -p /root/snap/chromium/common/chromium/BrowserMetrics
sudo chmod -R 000 /root/snap/chromium/common/chromium/BrowserMetrics

sudo apt update && sudo apt upgrade -y
sudo apt install language-pack-zh-hans -y
sudo locale-gen zh_CN.UTF-8
sudo update-locale LANG=zh_CN.UTF-8

export LANG=zh_CN.UTF-8

sudo apt-get install vim -y && sudo apt-get remove vim -y
sudo apt install fonts-wqy-zenhei fonts-wqy-microhei fonts-noto-cjk -y
sudo apt install -y fontconfig
sudo apt install -y fonts-dejavu-core fonts-liberation

sudo apt autoremove -y

sudo apt install snap -y
sudo apt install snapd -y
sudo snap install chromium

sudo mkdir -p /home/ubuntu/.config/autostart
sudo touch /home/ubuntu/.config/autostart/chromium.desktop

# 写入文件内容
sudo cat <<EOF > /home/ubuntu/.config/autostart/chromium.desktop
[Desktop Entry]
Type=Application
Exec=/snap/bin/chromium --start-maximized --disable-infobars --password-store=basic --disable-background-networking --kiosk "$1"
EOF

sudo chown -R ubuntu:ubuntu /home/ubuntu/.config/autostart/chromium.desktop

sudo mkdir -p /etc/gdm3/
sudo cp -f /etc/gdm3/custom.conf /etc/gdm3/custom.conf.backup

sudo touch /etc/gdm3/custom.conf

# 写入文件内容
sudo cat <<EOF > /etc/gdm3/custom.conf
[daemon]
AutomaticLoginEnable=True
AutomaticLogin=ubuntu
EOF

# Ubuntu自动登录和开机锁屏取消
## 禁用自动锁屏:
gsettings set org.gnome.desktop.screensaver lock-enabled false
gsettings set org.gnome.desktop.lockdown disable-lock-screen true

# 禁用屏幕休眠
gsettings set org.gnome.desktop.session idle-delay 0

红米电视投屏运维问题解决

ubuntu 外接显示器只有桌面,不进入看板问题

https://blog.csdn.net/qq_45911550/article/details/111399277

如上图,选择镜像,不过这个时候笔记本的屏幕也是在使用中,可以将笔记本设置为合上盖子仍然运行就可以了。

img

1
2
3
4
5
6
7
8
9
10
11
sudo cat /etc/systemd/logind.conf

#HandleLidSwitch=suspend 找到这句

HandleLidSwitch=ignore 改为这句

sudo systemctl restart systemd-logind
# 或者
sudo service systemd-logind restart
# 或者
sudo shutdown -r now