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

Ubuntu系统初始化后配置清单ToDoList

ToDoList清单

配置时区 sudo timedatectl set-timezone Asia/Shanghai && sudo cat /etc/timezone

配置时区

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

配置Limit

编辑/etc/security/limits.conf文件,添加或修改相应的行来增加限制。例如:

1
2
3
4
* soft nproc 65535
* hard nproc 65535
* soft nofile 65535
* hard nofile 65535

确保 IP 转发已启用

确保内核启用了 IP 转发功能。可以通过以下命令启用:

1
sudo sysctl -w net.ipv4.ip_forward=1

为了使设置永久生效,可以编辑 /etc/sysctl.conf 文件,添加以下内容:

1
net.ipv4.ip_forward = 1

然后运行以下命令应用配置:

1
sudo sysctl -p

增加sudo权限

sudo vim /etc/sudoers

1
user ALL=(ALL:ALL) NOPASSWD: ALL

配置高并发服务器调小TCP协议的time_wait时间

查看网络节点的tcp连接状态,如果发现系统存在大量的TIME_WAIT状态的连接,通过调整内核参数解决:
然后执行以下命令让参数生效: sudo /sbin/sysctl -p

limits.conf 和sysctl.conf区别在于limits.conf是针对用户,而sysctl.conf是针对整个系统参数配置

linux下ulimit参数调整

sudo vim /etc/security/limits.conf

1
2
3
4
* soft nproc 65535
* hard nproc 65535
* soft nofile 65535
* hard nofile 65535

临时配置

1
2
ulimit -SHn 65536
ulimit -n

limits.conf 和sysctl.conf区别在于limits.conf是针对用户,而sysctl.conf是针对整个系统参数配置

改变系统最大打开文件数,需要修改 /etc/sysctl.conf 文件

sudo vim /etc/sysctl.conf

1
fs.file-max = 1048576

设置服务最大文件句柄数:

sudo vim /etc/systemd/system.conf

1
DefaultLimitNOFILE=1048576

配置网络参数修改

sudo vim /etc/systemd/system/network-online.target.wants/NetworkManager-wait-online.service

1
2
[Service]
TimeoutStartSec=5sec

Linux 操作系统参数

系统全局允许分配的最大文件句柄数:
2 millions system-wide

1
2
3
sudo sysctl -w fs.file-max=2097152
sudo sysctl -w fs.nr_open=2097152
sudo echo 2097152 > /proc/sys/fs/nr_open

TCP 协议栈网络参数

1
2
3
sudo sysctl -w net.core.somaxconn=32768
sudo sysctl -w net.ipv4.tcp_max_syn_backlog=16384
sudo sysctl -w net.core.netdev_max_backlog=16384

可用知名端口范围:

1
sudo sysctl -w net.ipv4.ip_local_port_range='1000 65535'

TCP Socket 读写 Buffer 设置:

1
2
3
4
5
6
7
8
9
sudo sysctl -w net.core.rmem_default=262144
sudo sysctl -w net.core.wmem_default=262144
sudo sysctl -w net.core.rmem_max=16777216
sudo sysctl -w net.core.wmem_max=16777216
sudo sysctl -w net.core.optmem_max=16777216

#sysctl -w net.ipv4.tcp_mem='16777216 16777216 16777216'
sudo sysctl -w net.ipv4.tcp_rmem='1024 4096 16777216'
sudo sysctl -w net.ipv4.tcp_wmem='1024 4096 16777216'

TCP 连接追踪设置

1
2
3
sudo sysctl -w net.nf_conntrack_max=1000000
sudo sysctl -w net.netfilter.nf_conntrack_max=1000000
sudo sysctl -w net.netfilter.nf_conntrack_tcp_timeout_time_wait=30

Failed to allocate directory watch: Too many open files

解决办法:
vim /etc/sysctl.conf
sudo vim /etc/sysctl.conf


1
2
3
fs.file-max = 1048576
fs.inotify.max_user_instances=25120
fs.inotify.max_user_watches=262144

生效

sudo sysctl -p

Ubuntu Date-CST-UTC > CST修改时区时间的最好方法 timedatectl set-timezone Asia/Shanghai

UTC > CST

查看 /etc/timezome 的內容

1
2
sudo cat /etc/timezone

用timedatectl set-timezone Asia/Shanghai 可以快速地更新时区和时间

1
2
sudo timedatectl set-timezone Asia/Shanghai
sudo timedatectl set-timezone Asia/Shanghai

