<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/">
  <channel>
    <title>技术 on sixdian</title>
    <link>https://sixdian.com/categories/%E6%8A%80%E6%9C%AF/</link>
    <description>Recent content in 技术 on sixdian</description>
    <image>
      <title>sixdian</title>
      <url>https://sixdian.com/image/150x150.webp</url>
      <link>https://sixdian.com/image/150x150.webp</link>
    </image>
    <generator>Hugo -- 0.154.0</generator>
    <language>zh-CN</language>
    <lastBuildDate>Mon, 01 Sep 2025 18:30:17 +0800</lastBuildDate>
    <atom:link href="https://sixdian.com/categories/%E6%8A%80%E6%9C%AF/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>利用 Docker 搭建 AdGuard Home</title>
      <link>https://sixdian.com/post/adguardhome/</link>
      <pubDate>Mon, 01 Sep 2025 18:30:17 +0800</pubDate>
      <guid>https://sixdian.com/post/adguardhome/</guid>
      <description>&lt;p&gt;AdGuard Home 是一款广告拦截和追踪工具。将它作为 DNS 服务器运行，并根据需求配置自定义规则后，可将特定域名（如：广告、弹窗、影片、文字、横幅、跟踪、恶意或钓鱼网站等）重新路由到“黑洞”，从而阻止您的设备连接到这些服务器，且无需在设备上安装任何客户端软件。&lt;/p&gt;
&lt;p&gt;下面介绍用 Docker Compose 方式在 VPS 上搭建及设置 AdGuard Home ：&lt;/p&gt;
&lt;h2 id=&#34;新建-adguard-home-目录&#34;&gt;新建 AdGuard Home 目录&lt;/h2&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-fallback&#34; data-lang=&#34;fallback&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;mkdir adguardhome
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;cd adguardhome
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;mkdir work conf
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id=&#34;创建-docker-composeyml-文件&#34;&gt;创建 docker-compose.yml 文件&lt;/h2&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-fallback&#34; data-lang=&#34;fallback&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;services:
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  adguardhome:
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    image: adguard/adguardhome
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    container_name: adguardhome
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    restart: unless-stopped
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    ports:
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;      - &amp;#34;53:53/tcp&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;      - &amp;#34;53:53/udp&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;      - &amp;#34;3000:3000/tcp&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    volumes:
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;      - ./work:/opt/adguardhome/work
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;      - ./conf:/opt/adguardhome/conf
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    environment:
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;      TZ: Asia/Shanghai
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id=&#34;启动-adguardhome-容器&#34;&gt;启动 adguardhome 容器&lt;/h2&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-fallback&#34; data-lang=&#34;fallback&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;docker compose up -d
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;此时在浏览器输入 VPS 的 IP 地址 + 端口（以上配置文件端口为 3000 ）即可进入 AdGuard Home 主页
&lt;figure&gt;
    &lt;img loading=&#34;lazy&#34; src=&#34;https://sixdian.com/image/adguardhome/1.webp&#34; width=&#34;100%&#34;/&gt; 
&lt;/figure&gt;
&lt;/p&gt;</description>
    </item>
    <item>
      <title>使用 Watchtower 自动更新 Docker 容器</title>
      <link>https://sixdian.com/post/watchtower/</link>
      <pubDate>Fri, 29 Aug 2025 11:19:20 +0800</pubDate>
      <guid>https://sixdian.com/post/watchtower/</guid>
      <description>&lt;p&gt;Watchtower 是一款开源工具，专为 Docker 平台设计。它可以监控正在运行中的 Docker 容器，并监视这些容器是否有新版本可用。如果 Watchtower 检测到镜像发布了新版本，它将自动拉取新镜像并使用相同的选项重启容器。从而简化了容器维护的流程，减少手动干预。&lt;/p&gt;
&lt;p&gt;使用 Docker Compose 部署 Watchtower 是推荐且灵活的方式，它能更好的管理容器配置。&lt;/p&gt;
&lt;h2 id=&#34;docker-compose-部署-watchtower-操作步骤&#34;&gt;Docker Compose 部署 Watchtower 操作步骤&lt;/h2&gt;
&lt;h3 id=&#34;创建-docker-compose-文件&#34;&gt;创建 Docker Compose 文件&lt;/h3&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-fallback&#34; data-lang=&#34;fallback&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;mkdir docker-compose.yml
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id=&#34;编辑-docker-composeyml-文件&#34;&gt;编辑 docker-compose.yml 文件&lt;/h3&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-gdscript3&#34; data-lang=&#34;gdscript3&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    services:
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;      watchtower:
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        image: nickfedor&lt;span style=&#34;color:#f92672&#34;&gt;/&lt;/span&gt;watchtower &lt;span style=&#34;color:#75715e&#34;&gt;# 指定Watchtower镜像版本&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        container_name: watchtower   &lt;span style=&#34;color:#75715e&#34;&gt;# 定义容器名称&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        volumes:
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;          &lt;span style=&#34;color:#f92672&#34;&gt;-&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;/&lt;/span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;var&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;/&lt;/span&gt;run&lt;span style=&#34;color:#f92672&#34;&gt;/&lt;/span&gt;docker&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;sock:&lt;span style=&#34;color:#f92672&#34;&gt;/&lt;/span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;var&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;/&lt;/span&gt;run&lt;span style=&#34;color:#f92672&#34;&gt;/&lt;/span&gt;docker&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;sock &lt;span style=&#34;color:#75715e&#34;&gt;# 挂载Docker Socket，使Watchtower能与Docker守护进程通信&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        environment:
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;          &lt;span style=&#34;color:#f92672&#34;&gt;-&lt;/span&gt; &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;TZ=Asia/Shanghai&amp;#39;&lt;/span&gt;               &lt;span style=&#34;color:#75715e&#34;&gt;# 设置时区，例如：Asia/Shanghai&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;          &lt;span style=&#34;color:#f92672&#34;&gt;-&lt;/span&gt; &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;WATCHTOWER_POLL_INTERVAL=86400&amp;#39;&lt;/span&gt; &lt;span style=&#34;color:#75715e&#34;&gt;# 设置轮询间隔，单位秒。默认为86400秒（24小时）&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;          &lt;span style=&#34;color:#f92672&#34;&gt;-&lt;/span&gt; &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;WATCHTOWER_CLEANUP=true&amp;#39;&lt;/span&gt;        &lt;span style=&#34;color:#75715e&#34;&gt;# 更新后自动删除旧镜像，可选&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;          &lt;span style=&#34;color:#f92672&#34;&gt;-&lt;/span&gt; &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;WATCHTOWER_NOTIFICATIONS=email&amp;#39;&lt;/span&gt; &lt;span style=&#34;color:#75715e&#34;&gt;# 配置通知方式，例如：email, slack, discord等&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;          &lt;span style=&#34;color:#f92672&#34;&gt;-&lt;/span&gt; &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;WATCHTOWER_NOTIFICATION_EMAIL_FROM=sender@example.com&amp;#39;&lt;/span&gt; &lt;span style=&#34;color:#75715e&#34;&gt;# 设置发送电子邮件地址&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;          &lt;span style=&#34;color:#f92672&#34;&gt;-&lt;/span&gt; &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;WATCHTOWER_NOTIFICATION_EMAIL_TO=recipient@example.com&amp;#39;&lt;/span&gt; &lt;span style=&#34;color:#75715e&#34;&gt;# 设置接收电子邮件地址&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;          &lt;span style=&#34;color:#f92672&#34;&gt;-&lt;/span&gt; &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;WATCHTOWER_NOTIFICATION_EMAIL_SERVER=smtp.example.com&amp;#39;&lt;/span&gt; &lt;span style=&#34;color:#75715e&#34;&gt;# 设置发送电子邮件服务器&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;          &lt;span style=&#34;color:#f92672&#34;&gt;-&lt;/span&gt; &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;WATCHTOWER_NOTIFICATION_EMAIL_SERVER_PORT=587&amp;#39;&lt;/span&gt; &lt;span style=&#34;color:#75715e&#34;&gt;# 设置发送电子邮件服务器端口&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;          &lt;span style=&#34;color:#f92672&#34;&gt;-&lt;/span&gt; &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;WATCHTOWER_NOTIFICATION_EMAIL_SERVER_USER=user&amp;#39;&lt;/span&gt; &lt;span style=&#34;color:#75715e&#34;&gt;# 设置邮件服务器用户名&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;          &lt;span style=&#34;color:#f92672&#34;&gt;-&lt;/span&gt; &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;WATCHTOWER_NOTIFICATION_EMAIL_SERVER_PASSWORD=password&amp;#39;&lt;/span&gt; &lt;span style=&#34;color:#75715e&#34;&gt;# 设置邮件服务器密码&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        restart: unless&lt;span style=&#34;color:#f92672&#34;&gt;-&lt;/span&gt;stopped              &lt;span style=&#34;color:#75715e&#34;&gt;# 设置容器重启策略，除非手动停止，否则自动重启&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        command: &lt;span style=&#34;color:#f92672&#34;&gt;--&lt;/span&gt;schedule &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;0 0 3 * * ?&amp;#34;&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;--&lt;/span&gt;cleanup nginx hysteria &lt;span style=&#34;color:#75715e&#34;&gt;# 定时任务：每天凌晨3点执行更新并删除旧镜像&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;更多配置选项：&lt;/p&gt;</description>
    </item>
    <item>
      <title>Nginx、Hysteria 的 Docker 部署实践</title>
      <link>https://sixdian.com/post/nginx-hysteria-docker/</link>
      <pubDate>Thu, 28 Aug 2025 10:18:28 +0800</pubDate>
      <guid>https://sixdian.com/post/nginx-hysteria-docker/</guid>
      <description>&lt;h2 id=&#34;docker-部署-nginx&#34;&gt;Docker 部署 Nginx&lt;/h2&gt;
