<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>优化 on Colinx Blog</title>
    
    
    
    <link>/tags/%E4%BC%98%E5%8C%96/</link>
    <description>Recent content in 优化 on Colinx Blog</description>
    <generator>Hugo -- gohugo.io</generator>
    <language>en-us</language>
    <lastBuildDate>Sun, 25 Dec 2022 00:00:00 +0000</lastBuildDate>
    
	<atom:link href="/tags/%E4%BC%98%E5%8C%96/index.xml" rel="self" type="application/rss+xml" />
    
    
    <item>
      <title>2023 静态网站托管服务速度对比</title>
      <link>/posts/2023%E9%9D%99%E6%80%81%E7%BD%91%E7%AB%99%E6%89%98%E7%AE%A1%E6%9C%8D%E5%8A%A1%E9%80%9F%E5%BA%A6%E5%AF%B9%E6%AF%94/</link>
      <pubDate>Sun, 25 Dec 2022 00:00:00 +0000</pubDate>
      
      <guid>/posts/2023%E9%9D%99%E6%80%81%E7%BD%91%E7%AB%99%E6%89%98%E7%AE%A1%E6%9C%8D%E5%8A%A1%E9%80%9F%E5%BA%A6%E5%AF%B9%E6%AF%94/</guid>
      <description>
        
          
          
          
        
        
        

&lt;!-- # 2023 静态网站托管服务速度对比 --&gt;

&lt;p&gt;对几家喜闻乐见的静态网站托管服务商 Vercel、Netlify、Cloudflare Pages、Azure Static Pages 测个速&lt;/p&gt;

&lt;p&gt;&lt;img src=&#34;https://blog-1301127393.file.myqcloud.com/BlogImgs/202212252033118.png&#34; alt=&#34;Pasted image 20221224164447&#34; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&#34;https://blog-1301127393.file.myqcloud.com/BlogImgs/202212252033119.png&#34; alt=&#34;Pasted image 20221224173040&#34; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&#34;https://blog-1301127393.file.myqcloud.com/BlogImgs/202212252033120.png&#34; alt=&#34;Pasted image 20221224164841&#34; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&#34;https://blog-1301127393.file.myqcloud.com/BlogImgs/202212252033121.png&#34; alt=&#34;Pasted image 20221224165726&#34; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;测速后结论：&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Vercel 全部爆炸，大陆地区全部不通&lt;/li&gt;
&lt;li&gt;Netlify 对三家支持都比较不错，不过都有些不太稳定&lt;/li&gt;
&lt;li&gt;Cloudflare 对电信友好，联通次之，移动大规模连不上&lt;/li&gt;
&lt;li&gt;Azure 电信友好，联通次之，移动也是大规模连不上&lt;/li&gt;
&lt;/ul&gt;

&lt;h2 id=&#34;特邀嘉宾-腾讯云海外-cdn&#34;&gt;特邀嘉宾：腾讯云海外 CDN&lt;/h2&gt;

&lt;p&gt;号称「充钱就可以获得力量」，那么让我们来看下冲了钱后的效果&lt;/p&gt;

&lt;p&gt;&lt;img src=&#34;https://blog-1301127393.file.myqcloud.com/BlogImgs/202212252033122.png&#34; alt=&#34;Pasted image 20221224181710&#34; /&gt;&lt;/p&gt;

&lt;h5 id=&#34;腾讯云海外-cdn&#34;&gt;腾讯云海外 CDN&lt;/h5&gt;

&lt;ul&gt;
&lt;li&gt;大陆地区大部分路由到香港，极少数华东地区路由到美国，全部为 AWS 节点&lt;/li&gt;
&lt;li&gt;移动除西北地区外都尚可，联通次之也是除西北外都还行，电信惨不忍睹&lt;/li&gt;
&lt;/ul&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;用腾讯云 CDN 被 D 怎么办？天价账单可付不起&lt;/strong&gt;
小时结计费模式，欠费后保护期为 2 小时，还可以按流量或带宽单独设定防护策略&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;接下来开始真正的试炼：检测晚高峰期间各家的性能，晚上这个点各大运营商的出口都比较拥堵，这个时候更能体现出各家的性能优劣&lt;/p&gt;

&lt;h2 id=&#34;晚高峰测速结果&#34;&gt;晚高峰测速结果&lt;/h2&gt;

&lt;p&gt;&lt;img src=&#34;https://blog-1301127393.file.myqcloud.com/BlogImgs/202212252033123.png&#34; alt=&#34;Pasted image 20221225190111&#34; /&gt;&lt;/p&gt;

&lt;p&gt;Azure 全线炸裂 ⬆️&lt;/p&gt;

&lt;p&gt;&lt;img src=&#34;https://blog-1301127393.file.myqcloud.com/BlogImgs/202212252033124.png&#34; alt=&#34;Pasted image 20221225190148&#34; /&gt;&lt;/p&gt;

&lt;p&gt;Netlify 依然给力 ⬆️&lt;/p&gt;

&lt;p&gt;&lt;img src=&#34;https://blog-1301127393.file.myqcloud.com/BlogImgs/202212252033125.png&#34; alt=&#34;Pasted image 20221225190325&#34; /&gt;
Vercel 依然一片红 ⬆️&lt;/p&gt;

&lt;p&gt;&lt;img src=&#34;https://blog-1301127393.file.myqcloud.com/BlogImgs/202212252033127.png&#34; alt=&#34;Pasted image 20221225190510&#34; /&gt;
CF 跟白天差不多，电信联通勉强可用 ⬆️&lt;/p&gt;

&lt;p&gt;&lt;img src=&#34;https://blog-1301127393.file.myqcloud.com/BlogImgs/202212252033128.png&#34; alt=&#34;Pasted image 20221225190728&#34; /&gt;&lt;/p&gt;

&lt;p&gt;TX 海外 CDN 红绿参半，不过可以看到很强的地域特性&lt;/p&gt;

&lt;h4 id=&#34;其他补充信息&#34;&gt;其他补充信息：&lt;/h4&gt;

&lt;h5 id=&#34;vercel&#34;&gt;Vercel&lt;/h5&gt;

&lt;ul&gt;
&lt;li&gt;不能自定义 HTTPS 证书，走 Let‘s Encrypt&lt;/li&gt;
&lt;li&gt;有 Anycast，76.76.21.21，用 DNS 做负载均衡会比较方便&lt;/li&gt;
&lt;li&gt;使用分钟级监控看过，时不时有连不上的情况，比 Cloudflare 明显差些，不过免费没有 SLA 保障也正常&lt;/li&gt;
&lt;li&gt;大陆地区全部爆炸，不予考虑&lt;/li&gt;
&lt;/ul&gt;

&lt;h5 id=&#34;netlify&#34;&gt;Netlify&lt;/h5&gt;

&lt;ul&gt;
&lt;li&gt;可以自定义 HTTPS 证书&lt;/li&gt;
&lt;li&gt;无 Anycast，去年看都是 AWS 承载，今年看有近一半由 Google Cloud 承载&lt;/li&gt;
&lt;li&gt;移动可以优先 Netlify&lt;/li&gt;
&lt;li&gt;可以安装插件，网站更新可以自动推送 Google 比较方便&lt;/li&gt;
&lt;li&gt;全部路由到新加坡，北方用户可能延迟较高&lt;/li&gt;
&lt;/ul&gt;