使用 timedatectl 命令顯示當前的系統時區。

1
timedatectl

輸出畫面

1
2
3
4
5
6
7
 Local time: Fri 2021-01-07 22:45:47 UTC
Universal time: Fri 2021-01-07 22:45:47 UTC
RTC time: Fri 2021-01-07 22:45:48
Time zone: Etc/UTC (UTC, +0000)
System clock synchronized: yes
systemd-timesyncd.service active: yes
RTC in local TZ: no

Ubuntu-性能服务器参数优化

确保 IP 转发已启用

确保内核启用了 IP 转发功能。可以通过以下命令启用:

1
sudo sysctl -w net.ipv4.ip_forward=1

为了使设置永久生效,可以编辑 /etc/sysctl.conf 文件,添加以下内容:

1
2
3
4
5
net.ipv4.ip_forward = 1
fs.file-max = 1048576

fs.inotify.max_user_instances=25120
fs.inotify.max_user_watches=262144

然后运行以下命令应用配置:

1
sudo sysctl -p

增加sudo权限

sudo vim /etc/sudoers

1
user ALL=(ALL:ALL) NOPASSWD: ALL

配置高并发服务器调小TCP协议的time_wait时间

查看网络节点的tcp连接状态,如果发现系统存在大量的TIME_WAIT状态的连接,通过调整内核参数解决:
然后执行以下命令让参数生效: sudo /sbin/sysctl -p

limits.conf 和sysctl.conf区别在于limits.conf是针对用户,而sysctl.conf是针对整个系统参数配置

linux下ulimit参数调整

sudo vim /etc/security/limits.conf

1
2
3
4
* soft nproc 65535
* hard nproc 65535
* soft nofile 65535
* hard nofile 65535

临时配置

1
2
ulimit -SHn 65536
ulimit -n

limits.conf 和sysctl.conf区别在于limits.conf是针对用户,而sysctl.conf是针对整个系统参数配置

改变系统最大打开文件数,需要修改 /etc/sysctl.conf 文件

sudo vim /etc/sysctl.conf

1
fs.file-max = 1048576

设置服务最大文件句柄数:

sudo vim /etc/systemd/system.conf

1
DefaultLimitNOFILE=1048576

配置网络参数修改

sudo vim /etc/systemd/system/network-online.target.wants/NetworkManager-wait-online.service

1
2
[Service]
TimeoutStartSec=5sec

Linux 操作系统参数

系统全局允许分配的最大文件句柄数:
2 millions system-wide

1
2
3
sudo sysctl -w fs.file-max=2097152
sudo sysctl -w fs.nr_open=2097152
sudo echo 2097152 > /proc/sys/fs/nr_open

TCP 协议栈网络参数

1
2
3
sudo sysctl -w net.core.somaxconn=32768
sudo sysctl -w net.ipv4.tcp_max_syn_backlog=16384
sudo sysctl -w net.core.netdev_max_backlog=16384

可用知名端口范围:

1
sudo sysctl -w net.ipv4.ip_local_port_range='1000 65535'

TCP Socket 读写 Buffer 设置:

1
2
3
4
5
6
7
8
9
sudo sysctl -w net.core.rmem_default=262144
sudo sysctl -w net.core.wmem_default=262144
sudo sysctl -w net.core.rmem_max=16777216
sudo sysctl -w net.core.wmem_max=16777216
sudo sysctl -w net.core.optmem_max=16777216

#sysctl -w net.ipv4.tcp_mem='16777216 16777216 16777216'
sudo sysctl -w net.ipv4.tcp_rmem='1024 4096 16777216'
sudo sysctl -w net.ipv4.tcp_wmem='1024 4096 16777216'

TCP 连接追踪设置

1
2
3
sudo sysctl -w net.nf_conntrack_max=1000000
sudo sysctl -w net.netfilter.nf_conntrack_max=1000000
sudo sysctl -w net.netfilter.nf_conntrack_tcp_timeout_time_wait=30

Failed to allocate directory watch: Too many open files

解决办法:
vim /etc/sysctl.conf
sudo vim /etc/sysctl.conf


1
2
3
fs.file-max = 1048576
fs.inotify.max_user_instances=25120
fs.inotify.max_user_watches=262144

生效

sudo sysctl -p

系统启用了 SELinux 或 AppArmor,限制 MongoDB 的访问权限。导致服务 mongod.service 启动失败

