2024年1月

同事喊我过去修复一下她的U盾无法使用的问题。这个U盾插上之后,会在windows系统里面出现一个存储空间,运行程序会自动更新软件。同样的U盾,同样的办公环境,一个同事可以,她的却不行。这是为什么?

首先检查网络,情况良好。
下载该银行的U盾网络检查程序。报错。
无奈,试下热点吧。可以。

先让同事用。回去检查了下办公网的DNS,没有发现异常。除了把默认的DNS改成了自建的,没有使用运营商给的DNS外,没有其他的了。
由于自建DNS牵扯到内网一些服务,所以也不能轻易改。
于是,准备了方案,把用户本地的DNS改成运营商的。

下午上班后,去同事那里看了下。没想到直接可以使用了。

猜测,是因为DNS缓存问题。由于windows是有DNS缓存的,可能一开始用的时候遇到了问题,所以再怎么测试都是不行的。而切换热点后,DNS会刷新,所以就正常了。再次切换本地WiFi,DNS再次刷新,也就正常了。

但是,经过咨询GPT,windows并不会本地自动刷新。

也许是缓存时间到了。相关命令,下次可以试试

# 清空本地dns缓存
ipconfig /flushdns

# 列出本地缓存的dns
ipconfig /displaydns

另外,windows本地缓存dns的时间与dns设置的TTL有关。

windows

要在保留数据的情况下将一块 8TB 的硬盘从 MBR(主引导记录)格式转换为 GPT(GUID 分区表)格式以支持完整的 8TB 存储空间,你可以按照以下步骤操作:

  1. 备份数据:首先,重要的是确保硬盘上的所有数据都已经得到安全备份。虽然转换过程可以不丢失数据,但总是存在风险。
  2. 使用转换工具:Windows 提供了一个名为 diskpart 的命令行工具,可以用来将硬盘从 MBR 转换为 GPT,而不会丢失数据。

    要使用 diskpart,请按照以下步骤操作:

    • 打开命令提示符(以管理员身份)。
    • 输入 diskpart 并按 Enter。
    • diskpart 提示符下,输入 list disk 并按 Enter 查看磁盘列表。
    • 根据磁盘编号选择您的磁盘,例如,如果您的磁盘是磁盘 1,则输入 select disk 1
    • 然后输入 convert gpt

    注意:这个过程仅在 Windows 10 版本 1703 及更高版本中支持。在较早的版本中,convert gpt 命令会清除磁盘上的所有数据。

  3. 扩展现有分区或创建新分区:一旦转换完成,你可以使用磁盘管理工具来扩展现有分区或创建新的分区以使用额外的空间。在“磁盘管理”中,你应该能够看到未分配的空间,你可以右键点击并选择“扩展卷”或“新建简单卷”。
  4. 恢复数据:如果在转换过程中有任何数据丢失,你可以从之前的备份中恢复数据。

请注意,这个过程涉及重要数据操作。确保你理解每一步的后果,并在操作之前备份所有重要数据。如果不确定,寻求专业帮助总是一个好主意。

ubuntu

在 Linux 系统中,要将一块使用 MBR 格式的 8TB 硬盘转换为 GPT 格式,同时保留数据,可以使用 gdisk 工具。gdisk 是一个专门用于处理 GPT 分区表的磁盘分区工具。以下是步骤:

  1. 备份数据:首先,和任何涉及分区更改的操作一样,强烈建议对硬盘上的数据进行完整备份。尽管 gdisk 的转换过程设计为不丢失数据,但总是存在风险。
  2. 安装 gdisk:如果你的系统尚未安装 gdisk,可以通过 Linux 的包管理器安装。例如,在基于 Debian 的系统(如 Ubuntu)上,你可以使用以下命令:

    sudo apt-get update
    sudo apt-get install gdisk
  3. 使用 gdisk 进行转换

    • 运行 gdisk 对目标硬盘进行操作。请用你的硬盘设备替换 /dev/sdx(例如 /dev/sda):

      sudo gdisk /dev/sdx
    • gdisk 提示符下,输入 r 进入恢复/转换菜单。
    • 输入 g 转换 MBR 分区表为 GPT 分区表。
    • 输入 w 写入更改并退出 gdisk

    注意:这个过程应该保留所有现有分区,但不会保留 MBR 特定的引导代码。如果你的系统是从这块硬盘引导的,可能需要重新安装引导加载程序。

  4. 扩展或创建新分区:转换为 GPT 后,你可以使用 partedgparted(图形界面)或其他分区工具来扩展现有分区或创建新的分区来使用额外的空间。
  5. 更新系统配置:如果这块硬盘用于系统启动,你可能需要更新引导加载程序(如 GRUB)。这可以通过重新安装引导加载程序来完成,例如使用 grub-install
  6. 恢复数据:如果在转换过程中有任何数据丢失,你可以从之前的备份中恢复。

