Arch Linux 常用软件

本文部分内容基于manjaro,另外如果喜欢苹果界面,可以试下pearos。理论上基于Arch的发行版都可以使用本文进行安装。如果您安装好了manajro但是又不想重装系统,可以试下这个脚本来将Manjaro自动转换为Arch,。 Arch 安装后必装的软件 通过archinstall 安装以后,是没图形界面的。需要安装下面的一些软件和配置 安装时,声音后端的选择: PulseAudio,历史悠久、最为常用; PipeWire,新生代,采用全新架构,整合多种音频后端(PulseAudio、ALSA和JACK),提供低延迟的音频体验 连接无线网 iwctl # 进入交互式命令行 device list # 列出无线网卡设备名,比如无线网卡看到叫 wlan0 station wlan0 scan # 扫描网络 station wlan0 get-networks # 列出所有 wifi 网络 station wlan0 connect wifi-name # 进行连接,注意这里无法输入中文。回车后输入密码即可 exit # 连接成功后退出 启用网络 systemctl enable dhcpcd systemctl enable wpa_supplicant systemctl enable NetworkManager 蓝牙 sudo systemctl enable --now bluetooth 如果没这个服务,可能需要通过 paru -S bluetooth进行安装。 如果需要启用蓝牙音频支持,请安装 paru -S pulseaudio-bluetooth 蓝牙高级管理工具 paru -S blueman 蓝牙协议支持与管理paru -S bluez bluez-utils blueman 微码 pacman -S intel-ucode # Intel pacman -S amd-ucode # AMD 打印机 paru -S cups ghostscript gsfont 然后启动服务...

February 23, 2022 · 25 min · czyt

定制你自己的cockpit

什么是Cockpit Cockpit,官网https://cockpit-project.org是一个基于web的服务器管理界面,可以通过浏览器访问。它提供了一个统一的管理界面,用于管理和监控Linux服务器。以下是Cockpit的一些主要特点: 易用性 提供直观的图形化界面,无需命令行操作 支持多种Linux发行版,如Red Hat、CentOS、Fedora、Debian、Ubuntu等 可以通过浏览器远程访问,无需安装客户端软件 功能特性 系统监控:实时查看CPU、内存、磁盘、网络等系统资源的使用情况 服务管理:启动、停止、重启系统服务 存储管理:管理磁盘分区、LVM、RAID等存储设备 网络配置:配置网卡、防火墙、虚拟网络等网络设置 日志查看:查看系统日志和审计日志 用户管理:添加、删除、修改系统用户和组 软件包管理:安装、更新、删除软件包 安全性 基于角色的访问控制(RBAC),可以为不同用户设置不同的权限 支持SSL/TLS加密,保护数据传输安全 可以与LDAP、Kerberos等认证系统集成 总的来说,Cockpit是一个功能强大、易用的Linux服务器管理工具,可以大大提高管理员的工作效率。它适用于各种规模的Linux服务器,是Linux系统管理的一个不错的选择。 安装 cockpit在主流操作系统都一键安装的包。请参考https://cockpit-project.org/running.html的Installation & Setup部分 自定义你的cockpit 修改登陆界面标题 修改 /etc/cockpit/cockpit.conf [WebService] LoginTitle=gophers land 更多参数,请参考 https://cockpit-project.org/guide/latest/cockpit.conf.5.html 编写一个rustdesk id viewer页面 创建目录结构 mkdir -p /usr/share/cockpit/rustdesk cd /usr/share/cockpit/rustdesk cockpit支持从下面两个位置获取配置 ~/.local/share/cockpit 在您的主目录中。它用于用户特定的包和您正在开发的包。您可以即时编辑这些内容并刷新浏览器以查看更改。 /usr/share/cockpit 和 /usr/share/local/cockpit是可供系统所有用户使用的已安装软件包的位置。更改此路径中的文件需要管理员(“root”)权限。在 Cockpit 运行时,不应更改这些内容。 因为涉及一些js库,我想复用原来的,所以我这里使用的是第二个位置。 可以通过cockpit-bridge --packages 查看已经安装的包: apps Applications /usr/share/cockpit/apps base1 /usr/share/cockpit/base1 metrics /usr/share/cockpit/metrics network Networking /usr/share/cockpit/networkmanager rustdesk RustDesk ID /usr/share/cockpit/rustdesk shell /usr/share/cockpit/shell static /usr/share/cockpit/static storage Storage /usr/share/cockpit/storaged system Overview, Services, Logs, Terminal /usr/share/cockpit/systemd updates Software updates /usr/share/cockpit/packagekit users Accounts /usr/share/cockpit/users 创建文件 manifest....