当系统启用了 SELinux 或 AppArmor 限制 MongoDB 的访问权限导致服务启动失败时,可以按照以下方法解决:

1. 检查日志文件

  • 查看 MongoDB 的日志文件,通常位于 /var/log/mongodb/mongod.log,日志中会记录具体的错误信息。
  • 检查系统日志,使用命令 journalctl -u mongod.service 查看服务启动时的详细日志。

2. 检查权限设置

  • 检查数据目录权限:确保 MongoDB 数据目录(如 /var/lib/mongodb)的所有者和组为 mongodb 用户,并且具有读写权限。可以使用以下命令修改权限:

    1
    2
    sudo chown -R mongodb:mongodb /var/lib/mongodb
    sudo chmod -R 755 /var/lib/mongodb
  • 检查日志目录权限:确保日志文件路径(如 /var/log/mongodb)也具有正确的权限。

3. 检查 SELinux 和 AppArmor 配置

  • 临时禁用 SELinux:可以临时禁用 SELinux 来测试是否是 SELinux 导致的问题。使用命令 sudo setenforce 0 将 SELinux
    设置为宽容模式。如果禁用后服务可以正常启动,说明是 SELinux 配置问题。
  • 检查 SELinux 策略:查看 SELinux 的日志文件(如 /var/log/audit/audit.log),查找与 MongoDB 相关的拒绝访问记录。
  • 配置 SELinux 策略:根据日志中的拒绝记录,可以使用 audit2allow 工具生成相应的 SELinux 策略模块,并将其加载到系统中。
  • 检查 AppArmor 配置:如果系统使用 AppArmor,检查 MongoDB 的 AppArmor 配置文件(通常位于
    /etc/apparmor.d/usr.sbin.mongod),确保配置文件中允许 MongoDB 访问必要的文件和目录。

4. 检查其他常见问题

  • 检查端口占用:确保 MongoDB 默认端口(27017)没有被其他进程占用。可以使用命令 netstat -tuln | grep 27017 检查端口占用情况。
  • 检查配置文件:检查 MongoDB 的配置文件(如 /etc/mongod.conf),确保配置文件中的路径和参数设置正确。

5. 重新启动服务

完成上述检查和修改后,重新启动 MongoDB 服务:

1
sudo systemctl restart mongod

然后检查服务状态:

1
sudo systemctl status mongod

如果服务仍然无法启动,可以继续查看日志文件和系统日志,进一步排查问题

ubuntu-LANG=zh_CN.UTF-8中文乱码问题解决

安装字体命令(中文字体)

1
2
3
4
5
6
7
sudo apt update && sudo apt upgrade -y

sudo apt install language-pack-zh-hans -y

sudo apt install fonts-wqy-zenhei fonts-wqy-microhei fonts-noto-cjk -y
sudo apt install fonts-wqy-zenhei fonts-wqy-microhei -y -y
sudo apt install fonts-wqy-zenhei fonts-wqy-microhei fonts-noto-cjk fonts-arphic-ukai fonts-arphic-uming fonts-droid-fallback -y

环境变量设置

Ubuntu默认的中文字符编码为zh_CN.UTF-8

输入命令:sudo vim /etcenvironment
修改内容如下:

1
2
PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games"
LANG="zh_CN.UTF-8"

设置环境变量

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

Ubuntu系统配置中文显示

(CPU)arm vs AArch64 vs amd64 vs x86_64 vs x86

(CPU) arm vs AArch64 vs amd64 vs x86_64 vs x86

Linux不全是用x86_64的说法,Fedora RHEL 等用x86_64,Debian、Ubuntu 中用amd64。

以下的表将为你总结每个字符串所代表的意义:

CPU 架构 描述
x86_64 /x86/amd64 64 位 AMD/英特尔 CPU 的别称
AArch64 /arm64/ARMv8/ARMv9 64 位 ARM CPU 的别称
i386 32 位 AMD/英特尔 CPU
AArch32 /arm/ARMv1 到 ARMv7 32 位 ARM CPU 的别称
rv64gc /rv64g 64 位 RISC-V CPU 的别称
ppc64le 64 位 PowerPC CPU,小端字节序存储

目前市场上主流的芯片架构有 X86、ARM、RISC-V和MIPS四种:

序号 架构 特点 代表性的厂商 运营机构 发明时间
1 X86 性能高,速度快,兼容性好 英特尔,AMD 英特尔 1978年
2 ARM 成本低,低功耗 苹果,谷歌,IBM,华为 英国ARM公司 1983年
3 RISC-V 模块化,极简,可拓展 三星,英伟达,西部数据 RISC-V基金会 2014年
4 MIPS 简洁,优化方便,高拓展性 龙芯 MIPS科技公司 1981年