这些步骤在大多数现代 Linux 发行版中应该适用。但请记住,处理分区和文件系统时总是需要谨慎,确保你有完整的数据备份,并在需要时寻求专业帮助。

centos

在 CentOS 系统中,将使用 MBR 格式的 8TB 硬盘转换为 GPT 格式的步骤与其他 Linux 发行版非常相似。CentOS 通常预装了 gdisk,如果没有,你可以使用 YUM 包管理器安装它。以下是具体步骤:

  1. 备份数据:最重要的步骤是先备份硬盘上的所有数据,以防转换过程中出现意外。
  2. 安装 gdisk(如果尚未安装):

    sudo yum install gdisk
  3. 使用 gdisk 转换分区表

    • 打开终端并输入以下命令来运行 gdisk,替换 /dev/sdx 为你的硬盘设备(比如 /dev/sda):

      sudo gdisk /dev/sdx
    • gdisk 提示符下,输入 r 进入恢复/转换菜单。
    • 输入 g 转换 MBR 分区表为 GPT 分区表。
    • 输入 w 写入更改并退出 gdisk

    注意:这个过程会保留现有的分区,但不会保留用于引导的 MBR 代码。如果从此硬盘启动,你可能需要重新配置或安装引导加载程序。

  4. 扩展现有分区或创建新分区:使用 partedgparted(如果你更喜欢图形界面)来扩展现有分区或创建新的分区,以利用额外的存储空间。
  5. 更新引导加载程序(如果需要):如果硬盘用于启动系统,你可能需要更新 GRUB 或其他引导加载程序。这可以通过运行 grub2-installgrub2-mkconfig 来完成。
  6. 检查并确认:完成转换和任何必要的引导加载程序更新后,重启系统并检查硬盘是否正确识别和利用了全部 8TB 空间。

在执行这些操作时,请确保你对命令有充分的了解,了解它们的作用,并且始终记得在进行此类操作前备份重要数据。如果你不确定或不舒服进行这些操作,寻求专业帮助是明智的选择。

问题描述

操作系统:redhat 7.2
错误信息:Not found ssh_host_dsa_key.pub

问题修复

touch /etc/ssh/ssh_host_dsa_key.pub

或者使用命令ssh-keygen -A重新生成。

关于ssh-keygen -A

ssh-keygen -A 是一个在SSH服务器上使用的命令,用于为所有已知的主机密钥类型(如 RSA, DSA, ECDSA, ED25519)生成公钥和私钥对。这些密钥对通常用于SSH服务器的主机身份验证。

命令详解

  • ssh-keygen:这是一个用于创建SSH密钥的工具,是SSH套件的一部分。它主要用于生成、管理和转换认证密钥,用于SSH协议。
  • -A 选项:这个选项指示ssh-keygen为所有缺失的类型生成主机密钥。这通常在SSH服务器的初始化过程中使用,确保服务器有一套完整的主机密钥。

使用场景

当你设置一个新的SSH服务器时,或者在某些情况下更新SSH主机密钥时,你可能会使用这个命令。这些密钥对用于服务器在SSH握手过程中证明其身份,以防止中间人攻击(MITM)。

安全性

  • 运行ssh-keygen -A会在服务器上生成密钥对,不应该轻率地进行。一定要确保你理解这些密钥的作用和安全影响。
  • 如果这些密钥对曾经被泄露或被怀疑泄露,应立即更换新的密钥对。
  • 定期更换这些密钥对是一个好习惯,特别是在安全敏感的环境中。

注意