&lt;h3 id=&#34;安装-docker-engine&#34;&gt;安装 Docker Engine&lt;/h3&gt;
&lt;h4 id=&#34;设置-docker-的-apt存储库&#34;&gt;设置 Docker 的 apt存储库&lt;/h4&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-gdscript3&#34; data-lang=&#34;gdscript3&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;# Add Docker&amp;#39;s official GPG key:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;sudo apt&lt;span style=&#34;color:#f92672&#34;&gt;-&lt;/span&gt;get update
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;sudo apt&lt;span style=&#34;color:#f92672&#34;&gt;-&lt;/span&gt;get install ca&lt;span style=&#34;color:#f92672&#34;&gt;-&lt;/span&gt;certificates curl
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;sudo install &lt;span style=&#34;color:#f92672&#34;&gt;-&lt;/span&gt;m &lt;span style=&#34;color:#ae81ff&#34;&gt;0755&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;-&lt;/span&gt;d &lt;span style=&#34;color:#f92672&#34;&gt;/&lt;/span&gt;etc&lt;span style=&#34;color:#f92672&#34;&gt;/&lt;/span&gt;apt&lt;span style=&#34;color:#f92672&#34;&gt;/&lt;/span&gt;keyrings
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;sudo curl &lt;span style=&#34;color:#f92672&#34;&gt;-&lt;/span&gt;fsSL https:&lt;span style=&#34;color:#f92672&#34;&gt;//&lt;/span&gt;download&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;docker&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;com&lt;span style=&#34;color:#f92672&#34;&gt;/&lt;/span&gt;linux&lt;span style=&#34;color:#f92672&#34;&gt;/&lt;/span&gt;debian&lt;span style=&#34;color:#f92672&#34;&gt;/&lt;/span&gt;gpg &lt;span style=&#34;color:#f92672&#34;&gt;-&lt;/span&gt;o &lt;span style=&#34;color:#f92672&#34;&gt;/&lt;/span&gt;etc&lt;span style=&#34;color:#f92672&#34;&gt;/&lt;/span&gt;apt&lt;span style=&#34;color:#f92672&#34;&gt;/&lt;/span&gt;keyrings&lt;span style=&#34;color:#f92672&#34;&gt;/&lt;/span&gt;docker&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;asc
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;sudo chmod a&lt;span style=&#34;color:#f92672&#34;&gt;+&lt;/span&gt;r &lt;span style=&#34;color:#f92672&#34;&gt;/&lt;/span&gt;etc&lt;span style=&#34;color:#f92672&#34;&gt;/&lt;/span&gt;apt&lt;span style=&#34;color:#f92672&#34;&gt;/&lt;/span&gt;keyrings&lt;span style=&#34;color:#f92672&#34;&gt;/&lt;/span&gt;docker&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;asc
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;# Add the repository to Apt sources:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;echo \
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/debian &lt;/span&gt;&lt;span style=&#34;color:#ae81ff&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;  $(. /etc/os-release &amp;amp;&amp;amp; echo &amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;$&lt;/span&gt;VERSION_CODENAME&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;) stable&amp;#34;&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt; \
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  sudo tee &lt;span style=&#34;color:#f92672&#34;&gt;/&lt;/span&gt;etc&lt;span style=&#34;color:#f92672&#34;&gt;/&lt;/span&gt;apt&lt;span style=&#34;color:#f92672&#34;&gt;/&lt;/span&gt;sources&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;list&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;d&lt;span style=&#34;color:#f92672&#34;&gt;/&lt;/span&gt;docker&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;list &lt;span style=&#34;color:#f92672&#34;&gt;&amp;gt;&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;/&lt;/span&gt;dev&lt;span style=&#34;color:#f92672&#34;&gt;/&lt;/span&gt;null
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;sudo apt&lt;span style=&#34;color:#f92672&#34;&gt;-&lt;/span&gt;get update
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h4 id=&#34;安装-docker-包&#34;&gt;安装 Docker 包&lt;/h4&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-fallback&#34; data-lang=&#34;fallback&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h4 id=&#34;运行一个测试镜像验证安装是否成功&#34;&gt;运行一个测试镜像验证安装是否成功&lt;/h4&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-fallback&#34; data-lang=&#34;fallback&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;sudo docker run hello-world
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id=&#34;docker-compose-方式部署-nginx&#34;&gt;docker-compose 方式部署 Nginx&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;新建一个目录存放 docker-compose 、 nginx.conf 文件和 conf.d 文件夹&lt;/li&gt;
&lt;li&gt;在新建的目录中创建一个名为&amp;quot; docker-compose.yml &amp;ldquo;的文件，内容如下：&lt;/li&gt;
&lt;/ul&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-fallback&#34; data-lang=&#34;fallback&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;services:
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  nginx:
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    image: nginx:stable-alpine-perl
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    container_name: nginx
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    ports:
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;      - &amp;#34;80:80&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;      - &amp;#34;443:443&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    volumes:
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;      - ./nginx.conf:/etc/nginx/nginx.conf:ro # nginx.conf文件路径根据实际调整
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;      - ./conf.d:/home/sixdian/nginx/conf.d:ro # conf.d 目录路径根据实际调整
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;      - /home/sixdian/site/sixdian.com/public:/home/sixdian/site/sixdian.com/public:ro # 网站根目录路径根据实际调整
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;      - /home/sixdian/ssl:/home/sixdian/ssl:ro # ssl 证书目录路径根据实际调整
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;      - /etc/dhparam:/etc/dhparam:ro
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    environment:
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;      TZ: Asia/Shanghai
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    restart: always
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h4 id=&#34;在-docker-composeyml-文件所在目录中执行以下命令启动服务&#34;&gt;在 docker-compose.yml 文件所在目录中执行以下命令启动服务：&lt;/h4&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-fallback&#34; data-lang=&#34;fallback&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;docker compose up -d
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id=&#34;docker-部署-hysteria&#34;&gt;Docker 部署 Hysteria&lt;/h2&gt;
&lt;h3 id=&#34;docker-compose-方式部署-hysteria&#34;&gt;docker-compose 方式部署 Hysteria&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;新建一个目录存放 docker-compose.yml 文件和 hysteria.yaml 配置文件&lt;/li&gt;
&lt;li&gt;在新建的目录中创建一个名为&amp;rdquo; docker-compose.yml &amp;ldquo;的文件，内容如下：&lt;/li&gt;
&lt;/ul&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-fallback&#34; data-lang=&#34;fallback&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;services:
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  hysteria:
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    image: tobyxdd/hysteria
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    container_name: hysteria
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    restart: always
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    network_mode: &amp;#34;host&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    volumes:
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;      - ./hysteria.yaml:/etc/hysteria.yaml:ro # hysteria.yaml 文件路径根据实际调整
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;      - /home/sixdian/ssl:/home/sixdian/ssl:ro # ssl 证书目录路径根据实际调整
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    environment:
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;      TZ: Asia/Shanghai
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    command: [&amp;#34;server&amp;#34;, &amp;#34;-c&amp;#34;, &amp;#34;/etc/hysteria.yaml&amp;#34;]
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h4 id=&#34;在-docker-composeyml-文件所在目录中执行以下命令启动服务-1&#34;&gt;在 docker-compose.yml 文件所在目录中执行以下命令启动服务：&lt;/h4&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-fallback&#34; data-lang=&#34;fallback&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;docker compose up -d
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description>
    </item>
    <item>
      <title>OpenWrt、Padavan 下 frp 服务和客户端的配置</title>
      <link>https://sixdian.com/post/openwrt-padavan-frp/</link>
      <pubDate>Thu, 15 Dec 2022 09:20:33 +0800</pubDate>
      <guid>https://sixdian.com/post/openwrt-padavan-frp/</guid>
      <description>&lt;h2 id=&#34;openwrt&#34;&gt;OpenWrt&lt;/h2&gt;
&lt;p&gt;frps 配置文件位置：/etc/config/frps&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-fallback&#34; data-lang=&#34;fallback&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;config init
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        option stdout 1
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        option stderr 1
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        option user frps
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        option group frps
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        option respawn 1
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;config conf &amp;#39;common&amp;#39;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        option bind_port 7000
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        option dashboard_addr 0.0.0.0
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        option dashboard_port 7500
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        option dashboard_user ***
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        option dashboard_pwd ******
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        option token ******
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;frpc 配置文件位置：/etc/config/frpc&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-fallback&#34; data-lang=&#34;fallback&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;config init
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        option stdout 1
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        option stderr 1
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        option user frpc
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        option group frpc
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        option respawn 1
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;config conf &amp;#39;common&amp;#39;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        option server_addr ***.sixdian.com
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        option server_port 7000
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        option token ******
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;config conf &amp;#39;***&amp;#39;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        option type http
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        option local_ip 127.0.0.1
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        option local_port 80
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        option subdomain ***
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;查看生效配置：&lt;/p&gt;</description>
    </item>
    <item>
      <title>利用 Hysteria 搭建科学上网服务</title>
      <link>https://sixdian.com/post/hysteria/</link>
      <pubDate>Tue, 13 Dec 2022 10:18:46 +0800</pubDate>
      <guid>https://sixdian.com/post/hysteria/</guid>
      <description>&lt;p&gt;10月份之后 shadowsocks 扶墙服务器 IP 频繁遭屏蔽，更换 IP 浪费了我不少银两。考虑到 shadowsocks 协议已被防火长城精准识别，再用还会被封 IP，所以就用 Hysteria 替代 shadowsocks，作为以后科学上网的主要方式。&lt;/p&gt;
&lt;p&gt;Hysteria 默认运用 UDP 协议进行通信，其主要应用场景有：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;绕过网络审查&lt;/li&gt;
&lt;li&gt;提升传输速度&lt;/li&gt;
&lt;li&gt;绕过商业/学校/企业防火墙&lt;/li&gt;
&lt;li&gt;绕过运营商 QoS 限速&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;下载-hysteria&#34;&gt;下载 Hysteria&lt;/h2&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-gdscript3&#34; data-lang=&#34;gdscript3&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;cd &lt;span style=&#34;color:#f92672&#34;&gt;/&lt;/span&gt;etc &lt;span style=&#34;color:#75715e&#34;&gt;# 切换到系统 etc 文件夹&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;wget https:&lt;span style=&#34;color:#f92672&#34;&gt;//&lt;/span&gt;github&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;com&lt;span style=&#34;color:#f92672&#34;&gt;/&lt;/span&gt;apernet&lt;span style=&#34;color:#f92672&#34;&gt;/&lt;/span&gt;hysteria&lt;span style=&#34;color:#f92672&#34;&gt;/&lt;/span&gt;releases&lt;span style=&#34;color:#f92672&#34;&gt;/&lt;/span&gt;download&lt;span style=&#34;color:#f92672&#34;&gt;/&lt;/span&gt;v1&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;&lt;span style=&#34;color:#ae81ff&#34;&gt;3.2&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;/&lt;/span&gt;hysteria&lt;span style=&#34;color:#f92672&#34;&gt;-&lt;/span&gt;linux&lt;span style=&#34;color:#f92672&#34;&gt;-&lt;/span&gt;amd64 &lt;span style=&#34;color:#75715e&#34;&gt;#下载 Hysteria 服务程序&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;mv hysteria&lt;span style=&#34;color:#f92672&#34;&gt;-&lt;/span&gt;linux&lt;span style=&#34;color:#f92672&#34;&gt;-&lt;/span&gt;amd64 hysteria&lt;span style=&#34;color:#f92672&#34;&gt;-&lt;/span&gt;server &lt;span style=&#34;color:#75715e&#34;&gt;#将 Hysteria 服务程序重命名为 hysteria-server&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;chmod &lt;span style=&#34;color:#f92672&#34;&gt;+&lt;/span&gt;x hysteria&lt;span style=&#34;color:#f92672&#34;&gt;-&lt;/span&gt;server &lt;span style=&#34;color:#75715e&#34;&gt;#为 hysteria-server 赋予可执行权限&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id=&#34;创建-hysteria-服务配置文件&#34;&gt;创建 Hysteria 服务配置文件&lt;/h2&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-fallback&#34; data-lang=&#34;fallback&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;vi config.json
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-fallback&#34; data-lang=&#34;fallback&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;{
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &amp;#34;listen&amp;#34;: &amp;#34;:8388&amp;#34;,
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &amp;#34;protocol&amp;#34;: &amp;#34;udp&amp;#34;,
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &amp;#34;cert&amp;#34;: &amp;#34;/home/sixdian/ssl/cert.pem&amp;#34;,
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &amp;#34;key&amp;#34;: &amp;#34;/home/sixdian/ssl/key.pem&amp;#34;,
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &amp;#34;obfs&amp;#34;: &amp;#34;******&amp;#34;,
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &amp;#34;up&amp;#34;: &amp;#34;100 Mbps&amp;#34;,
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &amp;#34;down&amp;#34;: &amp;#34;20 Mbps&amp;#34;,
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &amp;#34;alpn&amp;#34;: &amp;#34;sixdian&amp;#34;,
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &amp;#34;recv_window_conn&amp;#34;: 8388608,
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &amp;#34;recv_window_client&amp;#34;: 20971520
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;}
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id=&#34;将-hysteria-服务加入到-systemctl&#34;&gt;将 Hysteria 服务加入到 systemctl&lt;/h2&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-fallback&#34; data-lang=&#34;fallback&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;vi /etc/systemd/system/hysteria.service
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-fallback&#34; data-lang=&#34;fallback&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;[Unit]
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;Description=hysteria-server
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;After=network-online.target
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;[Service]
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;Type=simple
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;ExecStart=/etc/hysteria/hysteria-server server -c /etc/hysteria/config.json
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;Restart=always
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;RestartSec=2
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;[Install]
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;WantedBy=multi-user.target
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id=&#34;防火墙设置&#34;&gt;防火墙设置&lt;/h2&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-gdscript3&#34; data-lang=&#34;gdscript3&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;firewall&lt;span style=&#34;color:#f92672&#34;&gt;-&lt;/span&gt;cmd &lt;span style=&#34;color:#f92672&#34;&gt;--&lt;/span&gt;zone&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;public &lt;span style=&#34;color:#f92672&#34;&gt;--&lt;/span&gt;add&lt;span style=&#34;color:#f92672&#34;&gt;-&lt;/span&gt;port&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#ae81ff&#34;&gt;8388&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;/&lt;/span&gt;udp &lt;span style=&#34;color:#f92672&#34;&gt;--&lt;/span&gt;permanent &lt;span style=&#34;color:#75715e&#34;&gt;#开放 8388 UDP 端口&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;firewall&lt;span style=&#34;color:#f92672&#34;&gt;-&lt;/span&gt;cmd &lt;span style=&#34;color:#f92672&#34;&gt;--&lt;/span&gt;zone&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;public &lt;span style=&#34;color:#f92672&#34;&gt;--&lt;/span&gt;add&lt;span style=&#34;color:#f92672&#34;&gt;-&lt;/span&gt;port&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#ae81ff&#34;&gt;50000&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;-&lt;/span&gt;&lt;span style=&#34;color:#ae81ff&#34;&gt;60000&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;/&lt;/span&gt;udp &lt;span style=&#34;color:#f92672&#34;&gt;--&lt;/span&gt;permanent &lt;span style=&#34;color:#75715e&#34;&gt;#开放 50000-60000 UDP 端口&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;firewall&lt;span style=&#34;color:#f92672&#34;&gt;-&lt;/span&gt;cmd &lt;span style=&#34;color:#f92672&#34;&gt;--&lt;/span&gt;zone&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;public &lt;span style=&#34;color:#f92672&#34;&gt;--&lt;/span&gt;add&lt;span style=&#34;color:#f92672&#34;&gt;-&lt;/span&gt;masquerade &lt;span style=&#34;color:#f92672&#34;&gt;--&lt;/span&gt;permanent &lt;span style=&#34;color:#75715e&#34;&gt;#允许防火墙伪装 IP&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;firewall&lt;span style=&#34;color:#f92672&#34;&gt;-&lt;/span&gt;cmd &lt;span style=&#34;color:#f92672&#34;&gt;--&lt;/span&gt;zone&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;public &lt;span style=&#34;color:#f92672&#34;&gt;--&lt;/span&gt;add&lt;span style=&#34;color:#f92672&#34;&gt;-&lt;/span&gt;forward&lt;span style=&#34;color:#f92672&#34;&gt;-&lt;/span&gt;port&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;port&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#ae81ff&#34;&gt;50000&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;-&lt;/span&gt;&lt;span style=&#34;color:#ae81ff&#34;&gt;60000&lt;/span&gt;:proto&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;udp:toport&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#ae81ff&#34;&gt;8388&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;--&lt;/span&gt;permanent &lt;span style=&#34;color:#75715e&#34;&gt;#将 50000-60000 UDP 端口转到到 8388 UDP&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;firewall&lt;span style=&#34;color:#f92672&#34;&gt;-&lt;/span&gt;cmd &lt;span style=&#34;color:#f92672&#34;&gt;--&lt;/span&gt;reload &lt;span style=&#34;color:#75715e&#34;&gt;#使防火墙配置生效&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id=&#34;启动-hysteria并使-hysteria-服务开机启动&#34;&gt;启动 Hysteria，并使 Hysteria 服务开机启动&lt;/h2&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-fallback&#34; data-lang=&#34;fallback&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;systemctl start hysteria #启动 Hysteria
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;systemctl enable hysteria #设置 Hysteria 开机启动
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description>
    </item>
    <item>
      <title>利用 acme.sh 为网站提供 ssl 支持</title>
      <link>https://sixdian.com/post/acme/</link>
      <pubDate>Wed, 07 Dec 2022 16:52:27 +0800</pubDate>
      <guid>https://sixdian.com/post/acme/</guid>
      <description>&lt;p&gt;原先用 Certbot 为网站安装证书时Nignx配置文件会被 Certbot 自动修改，令配置文件内容凌乱不堪，而且还要额外安装 Snap 影响服务器运行效率。所以放弃了 Certbot ，改用 acme.sh 生成和安装证书。