&lt;h5 id=&#34;cloudflare-pages&#34;&gt;Cloudflare Pages&lt;/h5&gt;

&lt;ul&gt;
&lt;li&gt;Cloudflare 可以自己签发证书，不像其他使用 Let‘s Encrypt 的必须要能解析到&lt;/li&gt;
&lt;li&gt;有 Anycast，可以直接解析到 1.1.1.1，做负载均衡方便&lt;/li&gt;
&lt;li&gt;移动 pass，电信联通尚可&lt;/li&gt;
&lt;li&gt;不太稳定，动不动就被墙，需要常检测更新节点联通性&lt;/li&gt;
&lt;/ul&gt;

&lt;h5 id=&#34;azure-static-pages&#34;&gt;Azure Static Pages&lt;/h5&gt;

&lt;ul&gt;
&lt;li&gt;可以通过 TXT 记录验证和自动申请 HTTPS&lt;/li&gt;
&lt;li&gt;无 Anycast，只有香港的节点，两个 IP，方便负载均衡&lt;/li&gt;
&lt;li&gt;移动 pass，电信联通尚可&lt;/li&gt;
&lt;li&gt;北方用户可能延迟较高&lt;/li&gt;
&lt;/ul&gt;

&lt;h2 id=&#34;策略&#34;&gt;策略&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Vercel 全线不可用，Azure 晚高峰全部炸裂，大陆地区不考虑&lt;/li&gt;
&lt;li&gt;Netlify 做全局默认 fallback&lt;/li&gt;
&lt;li&gt;海外默认走 Cloudflare、Vercel&lt;/li&gt;
&lt;li&gt;电信走 Netlify，无可替代&lt;/li&gt;
&lt;li&gt;移动走 Netlify 和腾讯云海外 CDN&lt;/li&gt;
&lt;li&gt;联通走 Netlify、Cloudflare、腾讯云海外 CDN&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;博客的几个镜像站点我也挂在了仓库的 README 页面，加了几个 badge 可以快速看到几个 mirror 的联通性情况。&lt;a href=&#34;https://github.com/Colin-XKL/Colinx-Blog&#34;&gt;https://github.com/Colin-XKL/Colinx-Blog&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&#34;https://img.shields.io/website?label=netlify&amp;amp;style=flat-square&amp;amp;url=https%3A%2F%2Fcolins-blog.netlify.app&#34; alt=&#34;Blog-Netlify&#34; /&gt;
&lt;img src=&#34;https://img.shields.io/website?label=vercel&amp;amp;style=flat-square&amp;amp;url=https%3A%2F%2Fcolinx-blog.vercel.app&#34; alt=&#34;Blog-Vercel&#34; /&gt;
&lt;img src=&#34;https://img.shields.io/website?label=cloudflare%20pages&amp;amp;style=flat-square&amp;amp;url=https%3A%2F%2Fcolinx-blog.pages.dev&#34; alt=&#34;Blog-CloudflarePages&#34; /&gt;
&lt;img src=&#34;https://img.shields.io/website?label=azure%20static%20pages&amp;amp;style=flat-square&amp;amp;url=https%3A%2F%2Fnice-glacier-095b09e00.1.azurestaticapps.net&#34; alt=&#34;Blog-AzureStaticPages&#34; /&gt;
&lt;img src=&#34;https://img.shields.io/website?label=github%20pages&amp;amp;style=flat-square&amp;amp;url=https%3A%2F%2Fgh-pages.colinx.one&#34; alt=&#34;Blog-GithubPages&#34; /&gt;
&lt;img src=&#34;https://img.shields.io/website?label=tencent%20cdn&amp;amp;style=flat-square&amp;amp;url=https%3A%2F%2Fblog-txcdn.colinx.one&#34; alt=&#34;Blog-TencentCDN&#34; /&gt;&lt;/p&gt;

        
        </description>
    </item>
    
    <item>
      <title>国外静态网站托管服务商国内速度对比及线路优化</title>
      <link>/posts/%E5%9B%BD%E5%A4%96%E9%9D%99%E6%80%81%E7%BD%91%E7%AB%99%E6%89%98%E7%AE%A1%E5%9C%A8%E5%9B%BD%E5%86%85%E9%80%9F%E5%BA%A6%E5%AF%B9%E6%AF%94%E5%8F%8A%E7%BA%BF%E8%B7%AF%E4%BC%98%E5%8C%96/</link>
      <pubDate>Thu, 05 May 2022 00:00:00 +0000</pubDate>
      
      <guid>/posts/%E5%9B%BD%E5%A4%96%E9%9D%99%E6%80%81%E7%BD%91%E7%AB%99%E6%89%98%E7%AE%A1%E5%9C%A8%E5%9B%BD%E5%86%85%E9%80%9F%E5%BA%A6%E5%AF%B9%E6%AF%94%E5%8F%8A%E7%BA%BF%E8%B7%AF%E4%BC%98%E5%8C%96/</guid>
      <description>
        
          
          
          
        
        
        

&lt;h1 id=&#34;国外静态网站托管服务商国内速度对比及线路优化&#34;&gt;国外静态网站托管服务商国内速度对比及线路优化&lt;/h1&gt;

&lt;p&gt;本文主要探讨 Netlify、Vercel、Cloudflare Pages、Azure Web Hosting 在国内的速度对比及线路优化&lt;/p&gt;

&lt;p&gt;以我的博客站点 blog.colinx.one 为例，使用 hugo 构建，选用的模板也很轻量没有太多奇奇怪怪的第三方组件，使用这些静态服务托管主要图个方便，不用备案而且基本流量不限。&lt;/p&gt;

&lt;p&gt;分别挂了四个服务商的 CI, 每次更新 Git 仓库都会自动触发构建。分别对四个默认分配的域名进行检测。&lt;/p&gt;

&lt;h2 id=&#34;四家服务商默认设置国内速度测试对比&#34;&gt;四家服务商默认设置国内速度测试对比&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Netlify&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href=&#34;https://colins-blog.netlify.app&#34;&gt;colins-blog.netlify.app&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&#34;https://blog-1301127393.file.myqcloud.com/BlogImgs/20220505191719.png&#34; alt=&#34;Netlify 在国内的速度检测&#34; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Vercel&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href=&#34;https://colinx-blog.vercel.app&#34;&gt;colinx-blog.vercel.app&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&#34;https://blog-1301127393.file.myqcloud.com/BlogImgs/20220505191728.png&#34; alt=&#34;Vercel 在国内的速度检测&#34; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Azure&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href=&#34;https://nice-glacier-095b09e00.1.azurestaticapps.net&#34;&gt;nice-glacier-095b09e00.1.azurestaticapps.net&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&#34;https://blog-1301127393.file.myqcloud.com/BlogImgs/20220505191733.png&#34; alt=&#34;Azure 在国内的速度检测&#34; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;CloudFlare Pages&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href=&#34;https://colinx-blog.pages.dev&#34;&gt;colinx-blog.pages.dev&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&#34;https://blog-1301127393.file.myqcloud.com/BlogImgs/20220505191738.png&#34; alt=&#34;Cloudflare Pages 在国内的速度检测&#34; /&gt;&lt;/p&gt;