在一些SSH配置中,ssh-keygen -A 命令可能会在服务器启动时自动运行,确保所有必要的主机密钥都存在。但是,这取决于具体的系统和SSH服务器版本。

报错信息

操作系统:Oracle Linux 7.8

● sshd.service - SYSV: OpenSSH server daemon
   Loaded: loaded (/etc/rc.d/init.d/sshd; bad; vendor preset: enabled)
   Active: active (running) since Fri 2024-01-26 10:50:01 CST; 18min ago
     Docs: man:systemd-sysv-generator(8)
  Process: 4384 ExecStop=/etc/rc.d/init.d/sshd stop (code=exited, status=0/SUCCESS)
  Process: 4393 ExecStart=/etc/rc.d/init.d/sshd start (code=exited, status=0/SUCCESS)
 Main PID: 4402 (sshd)
    Tasks: 1
   CGroup: /system.slice/sshd.service
           └─4402 sshd: /usr/sbin/sshd [listener] 0 of 10-100 startup

Jan 26 10:50:01 recovery sshd[4402]: Server listening on :: port 22.
Jan 26 10:50:01 recovery sshd[4393]: Starting sshd:[  OK  ]
Jan 26 10:50:01 recovery systemd[1]: Started SYSV: OpenSSH server daemon.
Jan 26 10:50:15 recovery sshd[4496]: PAM unable to dlopen(/usr/lib64/security/pam_stack.so): /usr/lib64/security/pam_stack.so: cannot open shared object file: No such file or directory
Jan 26 10:50:15 recovery sshd[4496]: PAM adding faulty module: /usr/lib64/security/pam_stack.so
Jan 26 10:50:15 recovery sshd[4496]: Failed password for root from 10.85.65.123 port 55020 ssh2
Jan 26 10:50:21 recovery sshd[4496]: Connection closed by authenticating user root 10.85.65.123 port 55020 [preauth]
Jan 26 10:59:25 recovery sshd[5289]: PAM unable to dlopen(/usr/lib64/security/pam_stack.so): /usr/lib64/security/pam_stack.so: cannot open shared object file: No such file or directory
Jan 26 10:59:25 recovery sshd[5289]: PAM adding faulty module: /usr/lib64/security/pam_stack.so
Jan 26 10:59:25 recovery sshd[5289]: Failed password for root from 10.85.65.123 port 36116 ssh2

修复过程

修改文件/etc/pam/sshd

#%PAM-1.0
auth       required     pam_sepermit.so
auth       include      password-auth
account    required     pam_nologin.so
account    include      password-auth
password   include      password-auth
# pam_selinux.so close should be the first session rule
session    required     pam_selinux.so close
session    required     pam_loginuid.so
# pam_selinux.so open should only be followed by sessions to be executed in the user context
session    required     pam_selinux.so open env_params
session    optional     pam_keyinit.so force revoke
session    include      password-auth

重启服务

systemctl restart ssh

iSCSI和FC SAN的区别

iSCSI(Internet Small Computer System Interface)和FC(Fibre Channel)SAN(Storage Area Network)都是连接存储设备的技术,但它们在实现、性能、成本和适用场景方面有着显著的区别。下面是两者的主要区别:

1. 技术和实现

  • iSCSI: 利用现有的IP网络基础设施来传输SCSI命令。它使用以太网电缆和开关,可以在标准TCP/IP网络上运行。
  • FC SAN: 使用专用的光纤通道网络。它通常需要特殊的光纤电缆、交换机和适配器(HBA卡)。FC网络是为了数据存储而专门设计的,因此在性能和可靠性方面进行了优化。

2. 性能

  • iSCSI: 性能取决于网络的速度和质量。由于它在标准网络上运行,可能受到网络拥塞和其他网络活动的影响。
  • FC SAN: 通常提供更高的性能和低延迟连接,特别适合于数据密集型和关键任务的应用。FC网络几乎没有网络延迟,并专门用于存储数据传输。

3. 成本

  • iSCSI: 由于使用标准的以太网硬件,成本相对较低。这使得iSCSI成为小型企业和有限预算的组织的理想选择。
  • FC SAN: 由于需要专用硬件,成本较高。这通常适用于大型企业和对性能有高要求的环境。