服务器基础知识:aarch64 arm64 arm x86有什么区别

aarch64和arm64是指基于ARM架构的64位处理器,而arm是指基于ARM架构的32位处理器。x86则是指基于x86架构的处理器。

  • 架构: aarch64、arm64和arm都属于ARM架构,而x86属于x86架构。
  • 位数: aarch64和arm64是64位处理器架构,能够使用64位的寄存器和指令集。arm是32位处理器架构,使用32位的寄存器和指令集。x86可以是32位或64位处理器架构,具体取决于处理器型号。
  • 应用领域: ARM架构在移动设备(如智能手机、平板电脑)和嵌入式系统中非常常见,而x86架构主要用于桌面和服务器领域。
  • 软件兼容性: 由于架构的不同,软件在不同的架构上可能不兼容。一些软件和操作系统可能需要专门编译或适配到特定的架构上才能运行。
  • 性能和功耗: 不同的架构在性能和功耗方面可能有所差异。具体的性能和功耗特征取决于处理器的设计和实现。

CPU芯片架构(X86、ARM、RISC-V和MIPS)

CPU芯片架构(X86、ARM、RISC-V和MIPS)

目前市场上主流的芯片架构有 X86、ARM、RISC-V和MIPS四种:

序号 架构 特点 代表性的厂商 运营机构 发明时间
1 X86 性能高,速度快,兼容性好 英特尔,AMD 英特尔 1978年
2 ARM 成本低,低功耗 苹果,谷歌,IBM,华为 英国ARM公司 1983年
3 RISC-V 模块化,极简,可拓展 三星,英伟达,西部数据 RISC-V基金会 2014年
4 MIPS 简洁,优化方便,高拓展性 龙芯 MIPS科技公司 1981年
CPU 架构 描述
x86_64 /x86/amd64 64 位 AMD/英特尔 CPU 的别称
AArch64 /arm64/ARMv8/ARMv9 64 位 ARM CPU 的别称
i386 32 位 AMD/英特尔 CPU
AArch32 /arm/ARMv1 到 ARMv7 32 位 ARM CPU 的别称
rv64gc /rv64g 64 位 RISC-V CPU 的别称
ppc64le 64 位 PowerPC CPU,小端字节序存储

1、X86架构

X86是微处理器执行的计算机语言指令集,指一个Intel通用计算机系列的标准编号缩写,也标识一套通用的计算机指令集合。1978年6月8日,Intel
发布了新款16位微处理器 8086,也同时开创了一个新时代:X86架构诞生了。
X86指令集是美国Intel公司为其第一块16位CPU(i8086)专门开发的,美国IBM公司1981年推出的世界第一台PC机中的CPU–i8088(i8086简化版)使用的也是X86指令。

随着CPU技术的不断发展,Intel陆续研制出更新型的i80386、i80486直到今天的 Pentium
4系列,但为了保证电脑能继续运行以往开发的各类应用程序以保护和继承丰富的软件资源,所以Intel公司所生产的所有CPU仍然继续使用X86指令集。

2、ARM架构

ARM架构是一个32位精简指令集处理器架构,其广泛地使用在许多嵌入式系统设计。由于节能的特点,ARM处理器非常适用于移动通讯领域,符合其主要设计目标为低耗电的特性。

如今,ARM家族占了所有32位嵌入式处理器75%的比例,使它成为占全世界最多数的32位架构之一。ARM处理器可以在很多消费性电子产品上看到,从可携式装置到电脑外设甚至在导弹的弹载计算机等军用设施中都有它的存在。

ARM和X86架构最显著的差别是使用的指令集不同。

序号 架构 特点
1 ARM 主要是面向移动低功耗领域,因此在设计上更偏重节能能效方面
2 X86 主要面向家用商用领域,在性能兼容性方面做得更好

3、RISC-V架构

RISC-V 架构是基于精简指令集计算(RISC)原理建立的开放指令集架构(ISA),RISC-V是在指令集不断发展和成熟的基础上建立的全新指令。RISC-V
指令集完全开源,设计简单,易于移植Unix系统,模块化设计,完整工具链,同时有大量的开源实现和流片案例,得到很多芯片公司的认可。