&lt;p&gt;emmm Cloudflare 这在国内的速度可太拉胯了，虽说可以通过自选节点的方式曲线救国，但想了想还是算了。利用好其他三家的节点应该足够国内大部分用户访问。&lt;/p&gt;

&lt;p&gt;&amp;mdash;Update on 2022-05-22&amp;mdash;&lt;/p&gt;

&lt;p&gt;又重新测了一下 cloudflare 的速度，这次倒是一片绿，看来还是要运气，不太稳定。电信和联通都嗖嗖的，移动基本上全挂了。。。&lt;/p&gt;

&lt;p&gt;&lt;img src=&#34;https://blog-1301127393.file.myqcloud.com/BlogImgs/202205221906656.png&#34; alt=&#34;image-20220522190417139&#34; /&gt;&lt;/p&gt;

&lt;p&gt;这次能连接的节点主要就两个 172.66.45.34 和 172.66.46.222。&lt;/p&gt;

&lt;p&gt;&amp;mdash;end&amp;mdash;&lt;/p&gt;

&lt;p&gt;筛选后可用的节点&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;Netlify
18.140.226.100 amazon SG
54.255.56.197 amazon SG
206.189.46.168 digital ocean SG

Vercel
显示caronet，据说为AWS节点 (76.76.21.21 Anycast)
76.76.21.241
76.76.21.98
76.76.21.93
76.76.21.142
76.76.21.22
76.76.21.61
76.76.21.164

Azure
52.175.64.109 US MS
13.70.37.114 HK MS
51.124.12.35 UK
&lt;/code&gt;&lt;/pre&gt;

&lt;h2 id=&#34;优化前&#34;&gt;优化前&lt;/h2&gt;

&lt;p&gt;优化前使用了 dnspod 的解析服务做 4 个 A 记录的负载均衡，免费版套餐单记录单线路只能设置最多两个负载均衡记录，我这个是之前开通专业版套餐设置的，套餐到期了原有记录依旧保留，所以能设置四条同线路 A 记录负载均衡。&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;before

206.189.46.168  digital ocean %netlify
76.223.126.88 %vercel
18.140.226.100 amazon  %netlify
18.139.201.98 amazon %netlify 
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;检测一波，红了好几个省份&lt;/p&gt;

&lt;p&gt;&lt;img src=&#34;https://blog-1301127393.file.myqcloud.com/BlogImgs/20220505191745.png&#34; alt=&#34;image-20220504222718997&#34; /&gt;&lt;/p&gt;

&lt;p&gt;慢点可以接受，线路不通可不能忍。之前粗略筛的几个节点，如今过了快两年了，线路估计也发生了变化，简单跑了一下这几条，发现这个线路现在的状况实在不咋地&lt;/p&gt;

&lt;p&gt;&lt;img src=&#34;https://blog-1301127393.file.myqcloud.com/BlogImgs/20220505191749.png&#34; alt=&#34;trace&#34; /&gt;&lt;/p&gt;

&lt;p&gt;这圈子兜的也太大了些。。。哦原来是 Digital Ocean 的节点啊，那没事了。&lt;/p&gt;

&lt;p&gt;亚马逊的节点稍微好些，没有绕道日本这么离谱的行为&lt;/p&gt;

&lt;p&gt;&lt;img src=&#34;https://blog-1301127393.file.myqcloud.com/BlogImgs/20220505191834.png&#34; alt=&#34;trace&#34; /&gt;&lt;/p&gt;

&lt;p&gt;再来看看 vercel 节点的表现&lt;/p&gt;

&lt;p&gt;&lt;img src=&#34;https://blog-1301127393.file.myqcloud.com/BlogImgs/20220505191933.png&#34; alt=&#34;trace2&#34; /&gt;&lt;/p&gt;

&lt;p&gt;这里是自选的节点，直连东京节点，好评&lt;/p&gt;

&lt;p&gt;&lt;img src=&#34;https://blog-1301127393.file.myqcloud.com/BlogImgs/20220505192022.png&#34; alt=&#34;trace3&#34; /&gt;&lt;/p&gt;

&lt;p&gt;但是默认的 AnyCast 节点这个路由就稍微绕路了，看来大中华区还是得自己动手调整下线路&lt;/p&gt;

&lt;h2 id=&#34;优化后&#34;&gt;优化后&lt;/h2&gt;

&lt;p&gt;after&lt;/p&gt;

&lt;p&gt;&lt;img src=&#34;https://blog-1301127393.file.myqcloud.com/BlogImgs/20220505192417.png&#34; alt=&#34;image-20220505190011635&#34; /&gt;&lt;/p&gt;

&lt;p&gt;检测优化过程就不赘述了，都是拿几个基本的工具&lt;code&gt;ping&lt;/code&gt;、&lt;code&gt;tcping&lt;/code&gt;、&lt;code&gt;httping&lt;/code&gt;、&lt;code&gt;traceroute&lt;/code&gt;还有上文的全国网速检测网站对那几个节点挨个检测，直接上结论：&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Vercel 的 Anycast 基本上都是路由到日本，但是同一个地方可能会被路由到不同的路线，比如有些 IP 从上海出口转日本东京，有些是从广东出口转日本&lt;/li&gt;
&lt;li&gt;Netlify 的节点主要是在新加坡，提供商有 AWS 和 Digital Ocean，实测后者的节点经常性抽风，国内流量过去会绕个大圈子，还是 AWS 的靠谱些&lt;/li&gt;
&lt;li&gt;Azure 的静态网页托管服务现在是免费的，带宽和流量啥的妥妥够用，不过开账户有门槛，我是用 Github Education Pack 在 Azure 开了个 Azure for Students 订阅，每年 100 刀额度，到期可续&lt;/li&gt;
&lt;li&gt;Azure 能用的就香港节点，其他都是去往北美和欧洲的，直接 pass。对电信友好，移动和联通很不友好，饶了一大圈&lt;/li&gt;
&lt;li&gt;AWS 的节点对移动和联通挺友好，对电信支持略差&lt;/li&gt;
&lt;li&gt;Vercel 节点也是对移动和联通友好些&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;其他附加信息&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Netlify 可自定义证书，Vercel 不可以。所以要保证 vercel 的服务器可以把域名解析到自家服务器，不然没法续签 SSL 证书&lt;/li&gt;
&lt;li&gt;Cloudflare 的 CI 啥的做的挺垃圾，起步晚，很多东西不完善&lt;/li&gt;
&lt;li&gt;Netlify 可以安装插件，推送 sitemap 和网站安全性检测这些我感觉挺好使&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;最终线路设置&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;电信和其他走 Azure 与 Vercel&lt;/li&gt;
&lt;li&gt;移动联通走 Netlify 的 AWS 节点，以及 Vercel 在 JP 的节点&lt;/li&gt;
&lt;li&gt;海外走 Vercel 的 Anycast IP&lt;/li&gt;
&lt;/ul&gt;

&lt;h2 id=&#34;常用线路检测与优化工具链接&#34;&gt;常用线路检测与优化工具链接&lt;/h2&gt;

&lt;p&gt;Best Trace&lt;/p&gt;