4. 易用性和灵活性

  • iSCSI: 可以轻松地通过现有的网络基础设施进行部署和管理,不需要额外的专用硬件或专门知识。
  • FC SAN: 需要更多的配置和专业知识。虽然它在性能上占优势,但在灵活性和扩展性方面可能不如iSCSI。

5. 应用场景

  • iSCSI: 适用于中小型企业、远程办公和一些不那么性能敏感的应用。
  • FC SAN: 更适合大型企业和数据中心,尤其是在需要高吞吐量和低延迟的关键任务应用中。

总的来说,选择iSCSI还是FC SAN取决于组织的具体需求、预算限制和现有的网络基础设施。对于需要高性能和可靠性的大型企业,FC SAN是一个更好的选择;而对于预算有限且寻求更多灵活性的中小型企业,iSCSI可能是更合适的解决方案。

连接iSCSI

当然,我可以为你提供一个更详细的指南,用于在Windows系统中挂载SAN磁盘阵列。假设你正在使用iSCSI协议连接SAN,请按照以下步骤操作:

1. 物理连接和网络配置

  • 确保SAN存储系统与你的Windows服务器物理连接(例如通过光纤通道或以太网)。
  • 配置网络设置,确保服务器可以访问SAN存储系统的IP地址。

2. 安装适当的驱动程序和软件

  • 根据SAN存储系统的要求,安装任何必要的驱动程序或管理软件。这通常包括存储控制器的驱动程序。

3. 配置iSCSI发起者

  • 在Windows上,打开“控制面板” → “管理工具” → “iSCSI发起者”。
  • 在iSCSI发起者属性窗口中,点击“发现”标签。
  • 点击“发现目标门户”,输入SAN目标的IP地址,然后点击“确定”。
  • 切换到“目标”标签,选择你刚刚添加的目标,然后点击“连接”。
  • 在弹出的对话框中,你可以选择自动重新连接选项,然后点击“确定”。

4. 初始化和格式化磁盘

  • 打开“磁盘管理”(可以在控制面板的“计算机管理”中找到)。
  • 在磁盘管理中,查找新连接的SAN磁盘。如果是新磁盘,系统可能会提示你初始化磁盘。
  • 右键点击SAN磁盘,选择“初始化磁盘”,选择磁盘初始化类型(通常是GPT),然后点击“确定”。
  • 右键点击未分配的磁盘空间,选择“新建简单卷”。
  • 按照向导步骤操作,分配卷大小、指定驱动器字母、选择文件系统(如NTFS)并格式化卷。

5. 访问和管理存储

  • 一旦格式化完成,SAN存储卷将出现在“我的电脑”或“文件资源管理器”中,像访问本地驱动器一样使用。

注意

  • 在操作过程中,确保遵循任何特定于你SAN存储系统的指导和最佳实践。
  • 如果你不确定某些步骤,或者在配置过程中遇到问题,最好咨询IT专业人员或参考SAN存储系统的官方文档。

这个过程大致概述了在Windows中配置SAN的步骤,但请记住,具体的步骤和选项可能会根据你的具体硬件和软件配置有所不同。

连接FC SAN

如果您的Windows系统通过HBA(主机总线适配器)卡使用光纤通道(FC)连接到SAN(存储区域网络)磁盘阵列,您可以按照以下步骤进行操作:

1. 物理连接

  • 确保HBA卡已经安装在Windows服务器上,并且通过光纤通道线缆正确连接到SAN交换机或直接连接到SAN存储。
  • 通电启动所有设备,包括SAN存储、SAN交换机(如果有的话)和Windows服务器。

2. 安装HBA驱动程序

  • Windows可能会自动识别HBA卡并安装相应的驱动程序。如果没有,您需要从HBA卡制造商的官网下载并安装正确的驱动程序。
  • 重启服务器以确保驱动程序正确加载。

3. 配置SAN存储

  • 登录到SAN存储管理界面(通常通过网络浏览器访问)。
  • 根据SAN存储的说明,创建一个新的存储卷或LUN(逻辑单元号)并分配给您的Windows服务器(可能需要输入HBA卡的WWN,即世界范围名称)。