RISC-V 架构的起步相对较晚,但发展很快。它可以根据具体场景选择适合指令集的指令集架构。基于RISC-V
指令集架构可以设计服务器CPU,家用电器CPU,工控CPU和用在比指头小的传感器中的CPU。

4、MIPS架构

MIPS架构是一种采取精简指令集(RISC)的处理器架构,1981年出现,由MIPS科技公司开发并授权,它是基于一种固定长度的定期编码指令集,并采用
导入/存储(Load/Store)数据模型。经改进,这种架构可支持高级语言的优化执行。其算术和逻辑运算采用三个操作数的形式,允许编译器优化复杂的表达式。

如今基于该架构的芯片广泛被使用在许多电子产品、网络设备、个人娱乐装置与商业装置上。最早的MIPS架构是32位,最新的版本已经变成64位。

序号 架构 特点
1 X86 英特尔和AMD的“专属”,在PC市场上独霸多年,地位不可撼动
2 ARM 移动端便捷设备上有着不可替代的优势
3 MIPS 网关机顶盒等市场上非常受欢迎
4 RISC-V 虽然出来不久,但在智能穿戴产品上的应用广泛,前景广阔

OPC数据采集DCOM配置-问题解决

KEPServerEX 配置 OPC DA 通信
https://www.drsanwujiang.com/kepserverex-configure-opc-da-communication/#toc-head-1

DCOM配置参考,OPC Server端配置、OPC DA客户端浏览远程OPC Server
https://blog.csdn.net/qq_28768521/article/details/125782898

OpcEnum交互式用户不可选解决办法

https://blog.csdn.net/xiaochenXIHUA/article/details/117082617

1
2
3
4
5
6
7
8
9
重新注册OpcEnum.exe
①首先检查OpcEnum.exe存在哪个文件夹;

②如果OpcEnum.exe存在System32目录下,则在CMD中执行以下命令

C:\Windows\System32\OpcEnum.exe /regserver
③如果OpcEnum.exe存在SysWOW64目录下,则在CMD中执行以下命令

C:\Windows\SysWOW64\OpcEnum.exe /regserver

DCOM配置 OpcEnum 位置在此计算机上运行灰色无法选择

https://blog.csdn.net/weixin_45134977/article/details/126245825

1
2
3
4
5
6
7
问题描述:
在进行OPCDA消息抓包测试时,需要在俩台主机配置DCOM,配置过程发现服务器(Win10 专业版)的OpcEnum组件属性位置配置种在此计算机上运行应用选项无法选择。

解决办法:
Win+R 以管理员运行命令提示行,执行命令
mmc comexp.msc /32
亲测对本人所遇问题有效
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
您好!
我们了解到您关于windows 10DCOM如何配置的问题。
您可以按照以下步骤尝试下:

1.安装OPC运行库
KEPServer集成了OPC运行库,所以不需要单独安装
OPC Core Components Redistributable.msi 链接: https://pan.baidu.com/s/1gU7_2e1Ye_qW1saObYV6xQ 密码: 9evk

2.创建用户并赋予访问权限 :计算机管理
创建用户:
OPCUser
123456
添加到DCOM组

3.防火墙关于 DCOM 和 OPC 的规则 :高级安全 Windows Defender 防火墙

开放 DCOM 访问 :DCOM(wmi)启用
135端口:只有一个计算机不需要设置
创建 OPC 程序规则 :允许程序 OPCEnum
位置:"C:\Windows\SysWOW64\OpcEnum.exe"
添加 OPC 服务器程序的规则:允许程序 KEPServer的server_runtime
位置:"C:\Program Files (x 86) \Kepware\KEPServerEX 6\server_runtime.exe"


4.配置 DCOM 安全:组件服务
配置 COM 的安全设置:我的电脑--COM属性--安全--访问、激活 配置
OPCENUM 的安全设置 :OpcEnum的安全选项
配置 OPC 服务器的安全设置 :KEPServer的安全选项

5.配置本地安全策略 :
本地安全策略 本地策略--网络访问--匿名 :启用

希望以上的信息可以帮助到您