其安装和使用步骤如下：&lt;/p&gt;
&lt;h2 id=&#34;安装-acmesh&#34;&gt;安装 acme.sh&lt;/h2&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-fallback&#34; data-lang=&#34;fallback&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;curl https://get.acme.sh | sh -s email=my@example.com # my@example.com 修改为你自己的 E-mail 地址
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;alias acme.sh=~/.acme.sh/acme.sh # 创建一个 shell 的 alias 方便使用
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id=&#34;生成证书手动-dns-方式&#34;&gt;生成证书（手动 DNS 方式）&lt;/h2&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-fallback&#34; data-lang=&#34;fallback&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;acme.sh --issue --dns -d sixdian.com -d *.sixdian.com --keylength ec-256 \
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; --yes-I-know-dns-manual-mode-enough-go-ahead-please
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;acme.sh 会生成相应的解析记录显示出来，然后在你的域名管理面板中添加这些 txt 记录。&lt;/p&gt;
&lt;h2 id=&#34;解析完成之后重新生成证书&#34;&gt;解析完成之后，重新生成证书&lt;/h2&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-fallback&#34; data-lang=&#34;fallback&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;acme.sh --renew -d sixdian.com -d *.sixdian.com --ecc\
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  --yes-I-know-dns-manual-mode-enough-go-ahead-please
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id=&#34;获取-cloudflare-api-key&#34;&gt;获取 cloudflare API key&lt;/h2&gt;
&lt;p&gt;地址：https://dash.cloudflare.com/profile/api-tokens&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-gdscript3&#34; data-lang=&#34;gdscript3&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;export&lt;/span&gt; CF_Key&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;Global API Key&amp;#34;&lt;/span&gt; &lt;span style=&#34;color:#75715e&#34;&gt;# Global API Key 修改为你的 Cloudflare API 密钥&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;export&lt;/span&gt; CF_Email&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;my@example.com&amp;#34;&lt;/span&gt; &lt;span style=&#34;color:#75715e&#34;&gt;# my@example.com 修改为你 Cloudflare 账户绑定的邮箱&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;acme&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;sh  &lt;span style=&#34;color:#f92672&#34;&gt;--&lt;/span&gt;issue  &lt;span style=&#34;color:#f92672&#34;&gt;-&lt;/span&gt;d sixdian&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;com &lt;span style=&#34;color:#f92672&#34;&gt;-&lt;/span&gt;d &lt;span style=&#34;color:#f92672&#34;&gt;*.&lt;/span&gt;sixdian&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;com  &lt;span style=&#34;color:#f92672&#34;&gt;--&lt;/span&gt;dns dns_cf &lt;span style=&#34;color:#f92672&#34;&gt;--&lt;/span&gt;ecc &lt;span style=&#34;color:#75715e&#34;&gt;# 申请证书&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id=&#34;安装证书以-nginx-为例&#34;&gt;安装证书（以 Nginx 为例）&lt;/h2&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-gdscript3&#34; data-lang=&#34;gdscript3&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;acme&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;sh &lt;span style=&#34;color:#f92672&#34;&gt;--&lt;/span&gt;install&lt;span style=&#34;color:#f92672&#34;&gt;-&lt;/span&gt;cert &lt;span style=&#34;color:#f92672&#34;&gt;-&lt;/span&gt;d sixdian&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;com &lt;span style=&#34;color:#f92672&#34;&gt;-&lt;/span&gt;d &lt;span style=&#34;color:#f92672&#34;&gt;*.&lt;/span&gt;sixdian&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;com \
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;--&lt;/span&gt;key&lt;span style=&#34;color:#f92672&#34;&gt;-&lt;/span&gt;file       &lt;span style=&#34;color:#f92672&#34;&gt;/&lt;/span&gt;home&lt;span style=&#34;color:#f92672&#34;&gt;/&lt;/span&gt;sixdian&lt;span style=&#34;color:#f92672&#34;&gt;/&lt;/span&gt;ssl&lt;span style=&#34;color:#f92672&#34;&gt;/&lt;/span&gt;key&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;pem  \
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;--&lt;/span&gt;fullchain&lt;span style=&#34;color:#f92672&#34;&gt;-&lt;/span&gt;file &lt;span style=&#34;color:#f92672&#34;&gt;/&lt;/span&gt;home&lt;span style=&#34;color:#f92672&#34;&gt;/&lt;/span&gt;sixdian&lt;span style=&#34;color:#f92672&#34;&gt;/&lt;/span&gt;ssl&lt;span style=&#34;color:#f92672&#34;&gt;/&lt;/span&gt;cert&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;pem \
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;--&lt;/span&gt;reloadcmd     &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;service nginx force-reload&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id=&#34;开启-acmesh-自动升级&#34;&gt;开启 acme.sh 自动升级&lt;/h2&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-fallback&#34; data-lang=&#34;fallback&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;acme.sh --upgrade --auto-upgrade
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description>
    </item>
    <item>
      <title>记一次 VPS 的宕机经历</title>
      <link>https://sixdian.com/post/centos-migrate-rocky-linux-nextcloud-install/</link>
      <pubDate>Fri, 13 May 2022 10:57:32 +0800</pubDate>
      <guid>https://sixdian.com/post/centos-migrate-rocky-linux-nextcloud-install/</guid>
      <description>&lt;p&gt;几天前我搭建在 HostHatch 的 Nextcloud 服务突然无法访问了。心想 HostHatch 此前已经连续稳定运行数年，故障大概率是我自己的设置问题或是服务器被入侵了，立马慌了。随即 ssh 登录服务器查看状况，结果 ssh 无法登录。又到控制台想通过VNC登录了解情况，结果系统卡在 GRUB 无法正常引导。进入 GRUB 救援模式，修改 GRUB 启动分区，加载基本模块等一通操作下来还是白忙活。ls查看设备状态，硬盘还是能读出来的。索性懒得折腾了，重装系统吧，反正本地还有备份不怕丢数据。&lt;/p&gt;