4. 在Windows上识别新磁盘

  • 回到Windows服务器,打开“磁盘管理”工具。这可以通过在“运行”对话框(Win + R)中输入diskmgmt.msc来实现。
  • 磁盘管理工具应该会显示一个初始化磁盘的对话框。如果没有,可以尝试“操作”菜单下的“重新扫描磁盘”。

5. 初始化和格式化磁盘

  • 选择新的SAN磁盘,右键单击并选择“初始化磁盘”。选择GPT(GUID分区表)或MBR(主引导记录)分区样式,具体取决于您的需求。
  • 右键单击未分配的空间,选择“新建简单卷”。按照向导操作,分配大小,选择文件系统(如NTFS),并为新卷分配一个驱动器字母。
  • 完成格式化后,新的SAN存储卷将在“文件资源管理器”中可见,您可以开始使用它存储数据。

注意事项

  • 在进行任何操作之前,请确保备份所有重要数据。
  • 在进行物理连接和配置时,务必遵循您的HBA卡和SAN存储设备的具体说明书或在线文档。
  • 如果在设置过程中遇到困难,建议联系IT专业人员或制造商的技术支持。

这些步骤提供了一个基本的框架,但请记住,不同的硬件和软件可能需要额外的或稍有不同的步骤。

服务端

# 下载相关依赖
yum install -y gcc-c++ cmake openssl-devel

# 下载mosquitto-1.4.10源码包
wget http://mosquitto.org/files/source/mosquitto-1.4.15.tar.gz
tar -xzvf mosquitto-1.4.15.tar.gz

# 修改源码包配置
cd mosquitto-1.4.10
vim config.mk
注释掉下面两个配置 
WITH_SRV:=yes
WITH_UUID:=yes 


# 编译源码
make
sudo make install

# 修改配置
mv /etc/mosquitto/mosquitto.conf.example /etc/mosquitto/mosquitto.conf
vi /etc/mosquitto/mosquitto.conf
 
在mosquitto.conf中添加配置 
 allow_anonymous false #设置不允许匿名登录
 password_file /etc/mosquitto/pwfile.example #设置账户密码文件位置 


# 创建用户
cd /etc/mosquitto
# 清空密码文件,新建用户mosquitto,回车后会让输入密码
mosquitto_passwd -c ./pwfile.example mosquitto
账号mosquitto 密码mosquitto
# 启动服务
user add mosquitto
mosquitto -c /etc/mosquitto/mosquitto.conf -d
如果启动失败并报错找不到libmosquitto.so.1,创建连接文件
ln -s /usr/local/lib/libmosquitto.so.1 /usr/lib/libmosquitto.so.1
# 进入安装目录【我的是/usr/software】
cd ../
ldconfig
# 再重新执行启动命令
mosquitto -c /etc/mosquitto/mosquitto.conf -d

客户端

https://github.com/emqx/MQTTX/releases
http://vip.123pan.cn/1815238395/download/mqtt/MQTTX-Setup-1.9.8-x64.exe

Pandora-Next项目是由国内高手程序员利用业余时间开发,通过在国内部署该软件及该软件服务端所提供的代理中转服务,实现国内用户可以将自己的Openai账号/GPT-4包月服务提供给国内朋友使用,其克服国内无法直接访问Openai以及无法共享使用的两个重要难题,为Openai这一先进的人工智能服务服务国内用户提供了巨大的作用。向老哥致敬!但是随着作者精力和财力有限,于近日发表声明,终止继续开发和维护。

随着Pandora-Next项目的关停,在即将到来的2024中国年之前,可能就不能将GPT-4的功能分享给大家了。

与社区的伙伴讨论后,目前有两种降级替代方案:

  1. 使用Chatgpt Next Web+openai api实现GPT3.5的使用。也可以顺带实现GeminiPro。因为我们没有openai授权的可以访问GPT4资源的api。仅有的api权限只能访问到GPT3.5。
  2. 使用copilot+copilot-gpt4-service,实现GPT-4的转换。
    但是,无论如何,以上的方案都不是官方推荐的方案,而且容易造成封号等不良后果。

方案一 简单省心直接购买ohmygpt