June 9, 2024 · 2 min · czyt

在树莓派3b上搭建GitHub Linux arm64 runner

最近需要在GitHub Action上自动构建一些软件,但是Github 不提供Arm64的runner,自能自建。 github 官方准备在2024年底开始为开源项目提供arm的runner 树莓派设置 Arch系统 安装基本软件 安装下面的这些软件,不同的构建可能有所区别: sudo pacman -S curl zip unzip tar cmake ninja docker Github Action 依赖于docker,所以我们需要安装好docker sudo pacman -S docker 然后将当前用户添加到docker的组 sudo usermod -aG docker $USER 查看和确认: grep docker /etc/group Ubuntu系统 安装基本软件 docker 安装前的配置 # Add Docker's official GPG key: sudo apt-get update sudo apt-get install ca-certificates curl sudo install -m 0755 -d /etc/apt/keyrings sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc sudo chmod a+r /etc/apt/keyrings/docker.asc # Add the repository to Apt sources: echo \ "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker....

May 22, 2024 · 2 min · czyt

让你的ssh连接更安全

缘起 最近服务器日志有一些ssh的暴力破解登录记录。所以尝试使用下面几个方案来保证ssh的安全。 修改ssh配置 对 SSH 进行安全加固可以通过多种不同的策略和手段来实行,以下是一些有效的措施: 禁用 Root 登录: 修改 SSH 配置文件 /etc/ssh/sshd_config 中的 PermitRootLogin 选项,将其设置为 no,以防止通过 SSH 使用 root 用户直接登录服务器。 使用公钥加密: 如前所述,通过使用基于密钥的认证来替代密码认证可以极大地提高安全性。 限制用户 SSH 访问: 在 /etc/ssh/sshd_config 中使用 AllowUsers 或 AllowGroups 指令来限制那些用户或者组可以通过 SSH 登录。同样,可以使用 DenyUsers 或 DenyGroups 以禁止特定用户或用户组的访问。 SSH 协议版本: 确保使用的是 SSH-2,因为 SSH-1 已知存在安全漏洞。 更改默认 SSH 端口: 修改配置文件中的 Port 选项,将 SSH 服务的监听端口从默认的 22 更改到其他值。 使用 TCPWrappers 限制访问: 通过 /etc/hosts.allow 和 /etc/hosts.deny 控制哪些 IP 地址允许或拒绝访问。 设置连接超时: 设置自动注销用户的超时时间,避免定期保持未使用的 SSH 会话。使用参数 ClientAliveInterval 和 ClientAliveCountMax 控制这些设置。 使用 Two-Factor Authentication(两因素认证): 安装并配置像 Google Authenticator 这样的两因素认证系统,要求用户在登录时提供密码以及来自手机或其他设备的一次性密码(OTP)。 使用 iptables 或 ufw 防火墙: 配置 Linux 防火墙以只允许特定的 IP 地址或 IP 范围来进行 SSH 连接。 限制最大登录尝试次数: 在 /etc/ssh/sshd_config 文件中设置 MaxAuthTries 限制登录尝试的次数。 使用复杂且定期更新的密码: 再次强调即使在启用密钥登录的情况下,也应该使用强密码并定期更新。 监控 SSH 访问日志: 定期查看 /var/log/auth....

April 2, 2024 · 3 min · czyt

为Mongodb安装Percona Monitoring and Management

Percona Monitoring and Management (PMM) 是一种开源数据库可观察性、监控和管理工具,可与 MySQL、PostgreSQL、MongoDB 及其运行的服务器一起使用。它使您能够在一个位置查看所有数据库的节点到单个查询的性能指标。通过查询分析,您可以快速找到成本高昂且运行缓慢的查询以解决瓶颈。此外,Percona Advisors 为您提供性能、安全性和配置建议,帮助您保持数据库保持最佳性能。备份、恢复和内置开源私有 DBaaS 等警报和管理功能旨在提高 IT 团队的工作速度。 软件安装 安装环境为Ubuntu 22.04,下面的步骤参考了Percona官网的安装文档 安装服务端 本安装需要Docker环境,如果当前机器没有安装Docker,脚本会自动进行安装 使用下面命令安装 curl -fsSL https://www.percona.com/get/pmm | /bin/bash 或者 curl -fsSL https://www.percona.com/get/pmm | /bin/bash 安装完毕以后,请稍等片刻会显示server的访问信息 Gathering/downloading required components, this may take a moment Checking docker installation - installed. Starting PMM server... Created PMM Data Volume: pmm-data Created PMM Server: pmm-server Use the following command if you ever need to update your container by hand: docker run -d -p 443:443 --volumes-from pmm-data --name pmm-server --restart always percona/pmm-server:2 PMM Server has been successfully setup on this system!...