&lt;p&gt;&lt;a href=&#34;https://apps.apple.com/us/app/best-trace/id1037779758?l=zh&#34;&gt;https://apps.apple.com/us/app/best-trace/id1037779758?l=zh&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;IP 批量查询&lt;/p&gt;

&lt;p&gt;&lt;a href=&#34;http://www.jsons.cn/ipbatch/&#34;&gt;http://www.jsons.cn/ipbatch/&lt;/a&gt;&lt;/p&gt;

        
        </description>
    </item>
    
    <item>
      <title>Minecraft 上云笔记 - MC 服务器快速搭建&amp;MOD 推荐&amp;性能优化</title>
      <link>/posts/minecraft%E4%B8%8A%E4%BA%91%E7%AC%94%E8%AE%B0-mc%E6%9C%8D%E5%8A%A1%E5%99%A8%E5%BF%AB%E9%80%9F%E6%90%AD%E5%BB%BAmod%E6%8E%A8%E8%8D%90%E6%80%A7%E8%83%BD%E4%BC%98%E5%8C%96/</link>
      <pubDate>Sun, 07 Feb 2021 00:00:00 +0000</pubDate>
      
      <guid>/posts/minecraft%E4%B8%8A%E4%BA%91%E7%AC%94%E8%AE%B0-mc%E6%9C%8D%E5%8A%A1%E5%99%A8%E5%BF%AB%E9%80%9F%E6%90%AD%E5%BB%BAmod%E6%8E%A8%E8%8D%90%E6%80%A7%E8%83%BD%E4%BC%98%E5%8C%96/</guid>
      <description>
        
          
          
          
        
        
        

&lt;!-- # Minecraft 上云笔记 - MC 服务器快速搭建&amp;MOD 推荐&amp;性能优化 --&gt;

&lt;blockquote&gt;
&lt;p&gt;MC 快速上云，学生机轻松带动，三五好友，畅快联机&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2 id=&#34;前言-踩坑&#34;&gt;前言&amp;amp;踩坑&lt;/h2&gt;

&lt;p&gt;距离上一次玩 MC 已有四年之久，上次玩的时候还用的是家里的老爷机，连独显都没有，玩个整合包都费劲。如今设备早已更新换代，B 站不少做 MC 的 UP 主的内容挺有趣，于是尝试重新拾起 MC。&lt;/p&gt;

&lt;p&gt;手机端国内只有网易代理，APP 卡顿严重，生态封闭，体验奇差。安卓下载的国际服倒是还不错，不过身为基岩版，与 Java 版的生态并不相通。Github 上找到了可以让基岩版进 Java 版服务器的轮子，不过手机端连接服务器又是一个麻烦事。连接远程服务器又需要登录 Xbox，但是登上了连接的时候又出现奇怪的问题。&lt;/p&gt;

&lt;p&gt;贴吧有人给出解决方案，搭建 VPN，形成局域网，那样服务器会被视为局域网内开放的 MC 服务端。但天朝政策收紧，搭建 PPTP、L2TP 等隧道均未果，严重怀疑云服务商干扰了对应服务的端口。几番权衡决定投归 PC 端的 Java 版，生态丰富而且可以充分利用好硬件性能。&lt;/p&gt;

&lt;h2 id=&#34;mc-服务器快速搭建&#34;&gt;MC 服务器快速搭建&lt;/h2&gt;

&lt;h3 id=&#34;mc-服务端选择&#34;&gt;MC 服务端选择&lt;/h3&gt;

&lt;p&gt;物色了很多 MC 服务端，但看了下主要可用且被应用广泛的就两类，&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Spigot、PaperSpigot 这类加装插件的&lt;/li&gt;
&lt;li&gt;SpongeForge 这类可以加装 Mod 的&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;前者生态目测更丰富些，MCBBS 上的开服板块大部分都是 PaperSpigot 搭建的。但是好像都是那种几十上百人的公用服务器，什么权限控制、小游戏、防作弊的插件居多，而我只是想要一个能够装 Mod 的可以供三五好友方便联机的服务器。我的选择是后者&lt;/p&gt;

&lt;h3 id=&#34;mc-服务器快速搭建-1&#34;&gt;MC 服务器快速搭建&lt;/h3&gt;

&lt;p&gt;搭建方案千千万，不过 Docker 来的最实在。Github 找到一个非常方便的镜像，&lt;a href=&#34;https://github.com/itzg/docker-minecraft-server&#34;&gt;itzg/minecraft-server&lt;/a&gt;。这个镜像是运行时构建的，会根据指定的环境变量下载和安装对应的 MC 服务端程序。支持的服务端有 Bukkit、Spigot、PaperSpigot、SpongeForge 等等，MC 的版本和各项参数均支持通过环境变量自定义，非常方便。而且可以通过更换不同的 Tag 来使用不同的 JDK 版本，从 8 到 15，Hotspot 和 OpenJ9 都有，可以按需选用。有 arm 版本，树莓派也可食用。&lt;/p&gt;

&lt;p&gt;安装 Docker 和 docker-compose 后，可以方便地编写脚本来快速启动一个 MC 服务器。这里放上我的&lt;code&gt;docker-compose.yml&lt;/code&gt;文件&lt;/p&gt;

&lt;pre&gt;&lt;code class=&#34;language-yaml&#34;&gt;version: &amp;quot;3&amp;quot;
# Forge with Sponge API support. THIS REQUIRES DOWNLOADING SPONGEFORGE.
# Place the SpongeForge jar file in /data/mods. Other Forge mods go here as well.
# Place Sponge mods in /data/mods/plugins. Yes, this is a directory inside the Forge mod directory. Do NOT use /data/plugins.