基于此,我觉得有必要思考另外一个稍微简单一点的稳定的方案,让人工智能这一计算器能够持续帮助大家的生活和工作。
这个方案也是最早提供给大家使用GPT的方式,使用dogenet提供的GPT服务。该服务没有包月服务,用多少扣多少,支持微信和支付宝。具有如下特点:

  1. 用户可以选择自主注册、充值、在线使用。
    2024-01-23T09:03:35.png
  2. 如果是多人使用,共享账号,也可以由1人注册后,通过部署chatgpt next web实现账号分享。
    2024-01-23T09:06:21.png
  3. 使用费用甚至比直接使用官方非包月资费要便宜一些。
    2024-01-23T09:08:43.png

方案二 乘坐空军一号 想办法购买GPT4包月服务并自己使用

除此之外,如果你个人希望使用20美金包月使用GPT4服务(3小时40条消息限制)的话,我也可以帮助提供办理。该方案需要的条件有点苛刻,需要美国的出口公网地址、美国的信用卡等。

方案三 乘坐空军一号 使用微软copilot

挂着us梯子访问https://copilot.microsoft.com
特点:简单、方便。只需要一架空军一号,不登录都能够直接使用。
2024-01-24T06:52:27.png

方案四 乘坐空军一号 访问头条海外项目

特点:需要专业知识,主要面向可以自己投喂数据的用户使用。也可以变相使用GPT4模型。
https://www.coze.com
2024-01-24T06:53:42.png

找到nginx.conf文件,在html配置内容内,增加如下内容:

    gzip  on;
    gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript;
    gzip_comp_level 5;
    gzip_vary on;

sudo yum remove docker \
                  docker-client \
                  docker-client-latest \
                  docker-common \
                  docker-latest \
                  docker-latest-logrotate \
                  docker-logrotate \
                  docker-engine
cat <<EOF>/etc/yum.repos.d/docker-ce.repo
[docker-ce-stable]
name=Docker CE Stable - $basearch
baseurl=https://download.docker.com/linux/centos/$releasever/$basearch/stable
enabled=1
gpgcheck=1
gpgkey=https://download.docker.com/linux/centos/gpg

[docker-ce-stable-debuginfo]
name=Docker CE Stable - Debuginfo $basearch
baseurl=https://download.docker.com/linux/centos/$releasever/debug-$basearch/stable
enabled=0
gpgcheck=1
gpgkey=https://download.docker.com/linux/centos/gpg

[docker-ce-stable-source]
name=Docker CE Stable - Sources
baseurl=https://download.docker.com/linux/centos/$releasever/source/stable
enabled=0
gpgcheck=1
gpgkey=https://download.docker.com/linux/centos/gpg

[docker-ce-test]
name=Docker CE Test - $basearch
baseurl=https://download.docker.com/linux/centos/$releasever/$basearch/test
enabled=0
gpgcheck=1
gpgkey=https://download.docker.com/linux/centos/gpg

[docker-ce-test-debuginfo]
name=Docker CE Test - Debuginfo $basearch
baseurl=https://download.docker.com/linux/centos/$releasever/debug-$basearch/test
enabled=0
gpgcheck=1
gpgkey=https://download.docker.com/linux/centos/gpg

[docker-ce-test-source]
name=Docker CE Test - Sources
baseurl=https://download.docker.com/linux/centos/$releasever/source/test
enabled=0
gpgcheck=1
gpgkey=https://download.docker.com/linux/centos/gpg

[docker-ce-nightly]
name=Docker CE Nightly - $basearch
baseurl=https://download.docker.com/linux/centos/$releasever/$basearch/nightly
enabled=0
gpgcheck=1
gpgkey=https://download.docker.com/linux/centos/gpg

[docker-ce-nightly-debuginfo]
name=Docker CE Nightly - Debuginfo $basearch
baseurl=https://download.docker.com/linux/centos/$releasever/debug-$basearch/nightly
enabled=0
gpgcheck=1
gpgkey=https://download.docker.com/linux/centos/gpg

[docker-ce-nightly-source]
name=Docker CE Nightly - Sources
baseurl=https://download.docker.com/linux/centos/$releasever/source/nightly
enabled=0
gpgcheck=1
gpgkey=https://download.docker.com/linux/centos/gpg
EOF
yum makecache
yum install -y docker-ce docker-compose