DCOM access, so as to avoid such exceptions. [0x00000005

Caused by: org.jinterop.dcom.common.JIException: Access is denied, please check whether the [domain-username-password]
are correct. Also, if not already done please check the GETTING STARTED and FAQ sections in readme.htm. They provide
information on how to correctly configure the Windows machine for DCOM access, so as to avoid such
exceptions. [0x00000005] opc da远程连接提示错误,如何解决

配置 Windows 系统权限

  • 打开注册表编辑器(regedit),导航到:
    • HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System
  • 创建或修改一个 32 位的 DWORD 值,名称为 LocalAccountTokenFilterPolicy,将其值设置为 1
  • 打开“本地安全策略”(secpol.msc),在“本地策略 -> 安全选项”中找到:
    • “网络访问:本地账户的共享和安全模型”,并将其属性设置为“经典:对本地账户进行身份验证,不改变其本来身份”
  1. 查DCOM权限:

    • 打开dcomcnfg.exe(组件服务)。

    • 导航到“组件服务”->“计算机”->“我的电脑”->“DCOM 配置”。

    • 找到您尝试访问的特定 DCOM 应用程序或对象。

    • 右键单击并选择“属性”。

    • 转到“安全”选项卡。

    • 检查“启动和激活权限”以及“访问权限”设置。

      确保尝试连接的用户或组具有适当的权限(启动和激活权限通常为“本地启动”和“本地激活”,访问权限通常为“本地访问”)。

    • 如果需要,添加用户或组并授予必要的权限。

  2. 4. 检查注册表权限:

    • 打开regedit.exe

    • 导航至HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\OLE

    • 右键单击“OLE”键并选择“权限”。

    • 验证尝试连接的用户或组的权限。

      如有必要,授予“完全控制”权限。

  3. 5. 检查LocalAccountTokenFilterPolicy

    • 导航至HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System
    • 检查名为的 DWORD 值LocalAccountTokenFilterPolicy
    • 如果存在,请确保将其值设置为1。如果不存在,请创建它并将其值设置为1。此设置对于启用对目标计算机上某些资源的远程访问非常重要。
1
2
3
4
5
6
7
8
9
您无权访问本地 Windows 注册表,因此客户端无法将服务器的 ProgID 转换为 CLSID。请确保您以足够的权限(例如,以管理员用户身份)运行该应用程序。

或者,您可以只使用服务器的 CLSID 配置连接,这样就不需要注册表了。

OPC 客户端实际上应该使用服务器计算机上运行的 OpcEnum 服务来执行 ProgID 到 CLSID 的转换。可能是该服务不可用,或者 Utgard 只尝试访问注册表(我自己也不了解 Utgard)。如果您没有在客户端计算机上安装服务器,那么基于注册表的 ProgID 到 CLSID 转换无论如何都会失败,因为本地 Windows 注册表中没有该信息。最糟糕的情况是 Utgard 会尝试打开远程 Windows 注册表,但这种情况很少成功(或者您需要确保已单独启用该功能)。

请注意,由于我不了解 Utgard,我只是猜测它正在尝试哪些策略。然而,仅使用 CLSID 会绕过整个转换部分,这就是你的问题所在。

E:考虑到您的其他客户端可以毫无问题地连接,我怀疑 Utgard 根本没有尝试使用 OpcEnum。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
OPC 客户端实际上应该使用服务器计算机上运行的 OpcEnum 服务来执行 ProgID 到 CLSID 的转换。
可能是该服务不可用,或者 Utgard 只尝试访问注册表(我自己也不了解 Utgard)。
如果您没有在客户端计算机上安装服务器,那么基于注册表的 ProgID 到 CLSID 转换无论如何都会失败,因为本地 Windows 注册表中没有该信息。
最糟糕的情况是 Utgard 会尝试打开远程 Windows 注册表,但这种情况很少成功(或者您需要确保已单独启用该功能)。

请注意,由于我不了解 Utgard,我只是猜测它正在尝试哪些策略。然而,仅使用 CLSID 会绕过整个转换部分,这就是你的问题所在。

E:考虑到您的其他客户端可以毫无问题地连接,我怀疑 Utgard 根本没有尝试使用 OpcEnum。

我会把你的答案设为已采纳答案,因为我听说这确实是一个常见问题,而且它能帮助很多人。
不过,我按照 claptrap 的建议,再次修改了 DCOM 设置,解决了这个问题。
这次我将“位置”设置为“从以下计算机‘myComputerName’运行应用程序”,
而不是“从此计算机运行应用程序”。
不知道为什么,但现在一切正常。


我也像你说的那样使用了 CLSID!但这本身并没有消除异常。我还必须按照我之前的评论中解释的那样更改 DCOM。

我遇到了同样的错误,并通过将以下补丁应用到注册表解决了该问题:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System
创建或修改 32 位 DWORD:LocalAccountTokenFilterPolicy
将值设置为:1