services:
  minecraft:
    image: itzg/minecraft-server
    container_name: &amp;quot;MCServer&amp;quot;
    ports:
      - &amp;quot;25565:25565&amp;quot;
    volumes:
      - &amp;quot;mc:/data&amp;quot; # 主要数据，包括存档数据等
      - &amp;quot;~/.minecraft/forgemods/:/data/mods/&amp;quot; #Forge Mod 位置
      # - &amp;quot;~/.minecraft/sponegemods/:/data/mods/plugins&amp;quot;
      - &amp;quot;~/.minecraft/tmp/:/tmp&amp;quot; # Forge 下载失败可以自己放进去
      - /etc/timezone:/etc/timezone:ro #绑定本机的时区，方便看日志
    environment:
      SERVER_NAME: &amp;quot;MCServer&amp;quot;
      EULA: &amp;quot;TRUE&amp;quot;
      VERSION: &amp;quot;1.12.2&amp;quot; #(Ensure this is compatbile with the version of SpongeForge you are using!)
      TYPE: &amp;quot;FORGE&amp;quot; # 这里以 SpongeForge 的服务端为例，其他服务端也支持
      FORGEVERSION: &amp;quot;RECOMMENDED&amp;quot;
      # FORGEVERSION: &amp;quot;14.23.5.2854&amp;quot;
      CONSOLE: &amp;quot;false&amp;quot;
      ENABLE_RCON: &amp;quot;true&amp;quot;
      RCON_PASSWORD: &amp;quot;mcserver&amp;quot;
      RCON_PORT: 28016
      INIT_MEMORY: 512M
      MAX_MEMORY: 1536M # 内存根据实际需要修改
      OVERRIDE_SERVER_PROPERTIES: &amp;quot;true&amp;quot; 
      SNOOPER_ENABLED: &amp;quot;false&amp;quot; # 统计数据
      VIEW_DISTANCE: 8 #加载区块范围，默认 10，建议 4~8
      SEED: &amp;quot;-505794890&amp;quot; # 初始生成世界的种子
      PVP: &amp;quot;true&amp;quot;
      ONLINE_MODE: &amp;quot;FALSE&amp;quot; #正版校验开关
      ALLOW_FLIGHT: &amp;quot;FALSE&amp;quot; 
      USE_AIKAR_FLAGS: &amp;quot;false&amp;quot; # 一些优化
      RESOURCE_PACK: &amp;quot;https://blog-1301127393.file.myqcloud.com/MC/Distribution/VNR-1.0.1.zip&amp;quot; # 我自己会用的资源包，这里填 url
      NETWORK_COMPRESSION_THRESHOLD: 512 # 网络优化
    restart: unless-stopped
  rcon:
    image: itzg/rcon  # 服务器远程管理面板，具体使用自行百度
    container_name: &amp;quot;RCON&amp;quot;
    depends_on:
      - minecraft
    ports: #这两个端口都需要防火墙放行
      - &amp;quot;3000:4326&amp;quot; # Web UI
      - &amp;quot;4327:4327&amp;quot; # Connection from Web UI
    volumes:
      - &amp;quot;rcon:/opt/rcon-web-admin/db&amp;quot;
      - /etc/timezone:/etc/timezone:ro
    environment:
      RWA_ENV: &amp;quot;TRUE&amp;quot;
      RWA_ADMIN: &amp;quot;TRUE&amp;quot;
      RWA_PASSWORD: &amp;quot;mcadmin&amp;quot;
      RWA_RCON_HOST: &amp;quot;MCServer&amp;quot;
      RWA_RCON_PASSWORD: &amp;quot;mcserver&amp;quot; # RCON server to control
      RWA_RCON_PORT: 28016
    restart: unless-stopped

volumes:
  mc:
  rcon:

&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;环境变量可以设置的地方非常多，可以到项目主页的 README 查看。&lt;a href=&#34;https://github.com/itzg/docker-minecraft-server&#34;&gt;https://github.com/itzg/docker-minecraft-server&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;code&gt;docker-compose up -d&lt;/code&gt; 启动，第一次启动他会下载 MC、下载 MC 服务端、初始化世界。之后就可以在 MC 客户端连接了。（启动完毕就测试一下，测试没问题再进行后面安装 mod、服务器调优（按需）的步骤！）&lt;/p&gt;

&lt;h2 id=&#34;mc-客户端安装&#34;&gt;MC 客户端安装&lt;/h2&gt;

&lt;h3 id=&#34;mc-启动器选择&#34;&gt;MC 启动器选择&lt;/h3&gt;

&lt;p&gt;（正版玩家略过，现在貌似正版购买的只支持官方启动器）&lt;/p&gt;

&lt;p&gt;对于服务器选择，MCBBS 有一篇讲的挺详细，可以到这里挑选：&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;我的世界 Minecraft Java 版 下载指南 | 文件结构说明 | 推荐启动器 - 软件资源 - Minecraft(我的世界) 中文论坛 -
&lt;a href=&#34;https://www.mcbbs.net/forum.php?mod=viewthread&amp;amp;tid=38297&amp;amp;page=1#pid547821&#34;&gt;https://www.mcbbs.net/forum.php?mod=viewthread&amp;amp;tid=38297&amp;amp;page=1#pid547821&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;我推荐的启动器：&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;HMCL&lt;/strong&gt;（力荐！跨平台、颜值高、功能完备，不过需要先装 Java)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;BMCL&lt;/strong&gt;（次推荐，颜值略低，基于.Net，功能完备）&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;我不推荐的启动器：&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Nsiso&lt;/strong&gt; （页面倒是做的漂亮，但是我装完 mod 启动竟然启动不了，兼容性或者说功能完备性欠缺，不知道后续版本如何。当时出问题之后我换 HMCL 就可以完美启动）&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;上一张 HMCL 的主页的图：&lt;/p&gt;

&lt;p&gt;&lt;img src=&#34;https://blog-1301127393.file.myqcloud.com/BlogImgs20210207205913.png&#34; alt=&#34;image-20210129172401421&#34; /&gt;&lt;/p&gt;

&lt;p&gt;其他没有使用过的启动器暂时不予评价。&lt;/p&gt;

&lt;h3 id=&#34;mc-本体安装&#34;&gt;MC 本体安装&lt;/h3&gt;

&lt;p&gt;（正版玩家略过、整合包玩家略过）&lt;/p&gt;

&lt;p&gt;推荐方式为启动器内安装，还可以顺带把 Forge 和 OptiFine 也安装了。&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Forge：安装第三方 Mod 需要&lt;/li&gt;
&lt;li&gt;OptiFine：游戏显示调优，有些光影会需要。&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;版本选择的话，我的选择是 1.12.2。目前 Mod 支持比较完备，生态也很丰富。很多 Mod 最高只支持 1.12.2，目测是后面官方更新了 API 啥的。当然倾向于原版的同学可以选择更新的 1.16，后面的版本有很多有意思的更新。&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;踩坑笔记&lt;/strong&gt;：&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;这些启动器大多带有三个下载源：官方服务器、MCBBS 镜像和 BMCL 镜像。不过我当时安装的时候 BMCL 的镜像抽风了，下载一直没进度。建议选择 MCBBS 的源（虽然可能部分内容更新没有很勤）&lt;/li&gt;
&lt;li&gt;通过启动器自动安装 OptiFine 的时候一直报错，换版本也是一样。后来的解决方案是选择窗口上方的【从本地文件安装/升级】&lt;/li&gt;
&lt;/ol&gt;
&lt;/blockquote&gt;

&lt;h2 id=&#34;mod-推荐&#34;&gt;Mod 推荐&lt;/h2&gt;

&lt;p&gt;针对我实际使用和测试的情况做一些推荐。下文所有 Mod 均在 1.12.2 下测试并实际使用过，兼容性良好。&lt;/p&gt;

&lt;h3 id=&#34;功能增强型-mod-客户端必装&#34;&gt;功能增强型 Mod（客户端必装）&lt;/h3&gt;

&lt;p&gt;这部分 Mod 主要是部分音效和部分不涉及多人游戏的功能的增强，可以随意安装，装不装都不影响好友联机与进服务器。&lt;/p&gt;

&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Mod 名称&lt;/th&gt;
&lt;th&gt;说明&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;