&lt;p&gt;CentOS8 目前已不受官方支持，而我又不想用 Stream 版的，考虑再三还是用 Rocky Linux 吧。&lt;/p&gt;
&lt;p&gt;由于这次故障来的太突然，而且故障的原因又不明，卡在 GRUB 估计与我上次安装系统使用了自定义 ISO 有关。所以这次舍弃了之前通过挂载 ISO 的方式直接装 Rocky Linux，而是先通过官方的 Image 重装 CentOS 8，再从 CentOS 8 迁移到 Rocky Linux。&lt;/p&gt;
&lt;h2 id=&#34;从-cenos-8-迁移到-rocky-linux&#34;&gt;从 CenOS 8 迁移到 Rocky Linux&lt;/h2&gt;
&lt;p&gt;重装完 CentOS 8 后首先修复存储库&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-fallback&#34; data-lang=&#34;fallback&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;sed -i -r \
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    -e &amp;#39;s!^mirrorlist=!#mirrorlist=!&amp;#39; \
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    -e &amp;#39;s!^#?baseurl=http://(mirror|vault).centos.org/\$contentdir/\$releasever/!baseurl=https://dl.rockylinux.org/vault/centos/8.5.2111/!i&amp;#39; \
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    /etc/yum.repos.d/CentOS-*.repo
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;下载官方推荐的的迁移脚本文件&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-gdscript3&#34; data-lang=&#34;gdscript3&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;curl https:&lt;span style=&#34;color:#f92672&#34;&gt;//&lt;/span&gt;raw&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;githubusercontent&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;com&lt;span style=&#34;color:#f92672&#34;&gt;/&lt;/span&gt;rocky&lt;span style=&#34;color:#f92672&#34;&gt;-&lt;/span&gt;linux&lt;span style=&#34;color:#f92672&#34;&gt;/&lt;/span&gt;rocky&lt;span style=&#34;color:#f92672&#34;&gt;-&lt;/span&gt;tools&lt;span style=&#34;color:#f92672&#34;&gt;/&lt;/span&gt;main&lt;span style=&#34;color:#f92672&#34;&gt;/&lt;/span&gt;migrate2rocky&lt;span style=&#34;color:#f92672&#34;&gt;/&lt;/span&gt;migrate2rocky&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;sh &lt;span style=&#34;color:#f92672&#34;&gt;-&lt;/span&gt;o migrate2rocky&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;sh
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;赋予脚本文件可执行权限&lt;/p&gt;</description>
    </item>
    <item>
      <title>利用 frp 搭建远程办公环境</title>
      <link>https://sixdian.com/post/remote-work/</link>
      <pubDate>Mon, 02 May 2022 15:05:44 +0800</pubDate>
      <guid>https://sixdian.com/post/remote-work/</guid>
      <description>&lt;p&gt;疫情当下，无法到公司上班，但公司的 ERP、共享文件等又只能在内网访问，在家办公着实不方便。有什么办法在家里也能像在公司一样方便的使用公司的内网服务呢？&lt;/p&gt;
&lt;p&gt;一般情况下公司网管会让你在公司电脑上装 TeamViewer、向日葵之类的远程桌面软件，或者用 QQ 的远程协助功能来解决。但这些方法需要在控制端与被控端都安装相同的软件才能正常连接，而且被控端失联后你还要请同事帮忙在被控端打开软件再进行连接。隐私也是个大问题，你所有的操作在被控电脑上都是可以实时看到的。&lt;/p&gt;
&lt;p&gt;frp 内网穿透 + Windows 自带的远程桌面完全可以规避以上软件的不足，让你愉快的在家享受远程办公的乐趣。如果公司网络有公网 IP，网管又乐意帮你做端口转发的话，其实也就用不到内网穿透了。本文介绍的就是以上条件都不具备的条件下如何自给自足，而且很流畅的实现远程办公。&lt;/p&gt;
&lt;p&gt;话不多说，开干吧！&lt;/p&gt;
&lt;p&gt;你所需的条件：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;一台有公网 IP 的 Linux 服务器&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;安装-frp-服务端软件&#34;&gt;安装 frp 服务端软件&lt;/h2&gt;
&lt;p&gt;下载 frp 软件包到服务器&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-gdscript3&#34; data-lang=&#34;gdscript3&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;wget https:&lt;span style=&#34;color:#f92672&#34;&gt;//&lt;/span&gt;github&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;com&lt;span style=&#34;color:#f92672&#34;&gt;/&lt;/span&gt;fatedier&lt;span style=&#34;color:#f92672&#34;&gt;/&lt;/span&gt;frp&lt;span style=&#34;color:#f92672&#34;&gt;/&lt;/span&gt;releases&lt;span style=&#34;color:#f92672&#34;&gt;/&lt;/span&gt;download&lt;span style=&#34;color:#f92672&#34;&gt;/&lt;/span&gt;v0&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;&lt;span style=&#34;color:#ae81ff&#34;&gt;42.0&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;/&lt;/span&gt;frp_0&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;&lt;span style=&#34;color:#ae81ff&#34;&gt;42.0&lt;/span&gt;_linux_amd64&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;tar&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;gz
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;解压软件包&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-fallback&#34; data-lang=&#34;fallback&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;tar -zxvf frp_0.42.0_linux_amd64.tar.gz
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;从服务器删除刚刚下载的软件包&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-fallback&#34; data-lang=&#34;fallback&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;rm -f frp_0.42.0_linux_amd64.tar.gz
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;移动已解压的软件包文件夹到服务器 etc 文件夹下，并将文件夹重命名为 frp&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-fallback&#34; data-lang=&#34;fallback&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;mv tar -zxvf frp_0.42.0_linux_amd64 /etc/frp
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id=&#34;frps-服务的配置&#34;&gt;frps 服务的配置&lt;/h2&gt;
&lt;p&gt;编辑 frps 配置配置文件&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-fallback&#34; data-lang=&#34;fallback&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;vi /etc/frp/frps.ini
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;内容修改如下：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-fallback&#34; data-lang=&#34;fallback&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;[common]
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;bind_port = 7000 #frps 服务监听端口
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;vhost_http_port = 8080 #如果客户端有 http 服务，用 serverip:8080 访问客户端的 http 服务
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;subdomain_host = sixdian.com #如果希望用域名访问客户端上的 http 服务则设置你自己的顶级域名地址，子域名在客户端设置
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;dashboard_port = 7500 #设置访问 frps 仪表板的端口
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;dashboard_user = username #设置访问仪表板的用户名 
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;dashboard_pwd = ******** #设置访问仪表板的密码
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;token = ****** #设置连接服务端与客户端所使用的令牌
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;max_pool_count = 5
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id=&#34;设置frps服务开机启动&#34;&gt;设置frps服务开机启动&lt;/h2&gt;
&lt;p&gt;新建 systemctl 配置文件&lt;/p&gt;</description>
    </item>
    <item>
      <title>Rocky Linux 禁用 Ipv6 的设置</title>
      <link>https://sixdian.com/post/rocky-disable-ipv6/</link>
      <pubDate>Sun, 01 May 2022 10:57:32 +0800</pubDate>
      <guid>https://sixdian.com/post/rocky-disable-ipv6/</guid>
      <description>&lt;p&gt;昨天 update 了一下服务器，想通过部署在上面的的 frps 内网穿透服务连接家里路由器的时候发现登录页面出错。随即查看 frps 是不是未运行，结果一切正常正常。于是查看 frps 监听的端口是否未在防火墙设置打开，结果也是打开的，没毛病呀。
