<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>服务器 on 码农阿楠</title><link>https://airnan.cn/tags/%E6%9C%8D%E5%8A%A1%E5%99%A8/</link><description>Recent content in 服务器 on 码农阿楠</description><generator>Hugo -- gohugo.io</generator><language>zh-cn</language><lastBuildDate>Mon, 09 Mar 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://airnan.cn/tags/%E6%9C%8D%E5%8A%A1%E5%99%A8/index.xml" rel="self" type="application/rss+xml"/><item><title>Linux 下纯命令行方式安装 Parallels Tools</title><link>https://airnan.cn/p/linux-%E4%B8%8B%E7%BA%AF%E5%91%BD%E4%BB%A4%E8%A1%8C%E6%96%B9%E5%BC%8F%E5%AE%89%E8%A3%85-parallels-tools/</link><pubDate>Mon, 09 Mar 2026 00:00:00 +0000</pubDate><guid>https://airnan.cn/p/linux-%E4%B8%8B%E7%BA%AF%E5%91%BD%E4%BB%A4%E8%A1%8C%E6%96%B9%E5%BC%8F%E5%AE%89%E8%A3%85-parallels-tools/</guid><description>&lt;img src="https://airnan.cn/upload/image-zDvm.png" alt="Featured image of post Linux 下纯命令行方式安装 Parallels Tools" /&gt;&#10; &lt;blockquote&gt;&#10; &lt;p&gt;主要针对自行安装的无图形化界面的Linux发行版&lt;/p&gt;&#10;&#10; &lt;/blockquote&gt;&#10;&lt;h2 id="一连接镜像"&gt;一、连接镜像&#10;&lt;/h2&gt;&lt;p&gt;Parallels Tools镜像存放在如下位置&lt;/p&gt;&#10;&lt;pre&gt;&lt;code&gt;/Applications/Parallels Desktop.app/Contents/Resources/Tools/prl-tools-lin-arm.iso&#10;&lt;/code&gt;&lt;/pre&gt;&#10;&lt;p&gt;&lt;img loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://airnan.cn/upload/image-QkBN.png"&gt;&lt;/p&gt;&#10;&lt;h2 id="二挂载镜像"&gt;二、挂载镜像&#10;&lt;/h2&gt;&lt;h3 id="步骤一创建挂载目录"&gt;步骤一：创建挂载目录&#10;&lt;/h3&gt;&lt;pre&gt;&lt;code&gt;sudo mkdir /mnt/cdrom&#10;&lt;/code&gt;&lt;/pre&gt;&#10;&lt;h3 id="步骤二挂载镜像"&gt;步骤二：挂载镜像&#10;&lt;/h3&gt;&lt;p&gt;将光盘镜像内容挂载到刚刚创建的目录中&lt;/p&gt;&#10;&lt;pre&gt;&lt;code&gt;sudo mount /dev/cdrom /mnt/cdrom&#10;&lt;/code&gt;&lt;/pre&gt;&#10;&lt;h2 id="三安装-parallels-tools"&gt;三、安装 Parallels Tools&#10;&lt;/h2&gt;&lt;p&gt;进入刚刚创建的目录&lt;/p&gt;&#10;&lt;pre&gt;&lt;code&gt;cd /mnt/cdrom&#10;&lt;/code&gt;&lt;/pre&gt;&#10;&lt;p&gt;执行安装脚本&lt;/p&gt;&#10;&lt;pre&gt;&lt;code&gt;sudo ./install&#10;&lt;/code&gt;&lt;/pre&gt;&#10;&lt;p&gt;等待安装完成即可&lt;/p&gt;&#10;</description></item><item><title>Linux 下二进制方式离线安装 Docker</title><link>https://airnan.cn/p/linux-%E4%B8%8B%E4%BA%8C%E8%BF%9B%E5%88%B6%E6%96%B9%E5%BC%8F%E7%A6%BB%E7%BA%BF%E5%AE%89%E8%A3%85-docker/</link><pubDate>Sun, 08 Mar 2026 00:00:00 +0000</pubDate><guid>https://airnan.cn/p/linux-%E4%B8%8B%E4%BA%8C%E8%BF%9B%E5%88%B6%E6%96%B9%E5%BC%8F%E7%A6%BB%E7%BA%BF%E5%AE%89%E8%A3%85-docker/</guid><description>&lt;img src="https://airnan.cn/upload/image-KaCf.png" alt="Featured image of post Linux 下二进制方式离线安装 Docker" /&gt;&lt;p&gt;&lt;img loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://airnan.cn/upload/image-KaCf.png"&gt;&lt;/p&gt;&#10;&lt;p&gt;本教程以&lt;code&gt;kylin_server_v10_x86_64&lt;/code&gt;为例，核心思路也适用于其他Linux操作系统和架构&lt;/p&gt;&#10;&lt;p&gt;&lt;strong&gt;参考官方文档&lt;/strong&gt;&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;Docker Engine 二进制安装：&lt;a class="link" href="https://docs.docker.com/engine/install/binaries/" target="_blank" rel="noopener"&#10; &gt;https://docs.docker.com/engine/install/binaries/&lt;/a&gt;&lt;/p&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;Docker Compose 插件手动安装：&lt;a class="link" href="https://docs.docker.com/compose/install/linux/#install-the-plugin-manually" target="_blank" rel="noopener"&#10; &gt;https://docs.docker.com/compose/install/linux/#install-the-plugin-manually&lt;/a&gt;&lt;/p&gt;&#10;&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;h2 id="一下载所需离线包"&gt;一、下载所需离线包&#10;&lt;/h2&gt;&lt;p&gt;需下载 2 个核心离线文件，建议统一传输到服务器&lt;code&gt;/tmp/docker-offline/&lt;/code&gt;目录（下文均以此路径为例）：&lt;/p&gt;&#10;&lt;h3 id="离线包-1docker-engine-静态二进制包"&gt;离线包 1：Docker Engine 静态二进制包&#10;&lt;/h3&gt;&lt;ul&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;官方下载地址：&lt;a class="link" href="https://download.docker.com/linux/static/stable/" target="_blank" rel="noopener"&#10; &gt;https://download.docker.com/linux/static/stable/&lt;/a&gt;&lt;/p&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;选择 x86_64 架构目录，下载指定版本（示例为 29.3.0）：&lt;a class="link" href="https://download.docker.com/linux/static/stable/x86_64/docker-29.3.0.tgz" target="_blank" rel="noopener"&#10; &gt;https://download.docker.com/linux/static/stable/x86_64/docker-29.3.0.tgz&lt;/a&gt;&lt;/p&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;文件名格式：&lt;code&gt;docker-&amp;lt;版本号&amp;gt;.tgz&lt;/code&gt;（官方标准命名）&lt;/p&gt;&#10;&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;h3 id="离线包-2docker-compose-插件二进制文件"&gt;离线包 2：Docker Compose 插件二进制文件&#10;&lt;/h3&gt;&lt;ul&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;官方下载地址：&lt;a class="link" href="https://github.com/docker/compose/releases" target="_blank" rel="noopener"&#10; &gt;https://github.com/docker/compose/releases&lt;/a&gt;&lt;/p&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;下载对应架构版本（示例为 v5.0.1）：&lt;a class="link" href="https://github.com/docker/compose/releases/download/v5.0.1/docker-compose-linux-x86_64" target="_blank" rel="noopener"&#10; &gt;https://github.com/docker/compose/releases/download/v5.0.1/docker-compose-linux-x86_64&lt;/a&gt;&lt;/p&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;文件名：&lt;code&gt;docker-compose-linux-x86_64&lt;/code&gt;（官方原生命名，不可随意修改）&lt;/p&gt;&#10;&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;p&gt;下载完成后，服务器&lt;code&gt;/tmp/docker-offline/&lt;/code&gt;目录下应包含：&lt;code&gt;docker-29.3.0.tgz&lt;/code&gt;、&lt;code&gt;docker-compose-linux-x86_64&lt;/code&gt;。&lt;/p&gt;&#10;&lt;h2 id="二docker-engine-离线安装"&gt;二、Docker Engine 离线安装&#10;&lt;/h2&gt;&lt;p&gt;基于官方二进制安装逻辑，适配麒麟 V10 的 systemd 服务管理（实现开机自启 + 后台运行），全程使用具体文件名操作。&lt;/p&gt;&#10;&lt;h3 id="步骤-1创建目录并解压离线包"&gt;步骤 1：创建目录并解压离线包&#10;&lt;/h3&gt;&lt;pre&gt;&lt;code&gt;# 确保离线文件存放目录存在（若已创建可跳过）&#10;mkdir -p /tmp/docker-offline&#10;# 进入离线包核心目录&#10;cd /tmp/docker-offline&#10;# 解压Docker Engine静态包（使用具体文件名）&#10;tar xzvf docker-29.3.0.tgz docker&#10;&lt;/code&gt;&lt;/pre&gt;&#10;&lt;p&gt;解压后会生成&lt;code&gt;docker&lt;/code&gt;目录，内含&lt;code&gt;dockerd&lt;/code&gt;、&lt;code&gt;docker&lt;/code&gt;等核心二进制文件。&lt;/p&gt;&#10;&lt;h3 id="步骤-2将二进制文件移至系统可执行路径"&gt;步骤 2：将二进制文件移至系统可执行路径&#10;&lt;/h3&gt;&lt;p&gt;将解压后的二进制文件移至&lt;code&gt;/usr/bin/&lt;/code&gt;，实现系统全局调用：&lt;/p&gt;&#10;&lt;pre&gt;&lt;code&gt;sudo cp docker/* /usr/bin/&#10;# 可选：验证文件是否成功移动&#10;ls -lh /usr/bin/ | grep -E &amp;quot;dockerd|docker&amp;quot;&#10;&lt;/code&gt;&lt;/pre&gt;&#10;&lt;h3 id="步骤-3配置-systemd-服务"&gt;步骤 3：配置 systemd 服务&#10;&lt;/h3&gt;&lt;p&gt;官方仅提供临时启动方式，为适配服务器生产环境，需配置 systemd 服务实现规范化管理：&lt;/p&gt;&#10;&lt;pre&gt;&lt;code&gt;# 创建并写入docker服务配置文件&#10;sudo tee /etc/systemd/system/docker.service &amp;lt;&amp;lt;-'EOF'&#10;[Unit]&#10;Description=Docker Application Container Engine&#10;Documentation=https://docs.docker.com&#10;After=network-online.target firewalld.service&#10;Wants=network-online.target&#10;&#10;[Service]&#10;Type=notify&#10;ExecStart=/usr/bin/dockerd&#10;ExecReload=/bin/kill -s HUP $MAINPID&#10;TimeoutSec=0&#10;RestartSec=2&#10;Restart=always&#10;SuccessExitStatus=0 1&#10;&#10;[Install]&#10;WantedBy=multi-user.target&#10;EOF&#10;&lt;/code&gt;&lt;/pre&gt;&#10;&lt;h3 id="步骤-4重载-systemd-并启动-docker-服务"&gt;步骤 4：重载 systemd 并启动 Docker 服务&#10;&lt;/h3&gt;&lt;pre&gt;&lt;code&gt;# 重载systemd配置，使新的docker服务生效&#10;sudo systemctl daemon-reload&#10;# 启动Docker服务&#10;sudo systemctl start docker&#10;# 可选：设置开机自启（服务器推荐）&#10;sudo systemctl enable docker&#10;# 可选：验证服务运行状态（无error即为正常）&#10;sudo systemctl status docker&#10;&lt;/code&gt;&lt;/pre&gt;&#10;&lt;h3 id="步骤-5验证-docker-engine-安装成功"&gt;步骤 5：验证 Docker Engine 安装成功&#10;&lt;/h3&gt;&lt;pre&gt;&lt;code&gt;# 核心验证：输出版本号即为安装成功&#10;docker --version&#10;&lt;/code&gt;&lt;/pre&gt;&#10;&lt;p&gt;&lt;strong&gt;成功标识&lt;/strong&gt;：输出&lt;code&gt;Docker version 29.3.0, build xxxxxxx&lt;/code&gt;（与下载的版本号一致）。&lt;/p&gt;&#10;&lt;h2 id="三docker-compose-插件-离线安装"&gt;三、Docker Compose 插件 离线安装&#10;&lt;/h2&gt;&lt;p&gt;基于官方 “手动安装插件” 逻辑，使用原生文件名操作，提供全局安装方式（所有用户可用，服务器推荐）。&lt;/p&gt;&#10;&lt;h3 id="步骤-1进入离线文件目录并创建插件目录"&gt;步骤 1：进入离线文件目录并创建插件目录&#10;&lt;/h3&gt;&lt;pre&gt;&lt;code&gt;# 回到离线文件核心目录&#10;cd /tmp/docker-offline&#10;# 创建Docker Compose插件官方标准目录（不可修改）&#10;sudo mkdir -p /usr/local/lib/docker/cli-plugins&#10;&lt;/code&gt;&lt;/pre&gt;&#10;&lt;h3 id="步骤-2移动并重命名插件文件"&gt;步骤 2：移动并重命名插件文件&#10;&lt;/h3&gt;&lt;p&gt;将原生文件&lt;code&gt;docker-compose-linux-x86_64&lt;/code&gt;移至插件目录，并标准化命名（使&lt;code&gt;docker&lt;/code&gt;命令可直接识别）：&lt;/p&gt;&#10;&lt;pre&gt;&lt;code&gt;# 核心操作：移动并命名为docker-compose（官方标准）&#10;sudo cp docker-compose-linux-x86_64 /usr/local/lib/docker/cli-plugins/docker-compose&#10;&lt;/code&gt;&lt;/pre&gt;&#10;&lt;h3 id="步骤-3添加可执行权限"&gt;步骤 3：添加可执行权限&#10;&lt;/h3&gt;&lt;pre&gt;&lt;code&gt;sudo chmod +x /usr/local/lib/docker/cli-plugins/docker-compose&#10;&lt;/code&gt;&lt;/pre&gt;&#10;&lt;h3 id="步骤-4验证-docker-compose-安装成功"&gt;步骤 4：验证 Docker Compose 安装成功&#10;&lt;/h3&gt;&lt;pre&gt;&lt;code&gt;# 官方标准验证命令&#10;docker compose version&#10;&lt;/code&gt;&lt;/pre&gt;&#10;&lt;p&gt;&lt;strong&gt;成功标识&lt;/strong&gt;：输出&lt;code&gt;Docker Compose version v5.0.1&lt;/code&gt;（与下载的插件版本号一致）。&lt;/p&gt;&#10;&lt;h2 id="四可能遇到的runc-错误"&gt;四、可能遇到的&lt;code&gt;runc&lt;/code&gt; 错误&#10;&lt;/h2&gt;&#10; &lt;blockquote&gt;&#10; &lt;p&gt;该问题会导致容器出现权限问题而无法启动，主要在Kylin操作系统上出现&lt;/p&gt;&#10;&#10; &lt;/blockquote&gt;&#10;&lt;h3 id="报错信息"&gt;报错信息&#10;&lt;/h3&gt;&lt;pre&gt;&lt;code&gt;Error response from daemon: failed to create task for container: failed to create shim task: OCI runtime create failed: container_linux.go:329: starting container process caused &amp;quot;permission denied&amp;quot;&#10;&lt;/code&gt;&lt;/pre&gt;&#10;&lt;h3 id="解决方法一"&gt;解决方法一&#10;&lt;/h3&gt;&#10; &lt;blockquote&gt;&#10; &lt;p&gt;针对系统存在多个runc的情况&lt;/p&gt;&#10;&#10; &lt;/blockquote&gt;&#10;&lt;p&gt;&lt;!-- raw HTML omitted --&gt;检查当前系统存在的runc&lt;!-- raw HTML omitted --&gt;&lt;/p&gt;&#10;&lt;pre&gt;&lt;code&gt;whereis runc&#10;&lt;/code&gt;&lt;/pre&gt;&#10;&lt;p&gt;&lt;!-- raw HTML omitted --&gt;若有两个，则删除其中一个（或改名并备份到其他位置）&lt;!-- raw HTML omitted --&gt;&lt;/p&gt;&#10;&lt;h3 id="解决方法二"&gt;解决方法二&#10;&lt;/h3&gt;&#10; &lt;blockquote&gt;&#10; &lt;p&gt;针对runc版本太低的情况&lt;/p&gt;&#10;&#10; &lt;/blockquote&gt;&#10;&lt;p&gt;下载&lt;code&gt;runc&lt;/code&gt;的最新版本：&lt;a class="link" href="https://github.com/opencontainers/runc/releases" target="_blank" rel="noopener"&#10; &gt;https://github.com/opencontainers/runc/releases&lt;/a&gt;，并替换本地的1.0.0-rc3版本&lt;/p&gt;&#10;&lt;pre&gt;&lt;code&gt;sudo mv -f runc.amd64 /usr/bin/runc&#10;&lt;/code&gt;&lt;/pre&gt;&#10;&lt;p&gt;设置可执行权限&lt;/p&gt;&#10;&lt;pre&gt;&lt;code&gt;sudo chmod +x /usr/bin/runc&#10;&lt;/code&gt;&lt;/pre&gt;&#10;</description></item><item><title>Ubuntu修改默认SSH端口号</title><link>https://airnan.cn/p/ubuntu%E4%BF%AE%E6%94%B9%E9%BB%98%E8%AE%A4ssh%E7%AB%AF%E5%8F%A3%E5%8F%B7/</link><pubDate>Tue, 29 Oct 2024 00:00:00 +0000</pubDate><guid>https://airnan.cn/p/ubuntu%E4%BF%AE%E6%94%B9%E9%BB%98%E8%AE%A4ssh%E7%AB%AF%E5%8F%A3%E5%8F%B7/</guid><description>&lt;img src="https://airnan.cn/upload/image-hlzd.png" alt="Featured image of post Ubuntu修改默认SSH端口号" /&gt;&lt;h2 id="一编辑ssh配置文件"&gt;一、编辑SSH配置文件&#10;&lt;/h2&gt;&lt;pre&gt;&lt;code&gt;sudo vi /etc/ssh/sshd_config&#10;&lt;/code&gt;&lt;/pre&gt;&#10;&lt;h2 id="二自定义端口号"&gt;二、自定义端口号&#10;&lt;/h2&gt;&lt;p&gt;找到Port行，删除井号（解除注释），修改22为自定义端口号，例如：1234，然后保存&lt;/p&gt;&#10;&lt;pre&gt;&lt;code&gt;Port 1234&#10;&lt;/code&gt;&lt;/pre&gt;&#10;&lt;h2 id="三重启ssh服务"&gt;三、重启SSH服务&#10;&lt;/h2&gt;&lt;p&gt;如果是云服务器，请务必确认安全组已放行新端口&lt;/p&gt;&#10;&lt;pre&gt;&lt;code&gt;sudo /etc/init.d/ssh restart&#10;&lt;/code&gt;&lt;/pre&gt;&#10;&lt;h2 id="四云服务器关闭原端口"&gt;四、云服务器关闭原端口&#10;&lt;/h2&gt;&lt;p&gt;经测试无误后在云服务器安全组中删除22端口放行规则即可。&lt;/p&gt;&#10;</description></item></channel></rss>