&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;DynamicSurroundings&lt;/td&gt;
&lt;td&gt;动态环境音效，比如草地有蟋蟀的声音，夜晚有狼的声音，使游戏很有沉浸感&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;SoundFilters&lt;/td&gt;
&lt;td&gt;环绕音效，使得 MC 里所有的声音更真实，比如矿洞里的脚步声会有回音，房子里面听外面的声音会更小等等&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;BetterHUD&lt;/td&gt;
&lt;td&gt;加强版的 HUD 信息显示，比如方位信息、坐标信息、时间信息、人物护甲、健康状态信息等等很多功能，而且可自定义程度也很高。&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;JEI&lt;/td&gt;
&lt;td&gt;可以方便地查看物品的合成表，一般整合包必备的插件&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;JustEnoughCharacters&lt;/td&gt;
&lt;td&gt;JEI 的扩展，支持按拼音、简拼搜索物品&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;Journeymap&lt;/td&gt;
&lt;td&gt;旅行地图，貌似已经停更，但是功能上没有什么欠缺。支持小地图显示、快速传送等。也是一般整合包必备的插件&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;InventoryTweaks&lt;/td&gt;
&lt;td&gt;按 R 键整理背包&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;

&lt;h3 id=&#34;功能增强型-mod-服务端-客户端都必装&#34;&gt;功能增强型 Mod（服务端&amp;amp;客户端都必装）&lt;/h3&gt;

&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Mod 名称&lt;/th&gt;
&lt;th&gt;说明&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;

&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;FTB-Ultimine&lt;/td&gt;
&lt;td&gt;超级挖掘，挖矿、清理场地好帮手&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;Doubledoors&lt;/td&gt;
&lt;td&gt;双开门可以一键开关，不用挨个点击开关啦&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;OpenGlider&lt;/td&gt;
&lt;td&gt;滑翔翼，经济实用的交通工具&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;Quark&lt;/td&gt;
&lt;td&gt;对原版 MC 的很多地方进行了一些加强，我最喜欢的是他增加了纸墙和纸灯笼这类物品，可以建造一些日系的建筑（文末有图）&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;KeepingInventory&lt;/td&gt;
&lt;td&gt;死亡不掉落，不解释，小白福音&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;

&lt;h3 id=&#34;内容增强型-mod-服务端-客户端都必装&#34;&gt;内容增强型 Mod（服务端&amp;amp;客户端都必装）&lt;/h3&gt;

&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Mod 名称&lt;/th&gt;
&lt;th&gt;说明&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;