于是查看端口占用：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-fallback&#34; data-lang=&#34;fallback&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;netstat -ntlp
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;figure&gt;
    &lt;img loading=&#34;lazy&#34; src=&#34;https://sixdian.com/image/rocky-disable-ipv6/1.webp&#34; width=&#34;100%&#34;/&gt; 
&lt;/figure&gt;

原来 fprs 只监听了 IPv6 地址，更新 frps 版本还是一样。GitHub 上 frp 的项目 Issues 里也没有找到有用的回答。于是 Google 大法开启，Search&amp;quot;rocky disable ipv6&amp;quot;，还真找到了解决方法。&lt;/p&gt;
&lt;p&gt;有效的答案是针对 CentOS 8 禁用 IPv6 的设置方法，由于 Rocky 就是基于 CentOS 所以这个方法也对 Rocky 适用。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-fallback&#34; data-lang=&#34;fallback&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;ip a | grep inet6 #检查服务器是否启用了 IPv6
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;输出结果是肯定的，显示 IPv6 已开启&lt;/p&gt;
&lt;p&gt;具体的禁用 IPv6 方法有两种&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;使用 sysctl 命令禁用 IPv6 -此方法适用于临时禁用IPv6&lt;/li&gt;
&lt;li&gt;使用内核引导选项禁用 IPv6 -这是禁用IPv6的最佳方法&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;第一种方法-使用-sysctl-命令禁用-ipv6&#34;&gt;第一种方法-使用 sysctl 命令禁用 IPv6&lt;/h2&gt;
&lt;p&gt;创建一个新的 sysctl 配置文件 /etc/sysctl.d/70-ipv6.conf&lt;/p&gt;</description>
    </item>
    <item>
      <title>Nginx 性能优化及反向代理 NextCloud</title>
      <link>https://sixdian.com/post/nginx-set/</link>
      <pubDate>Fri, 29 Apr 2022 14:53:15 +0800</pubDate>
      <guid>https://sixdian.com/post/nginx-set/</guid>
      <description>&lt;p&gt;Nginx 是一个异步框架的网页服务器，具有占用内存少、稳定性高、可大量并行处理等特点。截止 2018 年，全球有 30.46% 的网站使用 Nginx 作为代理。除了网页代理外，Nginx 也可作为反向代理、负载均衡等应用，本站使用的网页服务器就是 Nginx。&lt;/p&gt;
