分类: 未分类

  • Linux系统配置时区和时间同步服务的两种方法

    在 Linux 系统中,配置时区和启用时间同步服务可以通过不同的方式完成。下面我们将介绍两种常见的方法:一种使用传统命令,另一种使用 timedatectl 命令来进行配置。

    方法一:使用传统命令配置时区

    1. 配置时区为 Asia/Singapore

    你可以通过以下命令来设置时区:

    echo "Asia/Singapore" | tee /etc/timezone

    然后,将本地时间设置为 Asia/Singapore 时区:

    ln -sf /usr/share/zoneinfo/Asia/Singapore /etc/localtime
    1. 查看当前系统时间

    使用 date 命令查看系统时间,确保时区设置生效:

    date

    方法二:使用 timedatectl 配置时区

    1. 配置时区为 Asia/Singapore

    使用 timedatectl 直接设置时区:

    timedatectl set-timezone Asia/Singapore
    1. 查看当前系统时间

    使用 timedatectl 查看当前系统时区设置:

    timedatectl
    1. 安装并启动时间同步服务

    如果系统没有启用时间同步服务,可以通过以下命令来安装和启动 systemd-timesyncd 服务:

    apt install systemd-timesyncd
    systemctl start systemd-timesyncd
    systemctl status systemd-timesyncd
    1. 确认时间同步

    使用 timedatectl 再次查看同步状态:

    timedatectl
  • macOS 禁止在 SMB 共享上创建 .DS_Store 文件

    macOS 禁止在 SMB 共享上创建 .DS_Store 文件

    命令:

    defaults write com.apple.desktopservices DSDontWriteNetworkStores -bool TRUE

    执行命令后,重启电脑生效

    作用:

    • 防止在网络共享文件夹中生成 .DS_Store 文件,保持文件夹整洁。
    • 避免将 macOS 特有的文件传播到其他操作系统,例如 Windows 或 Linux。
    • 减少网络共享上的不必要数据,从而节省存储空间和带宽。

    还原操作:

    要恢复默认设置,允许 macOS 在网络共享上创建 .DS_Store 文件,请在终端中执行以下命令:

    命令:

    defaults write com.apple.desktopservices DSDontWriteNetworkStores -bool FALSE

    执行命令后,重启电脑生效

  • 使用Docker部署ONLYOFFICE 社区版文档服务器

    ONLYOFFICE 文档服务器是一款在线办公套件,包含文本、电子表格和演示文稿的查看器和编辑器,完全兼容 Office Open XML 格式:.docx、.xlsx、.pptx,并支持实时协作编辑。

    主要特点:

    • 实时协作:支持多人同时编辑同一个文档,提升团队协作效率。
    • 多种格式支持:兼容主流 Office 格式(如 .docx、.xlsx、.pptx),无缝处理不同类型的文件。
    • 跨平台支持:适用于 Windows、Linux、macOS 等多平台,方便部署和使用。
    • 高效文档管理:提供强大的文档查看、编辑、共享功能,适用于个人及小型团队使用。

    1. 克隆 ONLYOFFICE 社区版仓库

    首先,打开终端并克隆 ONLYOFFICE 的社区版 Docker 配置库:

    git clone https://github.com/ONLYOFFICE/Docker-CommunityServer

    2. 进入项目目录

    克隆完成后,进入项目目录:

    cd Docker-CommunityServer

    3. 启动 Docker 容器

    使用 docker-compose 启动 ONLYOFFICE 社区版文档服务器:

    docker-compose -f docker-compose.workspace.yml up -d

    4. 配置访问

    部署完成后,你可以通过访问服务器的 IP 地址或域名来使用 ONLYOFFICE 文档服务器。默认端口为 80,你可以在浏览器中输入服务器地址,例如:

    http://<服务器IP地址>/
  • 迁移 Ubuntu 24.04 系统从 VMware虚拟化迁移到 KVM 虚拟化

    当我们将虚拟机从 VMware 环境迁移到 KVM 虚拟化平台时,虽然系统能够成功启动,但可能会出现无法联网的情况。解决迁移 Ubuntu 24.04 系统从 VMware 到 KVM,无法获取IP导致没有网络的问题

    1. 迁移前的准备

    在迁移之前,需要做好以下准备工作:

    • 备份虚拟机:为了防止意外丢失数据,首先应该备份虚拟机。
    • 安装 QEMU-Guest-Agent:QEMU-Guest-Agent 是 KVM 环境中必要的工具,它能增强虚拟机和宿主机之间的交互,例如提供更好的网络性能和电源管理。 安装命令如下:
    sudo apt update
    sudo apt install qemu-guest-agent

    2. 虚拟机迁移操作

    迁移过程中,可以使用如下两种方法之一进行迁移:

    • 迁移虚拟磁盘:通过将 VMware 虚拟机的虚拟磁盘(通常为 .vmdk 文件)转换为 KVM 支持的格式(如 .qcow2 或 .raw 格式)。

    可以使用 qemu-img 工具进行格式转换:

    qemu-img convert -f vmdk -O qcow2 vmware_disk.vmdk kvm_disk.qcow2
    • 直接导出并导入虚拟机:导出 VMware 虚拟机的配置并导入到 KVM 中,使用 KVM 的虚拟机管理工具如 virt-manager 或 virsh 进行虚拟机的创建和配置。

    3. 启动虚拟机并验证迁移

    完成迁移后,启动虚拟机,确保虚拟机能够成功启动并进入系统。此时,我们会发现虚拟机能够正常启动,但有时候会出现无法联网的情况。

    网络问题分析

    在迁移完成后,我们的 Ubuntu 24.04 系统成功启动,但无法连接到网络。执行 ip a 命令时,虚拟机没有分配到 IP 地址,且网络接口无法连接。经过排查,发现问题的根本原因在于虚拟机的网络接口名称发生了变化。

    VMware 与 KVM 中的网卡名称差异

    在不同的虚拟化平台中,网络接口的命名规则是不同的:

    • VMware 中,网卡设备名通常是 ens33 或类似的名称。
    • KVM 中,网卡名称可能变为 ens3、eth0 或其他类似的格式。

    在迁移过程中,由于底层虚拟化平台的差异,网卡名称发生了变化,而系统中的网络配置文件仍然使用的是旧的设备名称,导致虚拟机无法正确连接到网络。

    排查步骤

    1. 查看实际网卡名称

    通过执行 ip a 命令查看系统中的实际网卡名称。该命令输出中显示网卡名称为 ens3,而不是 VMware 中的 ens33。

    ip a
    1. 检查 Netplan 配置文件

    Netplan 是 Ubuntu 系统中用于网络配置的工具。我们需要检查 Netplan 配置文件,确认是否仍然使用旧的设备名称。

    cat /etc/netplan/50-cloud-init.yaml

    如果文件中仍然使用的是旧的 ens33,而实际的设备名称是 ens3,这将导致无法应用正确的网络配置。

    解决方法

    为了修复这个网络问题,只需将 Netplan 配置文件中的网卡名称从 ens33 更改为实际的 ens3,然后重新应用网络配置即可。

    步骤 1:编辑 Netplan 配置文件

    打开 Netplan 配置文件进行编辑:

    sudo nano /etc/netplan/50-cloud-init.yaml

    将原配置:

    network:
      version: 2
      ethernets:
        ens33:
          dhcp4: true

    修改为:

    network:
      version: 2
      ethernets:
        ens3:
          dhcp4: true

    步骤 2:应用新的网络配置

    保存并关闭文件后,应用新的网络配置:

    sudo netplan apply

    步骤 3:检查网络是否恢复

    重新执行 ip a 命令,检查网络接口是否已成功获取到 IP 地址:

    ip a

    您应该可以看到 ens3 接口已成功获取到 IP 地址,网络恢复正常。

  • Ubuntu24.04在本地搭建 Kubernetes 开发环境:Docker、Minikube 和 kubectl 安装与配置指南

    如何在本地环境中通过 Docker、Minikube 和 kubectl 构建一个 Kubernetes 集群。Kubernetes 是目前主流的容器编排平台,而 Minikube 提供了一个轻量级的本地集群环境,方便开发者和学习者进行实验和测试。

    1. 安装 Docker

    首先,您需要在系统中安装 Docker。运行以下命令以下载并安装 Docker:

    # 安装 Docker
    curl -fsSL https://get.docker.com -o get-docker.sh
    sudo sh get-docker.sh

    安装完成后,将普通用户添加到 docker 用户组中,以便无需使用 sudo 来运行 Docker 命令:

    # 配置普通用户加入到 docker 用户组
    sudo usermod -aG docker $USER

    执行以上命令后,您需要退出并重新登录才能使更改生效。

    2. 安装 Minikube

    Minikube 是用于在本地启动 Kubernetes 集群的工具。运行以下命令以安装 Minikube:

    curl -LO https://github.com/kubernetes/minikube/releases/latest/download/minikube-linux-amd64
    sudo install minikube-linux-amd64 /usr/local/bin/minikube && rm minikube-linux-amd64
    
    minikube version

    3. 安装 kubectl

    1. 更新系统软件包列表,并安装必要的依赖:
    sudo apt-get update
    sudo apt-get install -y apt-transport-https ca-certificates curl gnupg
    1. 添加 Kubernetes 的 APT 仓库 GPG 密钥:
    curl -fsSL https://pkgs.k8s.io/core:/stable:/v1.32/deb/Release.key | sudo gpg --dearmor -o /etc/apt/keyrings/kubernetes-apt-keyring.gpg
    sudo chmod 644 /etc/apt/keyrings/kubernetes-apt-keyring.gpg
    1. 配置 Kubernetes APT 仓库源:
    echo 'deb [signed-by=/etc/apt/keyrings/kubernetes-apt-keyring.gpg] https://pkgs.k8s.io/core:/stable:/v1.32/deb/ /' | sudo tee /etc/apt/sources.list.d/kubernetes.list
    sudo chmod 644 /etc/apt/sources.list.d/kubernetes.list
    1. 更新软件包列表并安装 kubectl:
    sudo apt-get update
    sudo apt-get install -y kubectl

    4. 启动 Minikube

    安装完成后,启动 Minikube 集群:

    minikube start --driver=docker

    5. 验证安装

    使用以下命令检查 Minikube 和 kubectl 的状态:

    minikube status
    kubectl get nodes

    如果输出显示集群状态正常,Minikube 已成功启动。

    6. 常用 kubectl 命令

    • 查看所有命名空间中的所有 Pod:
    kubectl get pods --all-namespaces
    • 查看默认命名空间中的所有 Pod:
    kubectl get pods
    • 查看服务:
    kubectl get services
    • 查看集群节点:
    kubectl get nodes
    • 查看所有 Deployments:
    kubectl get deployments
    • 查看资源使用情况(如节点的 CPU、内存等):
    kubectl top nodes
    • 删除一个 Pod:
    kubectl delete pod <pod-name>
    • 启动一个新的 Pod(如运行一个 nginx 容器):
    kubectl run nginx --image=nginx

    7. 访问 Kubernetes Dashboard(可选)

    如果您想进行可视化管理,可以访问 Kubernetes Dashboard:

    minikube dashboard

    8. 测试 Nginx 部署

    1. 创建一个 Nginx 部署:
    kubectl create deployment nginx --image=nginx
    1. 将 Nginx 部署暴露到集群外部:
    kubectl expose pod nginx --type=NodePort --name=nginx-service --port=80
    1. 查看服务的端口分配:
    kubectl get services
    1. 获取 Minikube 的 IP 地址:
    minikube ip
    1. 使用浏览器测试 Nginx 服务:
    curl http://<IP>:<端口>

    9. 临时暴露端口供其他人访问,使用 kubectl port-forward 访问 Nginx

    1. 确保 Nginx Pod 正在运行:
    kubectl create deployment nginx --image=nginx
    1. 查找 Nginx Pod 的名称:
    kubectl get pods -l app=nginx
    1. 使用 kubectl port-forward 进行端口转发:
    kubectl port-forward --address 0.0.0.0 <pod-name> <host-port>:<container-port>

    例如,将本地的 8080 端口转发到 Nginx 容器的 80 端口:

    kubectl port-forward --address 0.0.0.0 nginx-5869d7778c-qdfr2 8080:80
    1. 保持终端窗口打开。
    2. 从外部访问 Nginx:
    http://<IP>:8080

    10. 注意事项

    • kubectl port-forward 端口转发是临时的,关闭终端窗口时会断开连接。
    • 使用 --address 0.0.0.0 将服务暴露到所有网络接口,确保在公共网络中谨慎使用。
    • Pod 故障时,需要重新执行端口转发命令。
  • VMware 安装 Ubuntu Desktop 显示不清晰问题解决方法

    使用 VMware 虚拟机安装 Ubuntu Desktop 时,可能会遇到显示不清晰或分辨率不合适的问题。这个问题通常与虚拟机的显示工具和驱动程序配置有关。默认情况下,VMware 安装的 open-vm-tools 只能提供基础的虚拟机功能支持,无法完全优化图形用户界面的显示效果。为了解决这个问题,我们需要安装 open-vm-tools-desktop,它包含了图形用户界面的相关优化,确保显示效果更加清晰、流畅。

    解决步骤

    打开终端
    在 Ubuntu Desktop 中,按 Ctrl + Alt + T 打开终端窗口。

    安装 open-vm-tools-desktop
    在终端中输入以下命令来安装 open-vm-tools-desktop:

    sudo apt update
    sudo apt install open-vm-tools-desktop

    该命令将自动安装与 VMware 图形界面优化相关的组件,并解决分辨率和显示不清晰的问题。

    重启虚拟机
    安装完成后,重启虚拟机以使更改生效:

    sudo reboot