&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Natura&lt;/td&gt;
&lt;td&gt;添加了很多有意思的植物，整个世界变得生机勃勃，可以种樱花树，初期没食物还可以野外采蓝莓吃&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;MrCrayfish`s Vehicle Mod&lt;/td&gt;
&lt;td&gt;载具 Mod，可以在 MC 开车哦&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;Animania&lt;/td&gt;
&lt;td&gt;动物谷，更多的小动物、更加真实的动物喂养与繁殖&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;Twilightforest&lt;/td&gt;
&lt;td&gt;鼎鼎有名的暮色森林，不解释&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;

&lt;h3 id=&#34;谨慎选用的-mod&#34;&gt;谨慎选用的 Mod&lt;/h3&gt;

&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Mod 名称&lt;/th&gt;
&lt;th&gt;说明&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;

&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;LootBags&lt;/td&gt;
&lt;td&gt;击杀怪物得到战利品带，随机开出各种物品。不过你的箱子很快就会被一堆奇奇怪怪的东西堆满（比如我有一大箱无用的钻石马铠）&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;Cuisine&lt;/td&gt;
&lt;td&gt;中文名烹饪工艺，国人作者开发的 Mod，挺有趣，很好地还原了做菜的过程，做完之后的菜会获得药水一样的效果。不过目测已经停更，而且没有很好的教程&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;

&lt;p&gt;&lt;strong&gt;注意&lt;/strong&gt;：上面列举的所有 Mod 都是 Mod 本体，有些 Mod 的功能还依赖于其他 Mod，在安装时必须同时安装 Mod 本体和他依赖的 Mod。具体的依赖关系可以参考 mcmod.cn 上对 Mod 介绍页的 Mod 关系选项卡，CurseForge 的 Mod 介绍页的 Relation 选项卡。&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;踩坑笔记&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;R 键整理的快捷键与 JEI 的部分功能冲突，可自行修改快捷键&lt;/li&gt;
&lt;li&gt;R 键整理对烹饪工艺中生产出来的菜品没辙&lt;/li&gt;
&lt;li&gt;推荐仅将 FTB-Ultimine 用于挖泥巴和挖沙，实际使用时可能会出现挖了矿不掉东西的情况┭┮﹏┭┮&lt;/li&gt;
&lt;li&gt;不要用铁镐、钻石镐开 FTB-Ultimine 挖东西！耐久掉的飞快&lt;/li&gt;
&lt;li&gt;DynamicSurroundings 可以在设置里按需屏蔽特定的声音，比如装上后发现我家所在的地形会有乌鸦叫，就很烦。屏蔽之后整个世界都好起来了&lt;/li&gt;
&lt;li&gt;DynamicSurroundings 与 Animania 有 bug，对 Animania 的某些特有生物进行交互时会触发找不到特定媒体资源的 bug，导致游戏崩溃，重新进入又会触发这个 bug，只有在进去的一瞬间用指令将玩家杀死才能勉强逃离这个无尽的循环（血泪的教训）（最新版本已修复）&lt;/li&gt;
&lt;li&gt;Animania 会对每个维度的世界进行注入，比较耗费资源。在同时安装虚无世界 AoA 的情况下，每次服务器启动 Animania 需要对其包含的二十多的世界维度进行注入，严重拖慢启动速度&lt;/li&gt;
&lt;li&gt;Quark 模组对 1.12 的 MC 只有 1.6 版本而没有后续版本的内容更新和 bug 修复。实际使用中有点吃性能&lt;/li&gt;
&lt;/ol&gt;
&lt;/blockquote&gt;

&lt;h2 id=&#34;mc-服务器优化&#34;&gt;MC 服务器优化&lt;/h2&gt;

&lt;blockquote&gt;
&lt;p&gt;我使用的是 SpongeForge，因此只对一些通用的优化手段和原版服务器的一些参数做介绍。使用 Spigot 等的可以参考 MCBBS 的帖子进行更加深入的调优：&lt;/p&gt;

&lt;p&gt;Minecraft 服务器优化教程 —— 让多带 50% 的玩家不再是梦 - 联机教程 - Minecraft(我的世界) 中文论坛
&lt;a href=&#34;https://www.mcbbs.net/forum.php?mod=viewthread&amp;amp;tid=478126&#34;&gt;https://www.mcbbs.net/forum.php?mod=viewthread&amp;amp;tid=478126&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;对于一台长期运行的 MC 服务器，我们需要关注的主要是下面几点&lt;/p&gt;

&lt;h3 id=&#34;1-稳定性&#34;&gt;1. 稳定性&lt;/h3&gt;

&lt;p&gt;要保证服务的稳定，我们需要防范的是&lt;strong&gt;内在的崩溃&lt;/strong&gt;和&lt;strong&gt;外在的影响&lt;/strong&gt;。&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;防止服务端程序自己崩溃&lt;/strong&gt;的方法有：&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;尽量使用稳定版的 MC 和稳定版的 Forge&lt;/li&gt;
&lt;li&gt;避免使用评分较低的 Mod&lt;/li&gt;
&lt;li&gt;加载大量 Mod 前先在本地做好测试，避免冲突，同时保障所有依赖项已安装好&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;避免外在影响致 MC 服务器崩溃&lt;/strong&gt;的方法有：&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;为 JVM 设置合适的内存限制，避免因&lt;code&gt;OutOfMemory&lt;/code&gt;导致 MC 服务端进程被系统杀掉&lt;/li&gt;
&lt;li&gt;开放的服务器最好限制下权限并封堵一些游戏内的漏洞，避免熊孩子炸服&lt;/li&gt;
&lt;/ul&gt;

&lt;h3 id=&#34;2-可维护性&#34;&gt;2. 可维护性&lt;/h3&gt;

&lt;p&gt;这一项的话其实见仁见智，有些人可能只会开个服务器玩几个星期，有些人会开几年。如果只是短期玩的话麻烦点就麻烦点咯，但是要长期玩的话，注意一下服务器的可维护性后面可以减少很多时间和精力。&lt;/p&gt;

&lt;p&gt;我的建议有以下几点：&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;使用 Docker&lt;/strong&gt;。这样可以方便地进行服务的停启与迁移、升级。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;使用 Docker-Compose&lt;/strong&gt;并保存&lt;code&gt;docker-coompose.yml&lt;/code&gt;文件，这样你可以方便地更改一些参数而不用每次都输入一串长长的&lt;code&gt;docker run&lt;/code&gt;指令。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;经常备份&lt;/strong&gt;。数据无价。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;尽量避免使用已经停止维护的 Mod&lt;/strong&gt;。到时候要是出了奇怪的 Bug，你就只能含泪把这个 Mod 所有相关的内容从你的世界剥离。&lt;/li&gt;
&lt;/ul&gt;

&lt;h3 id=&#34;3-响应及时性&#34;&gt;3. 响应及时性&lt;/h3&gt;

&lt;p&gt;响应及时性也体现在几个方面：&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;CPU 运算能力够强，复杂的时间（战斗、爆炸）等能很快地处理过来&lt;/li&gt;
&lt;li&gt;存储设备 IO 速度快，服务启动、区块加载可以非常迅速&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;p&gt;MC 服务器的优化主要聚焦在两个地方&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;MC 服务端程序的参数优化&lt;/li&gt;
&lt;li&gt;JVM 参数调优&lt;/li&gt;
&lt;/ol&gt;

&lt;h4 id=&#34;mc-服务端优化&#34;&gt;MC 服务端优化&lt;/h4&gt;

&lt;p&gt;&lt;strong&gt;VIEW_DISTANCE: 8&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;这一项可以更改加载的&lt;strong&gt;区块&lt;/strong&gt;的数量。这个数值越大，就会加载更多的区块，占用的内存和 CPU 就会更多。这个数值过小可能会导致你家的作物不长以及怪物刷不出来，会显著影响游戏体验。减小这一项的数值可以显著减少内存和 CPU 占用。&lt;/p&gt;

&lt;p&gt;默认值 10，建议值 4~8。&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;注意&lt;/strong&gt;：1 个&lt;strong&gt;&lt;em&gt;区块&lt;/em&gt;&lt;/strong&gt;并不是指一个方块，而是指一个&lt;code&gt;16*16&lt;/code&gt;的区域。这个数值对可视区域的影响并不会很大，你可以放心地减小这个数值。这一项的值每减小 1，你的服务器每次就可以少计算​&lt;code&gt;16*16*256&lt;/code&gt;个方块&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;strong&gt;NETWORK_COMPRESSION_THRESHOLD: 512&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;这一项的含义是对大于特定大小的数据包进行压缩。压缩会消耗一定量的 CPU 资源，不过可以减缓网络的压力。如果你的网络条件较差，可以减小这一项的数值。&lt;/p&gt;

&lt;p&gt;默认值：256&lt;/p&gt;

&lt;h4 id=&#34;jvm-调优&#34;&gt;JVM 调优&lt;/h4&gt;

&lt;blockquote&gt;
&lt;p&gt;首先需要声明的是，我不是 JVM 调参专业户，下文的数据也并不是严格的评测。结论并不严谨，仅仅从一个技术人员的视角出发，结合我实际的使用体验，给出的一些建议，供大家参考。&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h5 id=&#34;当我们在讨论-jvm-调优时-我们在谈论什么&#34;&gt;当我们在讨论 JVM 调优时，我们在谈论什么？&lt;/h5&gt;

&lt;p&gt;&lt;strong&gt;垃圾回收&lt;/strong&gt;（&lt;strong&gt;G&lt;/strong&gt;arbage &lt;strong&gt;C&lt;/strong&gt;ollection）一直以来都是众多 JVM 调优教程的核心所在。Java 运行于 VM 上，运行过程中不可避免的垃圾回收是最影响应用整体性能的存在。&lt;/p&gt;

&lt;p&gt;这里我们不去纠结那些新生代、老年代的划分、各种比率、各种单元的大小，我们只需要明白几点：&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;不要觉得你比 JVM 的开发人员牛 X&lt;/li&gt;
&lt;li&gt;不要觉得网上各路 JVM 调参大神的方法就适用于你&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;众多顶级公司都在使用 Java，其母公司 Oracle 自然会招聘全球最优秀的一批开发人员去开发，所以&lt;strong&gt;JVM 的大部分设置都是开箱即用的，默认最佳的。&lt;/strong&gt;在你不了解某一项参数的含义、不知道更改某一项配置的目的时，最好是不要做改动。&lt;/p&gt;

&lt;p&gt;其次，网络上大部分 JVM 的调优教程都是应对“面试造火箭”的，即便是以实际应用为主的 JVM 优化教程，人家那都是几十核几百 G 内存的机器，一秒钟要承担几百万的访问量，他们做优化的出发点、目标都&lt;strong&gt;不一定适用于你。&lt;/strong&gt;&lt;/p&gt;

&lt;h5 id=&#34;明确优化目标&#34;&gt;明确优化目标&lt;/h5&gt;

&lt;p&gt;明确了上面两点我们可以开始着手进行优化了。&lt;/p&gt;

&lt;p&gt;首先需要明确你开 MC 服务器的机器是什么配置。以我的为例，我使用的是腾讯云的&lt;strong&gt;1 核 2G 的云服务器&lt;/strong&gt;，&lt;strong&gt;带宽 2M&lt;/strong&gt;，即峰值速度为 256k/s。&lt;/p&gt;

&lt;p&gt;其次需要知道你的优化目标。网络上大多数 JVM 的优化教程都是追求更低的响应时间，以便能够承载更多的并发访问。&lt;/p&gt;

&lt;p&gt;以我的情况为例：我开这个 MC 服务器的目的，只是希望能够与&lt;strong&gt;不超过 5 个好友&lt;/strong&gt;联机，玩带一些暮色森林这样的&lt;strong&gt;Mod&lt;/strong&gt;的 MC。&lt;/p&gt;

&lt;p&gt;搭建完服务器后，观察了了一段时间后发现，&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;只有在 MC 服务器刚启动的时候 CPU 占用率会达到 100%，空载（没有玩家在线，后台没有高负荷任务）只有 2% 左右，两人联机时 CPU 平均负载在 30% 左右。&lt;/li&gt;
&lt;li&gt;加装了十几个 Mod 的情况下，空载占用 CPU 资源在 1G 左右，两人联机 1.4G 左右。&lt;/li&gt;
&lt;li&gt;只有在客户端刚进入的时候会跑满带宽，之后正常游戏时，每台客户端需要占用 10K/s 左右的带宽。&lt;/li&gt;
&lt;li&gt;联机游戏间或卡顿，但很快恢复&lt;/li&gt;
&lt;li&gt;查看日志发现空载时时竟然仍会&lt;code&gt;can&#39;t keep up&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;img src=&#34;https://blog-1301127393.file.myqcloud.com/BlogImgs20210207205922.png&#34; alt=&#34;服务器在空载&#34; /&gt;&lt;/p&gt;

&lt;p&gt;那么以我的情况来看&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;CPU 性能富余&lt;/li&gt;
&lt;li&gt;内存吃紧&lt;/li&gt;
&lt;li&gt;带宽够用&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;那么&lt;strong&gt;我的优化目标&lt;/strong&gt;就是：利用好 CPU 资源，尽力减少内存占用，以便为其他程序让路，并且为未来可能要添加的新 Mod 留出空间。&lt;/p&gt;

&lt;h5 id=&#34;优化&#34;&gt;优化&lt;/h5&gt;

&lt;p&gt;JVM 优化的大头是 GC。网上吹的漫天飞的 G1GC 的确有他的可取之处，一些腐竹的测试数据也表明其实际效果优秀。但是在我的案例中，使用 G1GC 是有问题的：&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;G1GC 天生是为了现代互联网应用环境而设计的&lt;/strong&gt;，需要开很多个线程协同来完成垃圾回收工作。他适用于多核处理器 + 大内存机器上的高负荷运算。而我的服务器是单核，内存也并不富裕。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;多线程的 GC 模式跑在单核机器上&lt;/strong&gt;时出现的问题就是：单核机器无法并行处理多个任务，其本质上只是在多个任务之间快速切换，来实现各个任务基本“实时”“并行”运行。但是线程之间的切换是有代价的，&lt;strong&gt;性能损耗积少成多&lt;/strong&gt;。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;G1GC 追求在延迟可控的情况下达到更高的吞吐量&lt;/strong&gt;。但他的&lt;strong&gt;代价是&lt;a href=&#34;https://segmentfault.com/q/1010000021658061&#34;&gt;更多的内存占用&lt;/a&gt;。&lt;/strong&gt;小内存机器并不适合使用 G1GC。&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;物色了一番，我最终选择换用 Serial GC 代替原本的 G1GC。&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Serial（-XX:+UseSerialGC）&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;从名字我们可以看出，这是一个串行收集器。&lt;/p&gt;

&lt;p&gt;Serial 收集器是 Java 虚拟机中最基本、历史最悠久的收集器。在 JDK1.3 之前是 Java 虚拟机新生代收集器的唯一选择。目前也是 ClientVM、ServerVM 4 核 4GB 以下机器默认垃圾回收器。Serial 收集器并不是只能使用一个 CPU 进行收集，而是当 JVM 需要进行垃圾回收的时候，需暂停所有的用户线程，直到回收结束。&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h5 id=&#34;优化前后对比&#34;&gt;优化前后对比&lt;/h5&gt;

&lt;ol&gt;
&lt;li&gt;优化前 MC 服务器的资源占用情况&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;img src=&#34;https://blog-1301127393.file.myqcloud.com/BlogImgs20210207205932.jpg&#34; alt=&#34;360 截图 20210129163301881&#34; /&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;SERIAL GC (1 ONLINE)&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;img src=&#34;https://blog-1301127393.file.myqcloud.com/BlogImgs20210207205936.png&#34; alt=&#34;image-20210202194034351&#34; /&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;进一步对 mod 优化后，2 online&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;img src=&#34;https://blog-1301127393.file.myqcloud.com/BlogImgs20210207205939.png&#34; alt=&#34;image-20210202221554906&#34; /&gt;&lt;/p&gt;

&lt;h5 id=&#34;其他优化方法&#34;&gt;其他优化方法&lt;/h5&gt;

&lt;p&gt;更换 GC 只是众多优化方法中的一种，其他的诸如换用 OpenJ9 虚拟机也可以有不错的效果，可惜的是 Forge 对其的支持并不友好，只得作罢。还有启用指针压缩也可以获得不错的性能提升，不过 JDK6_u23 之后 &lt;code&gt;UseCompressedOops&lt;/code&gt; 就已经被默认启用了，使用新版本 Java 基本不用关注这方面的优化了。&lt;/p&gt;

&lt;h2 id=&#34;写在最后&#34;&gt;写在最后&lt;/h2&gt;

&lt;p&gt;晒几张图&lt;/p&gt;

&lt;p&gt;我家：&lt;/p&gt;

&lt;p&gt;&lt;img src=&#34;https://blog-1301127393.file.myqcloud.com/BlogImgs20210207205942.png&#34; alt=&#34;屏幕截图 (13)&#34; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&#34;https://blog-1301127393.file.myqcloud.com/BlogImgs20210207205946.png&#34; alt=&#34;屏幕截图 (16)&#34; /&gt;&lt;/p&gt;

&lt;p&gt;我安装的光影 Sildurs Vibrant Shaders v1.281 High 效果图&lt;/p&gt;

&lt;p&gt;&lt;img src=&#34;https://blog-1301127393.file.myqcloud.com/BlogImgs20210207205949.png&#34; alt=&#34;屏幕截图 (12)&#34; /&gt;&lt;/p&gt;

&lt;p&gt;Better HUD + 旅行地图效果图&lt;/p&gt;

&lt;p&gt;&lt;img src=&#34;https://blog-1301127393.file.myqcloud.com/BlogImgs20210207205953.png&#34; alt=&#34;屏幕截图 (17)&#34; /&gt;&lt;/p&gt;

&lt;h2 id=&#34;参考-推荐阅读&#34;&gt;参考&amp;amp;推荐阅读&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;大家最推荐用哪种联机方式玩 Minecraft？ - 知乎
&lt;a href=&#34;https://www.zhihu.com/question/54048310&#34;&gt;https://www.zhihu.com/question/54048310&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;View Distance: optimize your Minecraft server
&lt;a href=&#34;https://mtxserv.com/article/12535/view_distance_optimize_your_minecraft_server&#34;&gt;https://mtxserv.com/article/12535/view_distance_optimize_your_minecraft_server&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Minecraft 服务器优化教程 —— 让多带 50% 的玩家不再是梦 - 联机教程 - Minecraft(我的世界) 中文论坛
&lt;a href=&#34;https://www.mcbbs.net/forum.php?mod=viewthread&amp;amp;tid=478126&#34;&gt;https://www.mcbbs.net/forum.php?mod=viewthread&amp;amp;tid=478126&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;itzg/docker-minecraft-server: Docker image that provides a Minecraft Server that will automatically download selected version at startup
&lt;a href=&#34;https://github.com/itzg/docker-minecraft-server&#34;&gt;https://github.com/itzg/docker-minecraft-server&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;jvm G1 垃圾收集器有什么缺点？ - SegmentFault 思否
&lt;a href=&#34;https://segmentfault.com/q/1010000021658061&#34;&gt;https://segmentfault.com/q/1010000021658061&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

        
        </description>
    </item>
    
  </channel>
</rss>