November 18, 2023 · 2 min · czyt

在树莓派3b上部署minio服务

安装 我的树莓派安装的是manjaro,直接执行如下命令即可 yay -S minio 官方的安装文档开源参考 https://min.io/docs/minio/linux/operations/install-deploy-manage/deploy-minio-single-node-single-drive.html 启用服务 systemctl enable minio 修改配置 主要修改mino的设置文件,文件位置为/etc/minio/minio.conf # Local export path. MINIO_VOLUMES="/srv/minio/data/" # Server user. MINIO_ROOT_USER=gopher # Server password. MINIO_ROOT_PASSWORD=gopher # Use if you want to run Minio on a custom port. MINIO_OPTS="--console-address :8888" MINIO_SERVER_URL="https://minio.xxx.org" MINIO_BROWSER_REDIRECT_URL="https://minio-console.xxx.org" 修改 MINIO_OPTS 主要是为了自定义Console的端口,而这个参数主要是在service定义中使用,安装软件后自动使用的service(路径为/usr/lib/systemd/system/minio.service)定义如下 [Unit] Description=Minio Documentation=https://docs.minio.io Wants=network-online.target After=network-online.target AssertFileIsExecutable=/usr/bin/minio [Service] # Specifies the maximum file descriptor number that can be opened by this process LimitNOFILE=65536 Type=simple User=minio Group=minio EnvironmentFile=/etc/minio/minio....

April 12, 2023 · 1 min · czyt

命令行的艺术

*** 本文摘自项目** https://github.com/jlevy/the-art-of-command-line 命令行的艺术 前言 基础 日常使用 文件及数据处理 系统调试 单行脚本 冷门但有用 仅限 OS X 系统 仅限 Windows 系统 更多资源 免责声明 熟练使用命令行是一种常常被忽视,或被认为难以掌握的技能,但实际上,它会提高你作为工程师的灵活性以及生产力。本文是一份我在 Linux 上工作时,发现的一些命令行使用技巧的摘要。有些技巧非常基础,而另一些则相当复杂,甚至晦涩难懂。这篇文章并不长,但当你能够熟练掌握这里列出的所有技巧时,你就学会了很多关于命令行的东西了。 这篇文章是许多作者和译者共同的成果。 这里的部分内容 首次 出现 于 Quora, 但已经迁移到了 Github,并由众多高手做出了许多改进。 如果你在本文中发现了错误或者存在可以改善的地方,请贡献你的一份力量。 前言 涵盖范围: 这篇文章不仅能帮助刚接触命令行的新手,而且对具有经验的人也大有裨益。本文致力于做到覆盖面广(涉及所有重要的内容),具体(给出具体的最常用的例子),以及简洁(避免冗余的内容,或是可以在其他地方轻松查到的细枝末节)。在特定应用场景下,本文的内容属于基本功或者能帮助您节约大量的时间。 本文主要为 Linux 所写,但在仅限 OS X 系统章节和仅限 Windows 系统章节中也包含有对应操作系统的内容。除去这两个章节外,其它的内容大部分均可在其他类 Unix 系统或 OS X,甚至 Cygwin 中得到应用。 本文主要关注于交互式 Bash,但也有很多技巧可以应用于其他 shell 和 Bash 脚本当中。 除去“标准的”Unix 命令,本文还包括了一些依赖于特定软件包的命令(前提是它们具有足够的价值)。 注意事项: 为了能在一页内展示尽量多的东西,一些具体的信息可以在引用的页面中找到。我们相信机智的你知道如何使用 Google 或者其他搜索引擎来查阅到更多的详细信息。文中部分命令需要您使用 apt-get,yum,dnf,pacman, pip 或 brew(以及其它合适的包管理器)来安装依赖的程序。 遇到问题的话,请尝试使用 Explainshell 去获取相关命令、参数、管道等内容的解释。 基础 学习 Bash 的基础知识。具体地,在命令行中输入 man bash 并至少全文浏览一遍; 它理解起来很简单并且不冗长。其他的 shell 可能很好用,但 Bash 的功能已经足够强大并且到几乎总是可用的( 如果你只学习 zsh,fish 或其他的 shell 的话,在你自己的设备上会显得很方便,但过度依赖这些功能会给您带来不便,例如当你需要在服务器上工作时)。...