&lt;p&gt;我的 Nextcloud 私有云是搭建在 HostHatch 洛杉矶数据中心的大容量机械硬盘 VPS 上。由于性能有限加上 HostHatch 没有对中国路由进行特别优化，导致国内直连的情况下丢包严重，连接状态极差。于是我用狗云圣何塞机房 4837 线路的 VPS 作为 Nextcloud 的中转来解决访问速度的问题，同时把本站也搭建在狗云的VPS上就不会有访问困难的问题了。这两种需求利用 Nginx 都能很好的满足。&lt;/p&gt;
&lt;h2 id=&#34;我-nginx-配置的基本架构&#34;&gt;我 Nginx 配置的基本架构：&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Nginx 提供本站的网页服务，并处理本站和 Nextcloud 的 HTTPS 加密。&lt;/li&gt;
&lt;li&gt;Nginx 为 Nextcloud 做反向代理，使客户端访问 Nextcloud 经过网络更好的 Nginx 所在的服务器来加速访问。&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;优化要点&#34;&gt;优化要点：&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;合理的配置本地缓存&lt;/li&gt;
&lt;li&gt;开启压缩并做适当的配置&lt;/li&gt;
&lt;li&gt;反向代理服务器不要缓存后端的数据，只作为一个桥梁来提供中转服务。这样数据传输更加直接，同时也能减轻反向代理服务器的压力。（我的反向代理服务器只有 5G 的硬盘，如果开启反向代理缓存的话，向后端传输数据的最大文件大小会受这个缓存的限制）&lt;/li&gt;
&lt;li&gt;HTTPS 加密方式的选择&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;我的nginxconf配置&#34;&gt;我的nginx.conf配置&lt;/h2&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-gdscript3&#34; data-lang=&#34;gdscript3&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;user  site site; &lt;span style=&#34;color:#75715e&#34;&gt;#用户和用户组&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;worker_processes  auto; &lt;span style=&#34;color:#75715e&#34;&gt;#CPU 核心数&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;worker_rlimit_nofile  &lt;span style=&#34;color:#ae81ff&#34;&gt;8192&lt;/span&gt;; &lt;span style=&#34;color:#75715e&#34;&gt;#最大打开文件数量&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;error_log  &lt;span style=&#34;color:#f92672&#34;&gt;/&lt;/span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;var&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;/&lt;/span&gt;log&lt;span style=&#34;color:#f92672&#34;&gt;/&lt;/span&gt;nginx&lt;span style=&#34;color:#f92672&#34;&gt;/&lt;/span&gt;error&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;log notice;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;pid        &lt;span style=&#34;color:#f92672&#34;&gt;/&lt;/span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;var&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;/&lt;/span&gt;run&lt;span style=&#34;color:#f92672&#34;&gt;/&lt;/span&gt;nginx&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;pid;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;events {
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    use epoll; &lt;span style=&#34;color:#75715e&#34;&gt;#epoll事件模型&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    worker_connections  &lt;span style=&#34;color:#ae81ff&#34;&gt;1024&lt;/span&gt;; &lt;span style=&#34;color:#75715e&#34;&gt;#单个 worker 进程允许客户端最大连接数&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    multi_accept on; &lt;span style=&#34;color:#75715e&#34;&gt;#worker 按串行方式来处理连接&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;}
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;http {
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    include       &lt;span style=&#34;color:#f92672&#34;&gt;/&lt;/span&gt;etc&lt;span style=&#34;color:#f92672&#34;&gt;/&lt;/span&gt;nginx&lt;span style=&#34;color:#f92672&#34;&gt;/&lt;/span&gt;mime&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;types; &lt;span style=&#34;color:#75715e&#34;&gt;#媒体类型&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    default_type  application&lt;span style=&#34;color:#f92672&#34;&gt;/&lt;/span&gt;octet&lt;span style=&#34;color:#f92672&#34;&gt;-&lt;/span&gt;stream; &lt;span style=&#34;color:#75715e&#34;&gt;#媒体类型&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    charset       UTF&lt;span style=&#34;color:#f92672&#34;&gt;-&lt;/span&gt;&lt;span style=&#34;color:#ae81ff&#34;&gt;8&lt;/span&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    log_format  main  &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;$remote_addr - $remote_user [$time_local] &amp;#34;$request&amp;#34; &amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;                      &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;$status $body_bytes_sent &amp;#34;$http_referer&amp;#34; &amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;                      &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;&amp;#34;$http_user_agent&amp;#34; &amp;#34;$http_x_forwarded_for&amp;#34;&amp;#39;&lt;/span&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    access_log  &lt;span style=&#34;color:#f92672&#34;&gt;/&lt;/span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;var&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;/&lt;/span&gt;log&lt;span style=&#34;color:#f92672&#34;&gt;/&lt;/span&gt;nginx&lt;span style=&#34;color:#f92672&#34;&gt;/&lt;/span&gt;access&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;log  main;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#75715e&#34;&gt;# 安全&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;#   add_header X-Content-Type-Options nosniff;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    add_header X&lt;span style=&#34;color:#f92672&#34;&gt;-&lt;/span&gt;XSS&lt;span style=&#34;color:#f92672&#34;&gt;-&lt;/span&gt;Protection &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;1; mode=block&amp;#34;&lt;/span&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;#   add_header X-Robots-Tag none;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;#   add_header X-Download-Options noopen;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;#   add_header X-Permitted-Cross-Domain-Policies none;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    add_header Strict&lt;span style=&#34;color:#f92672&#34;&gt;-&lt;/span&gt;Transport&lt;span style=&#34;color:#f92672&#34;&gt;-&lt;/span&gt;Security &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;max-age=31536000; includeSubDomains&amp;#34;&lt;/span&gt; always;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;#   add_header X-Frame-Options SAMEORIGIN; #不允许页面从框架 frame 或 iframe 中显示&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    ssl_session_cache   shared:SSL:&lt;span style=&#34;color:#ae81ff&#34;&gt;10&lt;/span&gt;m;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    ssl_session_timeout &lt;span style=&#34;color:#ae81ff&#34;&gt;10&lt;/span&gt;m;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    ssl_session_tickets on;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    ssl_stapling on;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    ssl_stapling_verify on;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    sendfile        on; &lt;span style=&#34;color:#75715e&#34;&gt;#开启高效文件传输模式&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    tcp_nopush      on; &lt;span style=&#34;color:#75715e&#34;&gt;#防止网路阻塞&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    keepalive_timeout  &lt;span style=&#34;color:#ae81ff&#34;&gt;65&lt;/span&gt;; &lt;span style=&#34;color:#75715e&#34;&gt;#客户端连接保持会话超时时间&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    tcp_nodelay     on; &lt;span style=&#34;color:#75715e&#34;&gt;#防止网络阻塞&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    types_hash_max_size &lt;span style=&#34;color:#ae81ff&#34;&gt;2048&lt;/span&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    client_header_buffer_size  &lt;span style=&#34;color:#ae81ff&#34;&gt;4096&lt;/span&gt;; &lt;span style=&#34;color:#75715e&#34;&gt;#客户端请求头部的缓冲区大小,getconf PAGESIZE 命令查看&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    open_file_cache max&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#ae81ff&#34;&gt;8192&lt;/span&gt; inactive&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#ae81ff&#34;&gt;20&lt;/span&gt;s; &lt;span style=&#34;color:#75715e&#34;&gt;#打开文件指定缓存，建议和打开文件数一致，inactive 经过多长时间文件没被请求后删除缓存&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    open_file_cache_valid &lt;span style=&#34;color:#ae81ff&#34;&gt;30&lt;/span&gt;s; &lt;span style=&#34;color:#75715e&#34;&gt;#多长时间检查一次缓存的有效信息&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    open_file_cache_min_uses &lt;span style=&#34;color:#ae81ff&#34;&gt;1&lt;/span&gt;; &lt;span style=&#34;color:#75715e&#34;&gt;#open_file_cache 指令中的 inactive 时间内文件的最少使用次数，1次都没用，删除&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    client_header_timeout &lt;span style=&#34;color:#ae81ff&#34;&gt;15&lt;/span&gt;; &lt;span style=&#34;color:#75715e&#34;&gt;#设置请求头的超时时间，超过这个时间没有发送任何数据，返回 request time out 错误&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    client_body_timeout &lt;span style=&#34;color:#ae81ff&#34;&gt;15&lt;/span&gt;; &lt;span style=&#34;color:#75715e&#34;&gt;#设置请求体的超时时间&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    reset_timedout_connection on; &lt;span style=&#34;color:#75715e&#34;&gt;#关闭不响应的 client 连接，释放那个 client 所占有的内存&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    send_timeout &lt;span style=&#34;color:#ae81ff&#34;&gt;15&lt;/span&gt;; &lt;span style=&#34;color:#75715e&#34;&gt;#超过这个时间，客户端没有任何活动，nginx 关闭连接&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    server_tokens off; &lt;span style=&#34;color:#75715e&#34;&gt;#关闭 Nginx 版本号&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    client_max_body_size &lt;span style=&#34;color:#ae81ff&#34;&gt;614400&lt;/span&gt;m; &lt;span style=&#34;color:#75715e&#34;&gt;#上传文件大小限制&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#75715e&#34;&gt;# 反向代理&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    proxy_buffering off;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    proxy_max_temp_file_size &lt;span style=&#34;color:#ae81ff&#34;&gt;614400&lt;/span&gt;m; &lt;span style=&#34;color:#75715e&#34;&gt;#反向代理上传文件大小限制&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    proxy_set_header        X&lt;span style=&#34;color:#f92672&#34;&gt;-&lt;/span&gt;Real_IP       &lt;span style=&#34;color:#f92672&#34;&gt;$&lt;/span&gt;remote_addr;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    proxy_set_header        X&lt;span style=&#34;color:#f92672&#34;&gt;-&lt;/span&gt;Forwarded&lt;span style=&#34;color:#f92672&#34;&gt;-&lt;/span&gt;For &lt;span style=&#34;color:#f92672&#34;&gt;$&lt;/span&gt;proxy_add_x_forwarded_for;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    proxy_set_header        Host            &lt;span style=&#34;color:#f92672&#34;&gt;$&lt;/span&gt;http_host;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    proxy_pass_header       Set&lt;span style=&#34;color:#f92672&#34;&gt;-&lt;/span&gt;Cookie;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    proxy_pass_header       X&lt;span style=&#34;color:#f92672&#34;&gt;-&lt;/span&gt;CSRF&lt;span style=&#34;color:#f92672&#34;&gt;-&lt;/span&gt;TOKEN;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    proxy_set_header Upgrade &lt;span style=&#34;color:#f92672&#34;&gt;$&lt;/span&gt;http_upgrade; &lt;span style=&#34;color:#75715e&#34;&gt;#连接升级为 WebSocket&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    proxy_set_header Connection &lt;span style=&#34;color:#f92672&#34;&gt;$&lt;/span&gt;connection_upgrade; &lt;span style=&#34;color:#75715e&#34;&gt;#连接 map&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    proxy_connect_timeout   &lt;span style=&#34;color:#ae81ff&#34;&gt;60&lt;/span&gt;s; &lt;span style=&#34;color:#75715e&#34;&gt;#代理超时&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    proxy_read_timeout      &lt;span style=&#34;color:#ae81ff&#34;&gt;60&lt;/span&gt;s; &lt;span style=&#34;color:#75715e&#34;&gt;#读取超时&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    proxy_send_timeout      &lt;span style=&#34;color:#ae81ff&#34;&gt;60&lt;/span&gt;s; &lt;span style=&#34;color:#75715e&#34;&gt;#请求改善超时&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#75715e&#34;&gt;#proxy_redirect         off;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    fastcgi_connect_timeout &lt;span style=&#34;color:#ae81ff&#34;&gt;600&lt;/span&gt;; &lt;span style=&#34;color:#75715e&#34;&gt;#指定连接到后端 FastCGI 的超时时间&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    fastcgi_send_timeout &lt;span style=&#34;color:#ae81ff&#34;&gt;600&lt;/span&gt;; &lt;span style=&#34;color:#75715e&#34;&gt;#向 FastCGI 传送请求的超时时间&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    fastcgi_read_timeout &lt;span style=&#34;color:#ae81ff&#34;&gt;600&lt;/span&gt;; &lt;span style=&#34;color:#75715e&#34;&gt;#指定接收 FastCGI 应答的超时时间&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    fastcgi_buffer_size &lt;span style=&#34;color:#ae81ff&#34;&gt;64&lt;/span&gt;k; &lt;span style=&#34;color:#75715e&#34;&gt;#指定读取 FastCGI 应答第一部分需要用多大的缓冲区&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    fastcgi_buffers &lt;span style=&#34;color:#ae81ff&#34;&gt;4&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;64&lt;/span&gt;k; &lt;span style=&#34;color:#75715e&#34;&gt;#指定本地需要用多少和多大的缓冲区来缓冲 FastCGI 的应答请求&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    fastcgi_busy_buffers_size &lt;span style=&#34;color:#ae81ff&#34;&gt;128&lt;/span&gt;k; &lt;span style=&#34;color:#75715e&#34;&gt;#建议设置为 fastcgi_buffers 的两倍&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    fastcgi_temp_file_write_size &lt;span style=&#34;color:#ae81ff&#34;&gt;128&lt;/span&gt;k; &lt;span style=&#34;color:#75715e&#34;&gt;#在写入 fastcgi_temp_path 时将用多大的数据块,默认值是 fastcgi_buffers 的两倍&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    fastcgi_temp_path &lt;span style=&#34;color:#f92672&#34;&gt;/&lt;/span&gt;tmp; &lt;span style=&#34;color:#75715e&#34;&gt;#缓存临时目录&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    fastcgi_intercept_errors on; &lt;span style=&#34;color:#75715e&#34;&gt;#指定是否传递 4xx 和 5xx 错误信息到客户端&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    fastcgi_cache_path &lt;span style=&#34;color:#f92672&#34;&gt;/&lt;/span&gt;tmp&lt;span style=&#34;color:#f92672&#34;&gt;/&lt;/span&gt;blog levels&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#ae81ff&#34;&gt;1&lt;/span&gt;:&lt;span style=&#34;color:#ae81ff&#34;&gt;2&lt;/span&gt; keys_zone&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;cache_fastcgi:&lt;span style=&#34;color:#ae81ff&#34;&gt;300&lt;/span&gt;m inactive&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#ae81ff&#34;&gt;60&lt;/span&gt;m max_size&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#ae81ff&#34;&gt;3584&lt;/span&gt;m; &lt;span style=&#34;color:#75715e&#34;&gt;#fastcgi_cache 缓存目录&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    fastcgi_cache cache_fastcgi; &lt;span style=&#34;color:#75715e&#34;&gt;#开启 FastCGI 缓存并为其指定一个名称&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    fastcgi_cache_valid &lt;span style=&#34;color:#ae81ff&#34;&gt;200&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;302&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;1&lt;/span&gt;h; &lt;span style=&#34;color:#75715e&#34;&gt;#用来指定应答代码的缓存时间&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    fastcgi_cache_valid &lt;span style=&#34;color:#ae81ff&#34;&gt;301&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;1&lt;/span&gt;d; &lt;span style=&#34;color:#75715e&#34;&gt;#将 301 应答缓存一天&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    fastcgi_cache_valid any &lt;span style=&#34;color:#ae81ff&#34;&gt;1&lt;/span&gt;m; &lt;span style=&#34;color:#75715e&#34;&gt;#将其他应答缓存为1分钟&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    fastcgi_cache_min_uses &lt;span style=&#34;color:#ae81ff&#34;&gt;1&lt;/span&gt;; &lt;span style=&#34;color:#75715e&#34;&gt;#设置经过多少次请求的相同 URL 将被缓存&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    fastcgi_cache_key http:&lt;span style=&#34;color:#f92672&#34;&gt;//$&lt;/span&gt;host&lt;span style=&#34;color:#f92672&#34;&gt;$&lt;/span&gt;request_uri; &lt;span style=&#34;color:#75715e&#34;&gt;#设置 web 缓存的 Key 值&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#75715e&#34;&gt;#fastcgi_pass; #指定 FastCGI 服务器监听端口与地址&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    gzip  on; &lt;span style=&#34;color:#75715e&#34;&gt;#开启压缩&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    gzip_disable &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;msie6&amp;#34;&lt;/span&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    gzip_min_length &lt;span style=&#34;color:#ae81ff&#34;&gt;1&lt;/span&gt;k; &lt;span style=&#34;color:#75715e&#34;&gt;#允许压缩的页面最小字节数&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    gzip_buffers &lt;span style=&#34;color:#ae81ff&#34;&gt;32&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;4&lt;/span&gt;k; &lt;span style=&#34;color:#75715e&#34;&gt;#压缩缓冲区大小&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    gzip_http_version &lt;span style=&#34;color:#ae81ff&#34;&gt;1.1&lt;/span&gt;; &lt;span style=&#34;color:#75715e&#34;&gt;#压缩版本&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    gzip_comp_level &lt;span style=&#34;color:#ae81ff&#34;&gt;9&lt;/span&gt;; &lt;span style=&#34;color:#75715e&#34;&gt;#压缩比例（1-9）&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    gzip_proxied any; &lt;span style=&#34;color:#75715e&#34;&gt;#对代理启用压缩&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    gzip_types text&lt;span style=&#34;color:#f92672&#34;&gt;/&lt;/span&gt;plain text&lt;span style=&#34;color:#f92672&#34;&gt;/&lt;/span&gt;css application&lt;span style=&#34;color:#f92672&#34;&gt;/&lt;/span&gt;json application&lt;span style=&#34;color:#f92672&#34;&gt;/&lt;/span&gt;x&lt;span style=&#34;color:#f92672&#34;&gt;-&lt;/span&gt;javascript text&lt;span style=&#34;color:#f92672&#34;&gt;/&lt;/span&gt;xml application&lt;span style=&#34;color:#f92672&#34;&gt;/&lt;/span&gt;xml application&lt;span style=&#34;color:#f92672&#34;&gt;/&lt;/span&gt;xml&lt;span style=&#34;color:#f92672&#34;&gt;+&lt;/span&gt;rss text&lt;span style=&#34;color:#f92672&#34;&gt;/&lt;/span&gt;javascript;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    gzip_vary on; &lt;span style=&#34;color:#75715e&#34;&gt;#varyheader 支持&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    map &lt;span style=&#34;color:#f92672&#34;&gt;$&lt;/span&gt;http_upgrade &lt;span style=&#34;color:#f92672&#34;&gt;$&lt;/span&gt;connection_upgrade {
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        default upgrade;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;&amp;#39;&lt;/span&gt;      close;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    }
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    include &lt;span style=&#34;color:#f92672&#34;&gt;/&lt;/span&gt;etc&lt;span style=&#34;color:#f92672&#34;&gt;/&lt;/span&gt;nginx&lt;span style=&#34;color:#f92672&#34;&gt;/&lt;/span&gt;conf&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;d&lt;span style=&#34;color:#f92672&#34;&gt;/*.&lt;/span&gt;conf;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;}
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id=&#34;我的-confd-里面本站服务器配置&#34;&gt;我的 conf.d 里面本站服务器配置&lt;/h2&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-fallback&#34; data-lang=&#34;fallback&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;server {    
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    listen 443 ssl;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    #listen [::]:443 ssl ipv6only=on;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    server_name  sixdian.com;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    root         /home/site/sixdian.com;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    ssl_certificate /etc/letsencrypt/live/sixdian.com-0001/fullchain.pem;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    ssl_certificate_key /etc/letsencrypt/live/sixdian.com-0001/privkey.pem;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    ssl_prefer_server_ciphers on;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    ssl_ciphers &amp;#39;ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA256:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA:DHE-RSA-AES256-SHA:ECDHE-RSA-DES-CBC3-SHA:ECDHE-ECDSA-DES-CBC3-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:AES:DES-CBC3-SHA:HIGH:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!aECDH:!EDH-DSS-DES-CBC3-SHA:!EDH-RSA-DES-CBC3-SHA:!KRB5-DES-CBC3-SHA&amp;#39;;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    # expires 缓存调优
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    location ~* \.(ico|jpeg|gif|png|bmp|swf|flv)$ {
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        expires 30d;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        #log_not_found off;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        access_log off;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        }
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        location ~* \.(js|css)$ {
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        expires 1d;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        log_not_found off;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        access_log off;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        }
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        # 防盗链(未成功)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        #location ~*^.+\.(jpg|gif|png|swf|flv|wma|wmv|asf|mp3|mmf|zip|rar)$ {
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        #valid_referers sixdian.com;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        #if($invalid_referer) {
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        #return 404;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        #break;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        #}
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        #access_log off;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        #}
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;}
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;server {
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    listen 80;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    #listen [::]:80 ipv6only=on;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    server_name  sixdian.com;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        return 301 https://sixdian.com$request_uri;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;}
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;server {
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    listen 80;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    server_name  www.sixdian.com;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        return 301 https://sixdian.com$request_uri;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;}
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id=&#34;我-confd-里面-nextcloud-服务器配置&#34;&gt;我 conf.d 里面 Nextcloud 服务器配置&lt;/h2&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-fallback&#34; data-lang=&#34;fallback&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;server {
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    listen 443 ssl;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    server_name  drive.sixdian.com;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    ssl_certificate /etc/letsencrypt/live/sixdian.com/fullchain.pem;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    ssl_certificate_key /etc/letsencrypt/live/sixdian.com/privkey.pem;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    ssl_prefer_server_ciphers on;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    ssl_ciphers &amp;#39;ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA256:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA:DHE-RSA-AES256-SHA:ECDHE-RSA-DES-CBC3-SHA:ECDHE-ECDSA-DES-CBC3-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:AES:DES-CBC3-SHA:HIGH:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!aECDH:!EDH-DSS-DES-CBC3-SHA:!EDH-RSA-DES-CBC3-SHA:!KRB5-DES-CBC3-SHA&amp;#39;;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    location / {
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    proxy_pass http://s1.sixdian.com:****;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    }
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    location = /.well-known/carddav {
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        return 301 $scheme://drive.sixdian.com/remote.php/dav/files/****/;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    }
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    location = /.well-known/caldav {
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        return 301 $scheme://drive.sixdian.com/remote.php/dav/files/****/;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    }
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;}
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;server {
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    listen 80;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    server_name  drive.sixdian.com;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        return   301 https://drive.sixdian.com$request_uri;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    location = /.well-known/carddav {
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        return   301 $scheme://drive.sixdian.com/remote.php/dav/files/****/;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    }
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    location = /.well-known/caldav {
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        return   301 $scheme://drive.sixdian.com/remote.php/dav/files/****/;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    }
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;}
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id=&#34;我的-nextcloud-服务器-configphp-配置文件&#34;&gt;我的 NextCloud 服务器 config.php 配置文件&lt;/h2&gt;
&lt;p&gt;位置在：/var/snap/nextcloud/current/nextcloud/config/config.php&lt;/p&gt;</description>
    </item>
    <item>
      <title>Linux 系统的安全设置</title>
      <link>https://sixdian.com/post/linux-security/</link>
      <pubDate>Sat, 23 Apr 2022 14:13:18 +0800</pubDate>
      <guid>https://sixdian.com/post/linux-security/</guid>
      <description>&lt;p&gt;Root 是 Linux 系统的超级管理员账户，拥有整个系统的最高权限，可操作系统内的所有对象。一般情况下开放了对外服务的linux系统需要设置一些安全策略来保证服务器的安全，同时亦能防止系统管理员由于平时管理过程中的误操作而导致系统不可挽回的错误。&lt;/p&gt;
&lt;p&gt;SELinux 是 Linux 内核的安全模块，Root 账户的登录权限可由 SELinux 模块进行定义。&lt;/p&gt;
&lt;p&gt;下面就介绍如何对系统进行设定来规避一些潜在的安全风险。&lt;/p&gt;
&lt;h2 id=&#34;安全设置思路&#34;&gt;安全设置思路&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;禁用 root 登录权限&lt;/li&gt;
&lt;li&gt;修改 ssh 默认端口&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;root-用户的禁止登录设置&#34;&gt;Root 用户的禁止登录设置&lt;/h2&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-fallback&#34; data-lang=&#34;fallback&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;useradd username #username 为你要添加的用户名称
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;passwd username #设置 username 的用户密码
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;vi /etc/ssh/sshd_config #打开 ssh 配置文件
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;PermitRootLogin no #在 ssh 配置文件中找到 PermitRootLogin 这项，把后面默认的 yes 修改为 no 禁止 root 用户登录
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;service sshd restart #重启 sshd 服务
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id=&#34;ssh-默认端口的修改&#34;&gt;ssh 默认端口的修改&lt;/h2&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-gdscript3&#34; data-lang=&#34;gdscript3&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;firewall&lt;span style=&#34;color:#f92672&#34;&gt;-&lt;/span&gt;cmd &lt;span style=&#34;color:#f92672&#34;&gt;--&lt;/span&gt;zone&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;public &lt;span style=&#34;color:#f92672&#34;&gt;--&lt;/span&gt;add&lt;span style=&#34;color:#f92672&#34;&gt;-&lt;/span&gt;port&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;xxxx&lt;span style=&#34;color:#f92672&#34;&gt;/&lt;/span&gt;tcp &lt;span style=&#34;color:#f92672&#34;&gt;--&lt;/span&gt;permanent &lt;span style=&#34;color:#75715e&#34;&gt;#系统防火墙开放需要加入的端口，xxxx 为你需要加入的端口号&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;firewall&lt;span style=&#34;color:#f92672&#34;&gt;-&lt;/span&gt;cmd &lt;span style=&#34;color:#f92672&#34;&gt;--&lt;/span&gt;reload &lt;span style=&#34;color:#75715e&#34;&gt;#重新加载系统防火墙设置，使刚才加入的端口生效&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;systemctl restart firewalld&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;service &lt;span style=&#34;color:#75715e&#34;&gt;#重启系统防火墙&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;firewall&lt;span style=&#34;color:#f92672&#34;&gt;-&lt;/span&gt;cmd &lt;span style=&#34;color:#f92672&#34;&gt;--&lt;/span&gt;list&lt;span style=&#34;color:#f92672&#34;&gt;-&lt;/span&gt;ports &lt;span style=&#34;color:#75715e&#34;&gt;#列出系统防火墙已开放端口，你会发现你刚才设置的端口号已经加入其中&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;vi &lt;span style=&#34;color:#f92672&#34;&gt;/&lt;/span&gt;etc&lt;span style=&#34;color:#f92672&#34;&gt;/&lt;/span&gt;ssh&lt;span style=&#34;color:#f92672&#34;&gt;/&lt;/span&gt;sshd_config &lt;span style=&#34;color:#75715e&#34;&gt;#打开 ssh 配置文件&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;#Port 22 #默认 ssh 登录端口，前面加#号注释掉默认的22端口&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;Port xxxx &lt;span style=&#34;color:#75715e&#34;&gt;#xxxx 为你需要添加 ssh 登录权限的端口号&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;semanage port &lt;span style=&#34;color:#f92672&#34;&gt;-&lt;/span&gt;a &lt;span style=&#34;color:#f92672&#34;&gt;-&lt;/span&gt;t ssh_port_t &lt;span style=&#34;color:#f92672&#34;&gt;-&lt;/span&gt;p tcp xxxx &lt;span style=&#34;color:#75715e&#34;&gt;#xxxx 为你需要添加 ssh 登录权限的端口号,这一步是将端口加入到 SELinux 安全模块&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;semanage port &lt;span style=&#34;color:#f92672&#34;&gt;-&lt;/span&gt;l&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;grep ssh &lt;span style=&#34;color:#75715e&#34;&gt;#列出具有 ssh 权限的端口号，出现你设置的端口号证明向 SELinux 已经加入成功&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;systemctl reload sshd &lt;span style=&#34;color:#75715e&#34;&gt;#重新加载 ssh 服务使刚才的设置生效&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;systemctl restart sshd &lt;span style=&#34;color:#75715e&#34;&gt;#重启 ssh 服务&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;reboot &lt;span style=&#34;color:#75715e&#34;&gt;#重启&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;ssh username&lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;@&lt;/span&gt;ip:port &lt;span style=&#34;color:#75715e&#34;&gt;#尝试用新的端口号登录系统&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description>
    </item>
    <item>
      <title>利用 Docker 容器安装 Haproxy</title>
      <link>https://sixdian.com/post/docker-haproxy/</link>
      <pubDate>Fri, 22 Apr 2022 19:50:20 +0800</pubDate>
      <guid>https://sixdian.com/post/docker-haproxy/</guid>
      <description>&lt;p&gt;Docker 是一个开源软件平台。与虚拟机类似，准确的说是在操作系统层虚拟化，让软件成为标准化的单元。它可以使几乎任何软件部署到跨平台的操作系统上。&lt;/p&gt;
&lt;p&gt;Haproxy 是用 C 语言编写的开源 TCP/HTTP 代理、负载均衡应用程序。&lt;/p&gt;
&lt;p&gt;下面就介绍我在 Rocky Linux 平台下用 Docker 部署 Haproxy 实现代理后端网站的案例&lt;/p&gt;
&lt;h2 id=&#34;设置存储库&#34;&gt;设置存储库&lt;/h2&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-fallback&#34; data-lang=&#34;fallback&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;sudo yum install -y yum-utils
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-gdscript3&#34; data-lang=&#34;gdscript3&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;sudo yum&lt;span style=&#34;color:#f92672&#34;&gt;-&lt;/span&gt;config&lt;span style=&#34;color:#f92672&#34;&gt;-&lt;/span&gt;manager \
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#f92672&#34;&gt;--&lt;/span&gt;add&lt;span style=&#34;color:#f92672&#34;&gt;-&lt;/span&gt;repo \
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    https:&lt;span style=&#34;color:#f92672&#34;&gt;//&lt;/span&gt;download&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;docker&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;com&lt;span style=&#34;color:#f92672&#34;&gt;/&lt;/span&gt;linux&lt;span style=&#34;color:#f92672&#34;&gt;/&lt;/span&gt;centos&lt;span style=&#34;color:#f92672&#34;&gt;/&lt;/span&gt;docker&lt;span style=&#34;color:#f92672&#34;&gt;-&lt;/span&gt;ce&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;repo
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id=&#34;安装-docker-引擎&#34;&gt;安装 Docker 引擎&lt;/h2&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-fallback&#34; data-lang=&#34;fallback&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;sudo yum install docker-ce docker-ce-cli containerd.io
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id=&#34;启动-docker-并设置开机启动&#34;&gt;启动 Docker 并设置开机启动&lt;/h2&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-fallback&#34; data-lang=&#34;fallback&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;sudo systemctl start docker
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;sudo systemctl enable docker
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id=&#34;拉取-haproxy-容器镜像并启动容器&#34;&gt;拉取 Haproxy 容器镜像并启动容器&lt;/h2&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-fallback&#34; data-lang=&#34;fallback&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;docker run -d --name haproxy -v /etc/haproxy/haproxy.cfg:/usr/local/etc/haproxy/haproxy.cfg:ro -p 80:80 -p 443:443 -p 8500:8500  --restart always haproxy:2.3.19-alpine3.15
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description>
    </item>
    <item>
      <title>Hugo 使用 Jane 主题常用的一些配置</title>
      <link>https://sixdian.com/post/jane-theme-config/</link>
      <pubDate>Thu, 21 Apr 2022 20:08:35 +0800</pubDate>
      <guid>https://sixdian.com/post/jane-theme-config/</guid>
      <description>&lt;p&gt;Hugo 下的 Jane 主题是基于 even 主题进行的重新改造，主要有以下特色：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;响应式设计&lt;/li&gt;
&lt;li&gt;多国语言支持&lt;/li&gt;
&lt;li&gt;支持多个 Shortcode&lt;/li&gt;
&lt;li&gt;单独设计的标签页和分类页&lt;/li&gt;
&lt;li&gt;支持社交网站链接&lt;/li&gt;
&lt;li&gt;优秀的分页、目录、注脚样式&lt;/li&gt;
&lt;li&gt;使用更快的 Chroma 代码高亮&lt;/li&gt;
&lt;li&gt;自定义 css、js、head&lt;/li&gt;
&lt;li&gt;支持子目录&lt;/li&gt;
&lt;li&gt;搜索引擎优化&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;初始化的样式展示的元素繁多可能不太符合每个人的实际需求，我们需要对需要显示的内容样式进行修改来增强站点整体的美感。下面就介绍如何改靠自己的独特主题：&lt;/p&gt;
&lt;p&gt;默认情况下生成的站点部署后我我们会发现在手机上点按菜单位置无效，无法正常显示下拉菜单。我们可以按照下面的方法让菜单能在移动端正常显示。&lt;/p&gt;
&lt;h2 id=&#34;jane-主题移动端无法显示下拉菜单的解决方法&#34;&gt;Jane 主题移动端无法显示下拉菜单的解决方法&lt;/h2&gt;
&lt;p&gt;themes\jane\layouts\partials\scripts.html #根据路径找到这个文件,删除其中的 integrity 属性&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-fallback&#34; data-lang=&#34;fallback&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&amp;lt;script type=&amp;#34;text/javascript&amp;#34; src=&amp;#34;{{ $secureJS.RelPermalink }}&amp;#34; integrity=&amp;#34;{{ $secureJS.Data.Integrity }}&amp;#34; crossorigin=&amp;#34;anonymous&amp;#34;&amp;gt;&amp;lt;/script&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;另外现在人们通过 RSS 客户端阅读的方式已经越来越少，Jane 主题内的 RSS 订阅图标我个人觉得太过多余不符合我追求简洁的审美观，所以也要对它进行隐藏处理。具体处理方法如下：&lt;/p&gt;
&lt;h2 id=&#34;jane-主题底部-rss-订阅图标删除&#34;&gt;Jane 主题底部 RSS 订阅图标删除&lt;/h2&gt;
&lt;p&gt;./layouts/partials/social_links.html #在 themes 文件夹下根据路径找到这个文件，删除以下代码&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-fallback&#34; data-lang=&#34;fallback&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&amp;lt;!--
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;{{/* RSS icon  */}}
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;{{ with .Site.GetPage &amp;#34;home&amp;#34; -}}
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  {{- with .OutputFormats.Get &amp;#34;RSS&amp;#34; -}}
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &amp;lt;a href=&amp;#34;{{ .Permalink }}&amp;#34; rel=&amp;#34;noopener {{ .Rel }}&amp;#34; type=&amp;#34;{{ .MediaType.Type }}&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    class=&amp;#34;iconfont&amp;#34; title=&amp;#34;rss&amp;#34; target=&amp;#34;_blank&amp;#34;&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    {{ partial &amp;#34;svg/rss.svg&amp;#34; }}
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &amp;lt;/a&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  {{ end -}}
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;{{- end -}}
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;--&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;其它需要设置的细节内容过多，而且过于简单，下面统一做个总结：&lt;/p&gt;</description>
    </item>
    <item>
      <title>利用 Hugo 搭建 Blog</title>
      <link>https://sixdian.com/post/hugo-blog/</link>
      <pubDate>Wed, 20 Apr 2022 14:27:53 +0800</pubDate>
      <guid>https://sixdian.com/post/hugo-blog/</guid>
      <description>&lt;p&gt;Hugo 是一个用 Go 语言编写的开源静态网站生成器，只需几秒钟即可生成一个网站，被认为是目前世界上最快的网站构建框架（本站的搭建就是基于 Hugo）。下面就介绍如何利用 Hugo 建立自己的独立 Blog。&lt;/p&gt;
&lt;p&gt;本方案需具备以下条件：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;一台拥有 80 端口权限的 Linux 服务器或 VPS。（本教程是基于 Rocky Linux 操作系统的 VPS）&lt;/li&gt;
&lt;li&gt;拥有一个域名并解析到目标服务器IP。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;大致步骤：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;本地电脑利用 Hugo 生成静态网站。&lt;/li&gt;
&lt;li&gt;利用 Git（一个开源分布式版本控制工具）将本地生成的网站部署到服务器。&lt;/li&gt;
&lt;li&gt;服务器上使用 Nginx（一个异步框架的网页服务器）为网站提供代理服务。&lt;/li&gt;
&lt;li&gt;使用 Let&amp;rsquo;s Encrypt 的 TSL 证书为网页传输提供加密特性。&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;安装-git&#34;&gt;安装 Git&lt;/h2&gt;
&lt;p&gt;本地&lt;a href=&#34;https://git-scm.com/downloads&#34;&gt;下载&lt;/a&gt;安装 Git 并设置环境变量&lt;/p&gt;
&lt;h2 id=&#34;安装-hugo&#34;&gt;安装 Hugo&lt;/h2&gt;
&lt;p&gt;本地&lt;a href=&#34;https://github.com/gohugoio/hugo/releases&#34;&gt;下载&lt;/a&gt;安装 Hugo&lt;/p&gt;
&lt;h2 id=&#34;利用-hugo-创建一个新站点&#34;&gt;利用 Hugo 创建一个新站点&lt;/h2&gt;
&lt;p&gt;终端下执行如下代码：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-fallback&#34; data-lang=&#34;fallback&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;hugo new site sitename #其中 sitename 为站点文件夹名。
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;这样就在当前目录下生成一个名叫 &amp;ldquo;sitename&amp;rdquo; 的初始站点文件夹。&lt;/p&gt;
&lt;p&gt;进入站点目录：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-fallback&#34; data-lang=&#34;fallback&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;cd sitename
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;你会看到站点目录结构：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-fallback&#34; data-lang=&#34;fallback&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;- archetypes
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;- content
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;- data
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;- layouts
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;- public
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;- resources
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;- static
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;- themes
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  * config.toml
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id=&#34;添加主题&#34;&gt;添加主题&lt;/h2&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-fallback&#34; data-lang=&#34;fallback&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;cd themes
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;git clone https://github.com/xianmin/hugo-theme-jane.git --depth=1 themes/jane
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;复制示例文件到站点内容目录：&lt;/p&gt;</description>
    </item>
  </channel>
</rss>