February 2, 2023 · 9 min · czyt

在Alibaba Cloud Linux上安装MongoDB

安装步骤 查询系统版本 执行命令lsb_release -a返回下面的内容 LSB Version: :core-4.1-amd64:core-4.1-noarch Distributor ID: AlibabaCloud Description: Alibaba Cloud Linux release 3 (Soaring Falcon) Release: 3 Codename: SoaringFalcon 添加yum源 创建repo文件etc/yum.repos.d/mongodb.repo并输入下面的内容,这里安装的mongodb版本为6.0,其他版本请参考官网(配置偶数版本,奇数版不适合生产使用)。 官网的配置文件如下: [mongodb-org-6.0] name=MongoDB Repository baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/6.0/x86_64/ gpgcheck=1 enabled=1 gpgkey=https://www.mongodb.org/static/pgp/server-6.0.asc 使用这个配置文件是安装不了的,需要修改$releasever为相应的版本,Alibaba Cloud Linux 3修改为8 (设置一个releasever的环境变量也许也可以,没有验证。)即可。即下面的样子 [mongodb-org-6.0] name=MongoDB Repository baseurl=https://repo.mongodb.org/yum/redhat/8/mongodb-org/6.0/x86_64/ gpgcheck=1 enabled=1 gpgkey=https://www.mongodb.org/static/pgp/server-6.0.asc 使用命令 yum -y install mongodb-org 安装即可。另外阿里云也提供了国内的镜像源,上面的配置文件可以修改为下面的内容,也是等效的。 [mongodb-org-6.0] name=MongoDB Repository baseurl=http://mirrors.aliyun.com/mongodb/yum/redhat/8/mongodb-org/6.0/x86_64/ gpgcheck=1 enabled=1 gpgkey=https://www.mongodb.org/static/pgp/server-6.0.asc 参考链接 如何在Alibaba Cloud Linux 3上安装MongoDB 5.0

August 30, 2022 · 1 min · czyt

ETCD一键安装脚本

最近要使用ETCD,脚本根据官方GitHub脚本修改而来 #!/usr/bin/bash ETCD_VER=v3.5.4 # choose either URL GOOGLE_URL=https://storage.googleapis.com/etcd GITHUB_URL=https://fastgit.czyt.tech/https://github.com/etcd-io/etcd/releases/download ARCH=linux-arm64 DOWNLOAD_URL=${GITHUB_URL} INSTALL_DIR=/opt/etcd rm -f /tmp/etcd-${ETCD_VER}-${ARCH}.tar.gz rm -rf ${INSTALL_DIR} && mkdir -p ${INSTALL_DIR} curl -L ${DOWNLOAD_URL}/${ETCD_VER}/etcd-${ETCD_VER}-${ARCH}.tar.gz -o /tmp/etcd-${ETCD_VER}-${ARCH}.tar.gz tar xzvf /tmp/etcd-${ETCD_VER}-${ARCH}.tar.gz -C ${INSTALL_DIR} --strip-components=1 rm -f /tmp/etcd-${ETCD_VER}-${ARCH}.tar.gz ${INSTALL_DIR}/etcd --version ${INSTALL_DIR}/etcdctl version ${INSTALL_DIR}/etcdutl version 其中的ARCH请根据实际情况修改。 参考 https://etcd.io/docs/v3.5/demo/

July 21, 2022 · 1 min · czyt

Linux环境下Perl提权

事故起因 我们公司的应用程序部署目录有个bin目录,手误,删除的时候输入的是/bin 事故现象 ● SSH 不能登陆进来了 ● ls、chmod等常用命令都不能使用了 ● wget 还能用 事故解决 通过查找谷歌,发现有个perl带有提权的功能,简单来说就是 perl -e "chmod 0777, '/bin/ls'" 通过这个方式可以对指定的文件进行权限的修改。于是从另外的机器上打包了一个/bin目录,放到网上,wget 下载到本地wget bin.tar.gz ​ 本机开外网ssh转发,scp 拷贝tar文件到目录,执行 perl -e "chmod 0777, './tar'" ,再使用tar进行文件解压./tar xvzf bin.tar.gz -C /,然后再给chmod执行文件赋予执行权限 perl -e "chmod 0777, '/bin/chmod'" 然后再通过chmod 执行 chmod -R +x /bin/给/bin目录下的可执行程序文件授予执行权限。至此,完成事故修复。 参考连接 ● https://perldoc.perl.org/functions/chmod.html

June 17, 2022 · 1 min · czyt