<?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 Razeen`s Blog</title><link>https://razeen.me/c/tech/</link><description>Recent content in 技术 on Razeen`s Blog</description><follow_challenge><feedId>52340201851637766</feedId><userId>42940340473029632</userId></follow_challenge><image><title>Razeen`s Blog</title><url>https://st.razeen.me/img/avatar.svg</url><link>https://st.razeen.me/img/avatar.svg</link></image><generator>Hugo -- gohugo.io</generator><language>zh</language><lastBuildDate>Thu, 08 May 2025 10:00:00 +0000</lastBuildDate><atom:link href="https://razeen.me/c/tech/index.xml" rel="self" type="application/rss+xml"/><item><title>UPS 一拖多：保护你的 NAS 和 Linux 服务器</title><link>https://razeen.me/posts/ups-multi-device-protection-with-nut/</link><pubDate>Thu, 08 May 2025 10:00:00 +0000</pubDate><guid>https://razeen.me/posts/ups-multi-device-protection-with-nut/</guid><description>本文详细介绍如何配置一台 UPS 同时保护多台设备，包括群晖 NAS 和 Linux 服务器。通过 NUT (Network UPS Tools) 实现断电时的优雅关机，防止数据丢失和文件系统损坏。适合有多台设备需要断电保护的家庭服务器用户参考。</description></item><item><title>从影音中心到 AI 助手：我的50款 Homelab 服务清单</title><link>https://razeen.me/posts/homelab-services-2025/</link><pubDate>Sat, 19 Apr 2025 12:00:00 +0000</pubDate><guid>https://razeen.me/posts/homelab-services-2025/</guid><description>本文详细介绍了个人Homelab中部署的50款实用服务，涵盖开发环境、家庭影音、AI应用、知识管理、网络代理、智能家居等多个领域。从Plex媒体中心到GitLab代码托管，从Ollama本地AI模型到Tesla数据监控，全方位展示如何通过自托管服务构建数字化家庭生态系统，提升生活品质与工作效率。</description></item><item><title>部署一个自己的 Running Page</title><link>https://razeen.me/posts/build-my-running-page/</link><pubDate>Thu, 10 Apr 2025 00:50:01 +0000</pubDate><guid>https://razeen.me/posts/build-my-running-page/</guid><description>介绍如何部署 Running Page 项目，通过 GitLab CI/CD 实现自动化构建和部署，并集成苹果快捷指令实现一键触发更新，同时支持与上游仓库自动同步代码。</description></item><item><title>弃用 Disqus 评论，使用自建 Waline</title><link>https://razeen.me/posts/use-waline-to-replace-disqus/</link><pubDate>Tue, 10 Dec 2024 20:56:27 +0000</pubDate><guid>https://razeen.me/posts/use-waline-to-replace-disqus/</guid><description>本文介绍了如何使用自建的 Waline 评论系统。同时对比了多个开源评论系统，详细讲解了 Waline 的搭建过程，包括数据库准备、数据迁移、后端配置和博客评论的修改。</description></item><item><title>服务器迁移记：一次磁盘换板引发的Linux分区与挂载的学习</title><link>https://razeen.me/posts/migrate-linux-disk-epiphany/</link><pubDate>Mon, 19 Aug 2024 12:19:45 +0000</pubDate><guid>https://razeen.me/posts/migrate-linux-disk-epiphany/</guid><description>探索家庭网络折腾的奇妙之旅：在AI的协助下，我成功地将Homelab主机迁移到新主板，而无需重装操作系统或迁移数据。这篇文章记录了我在解决Linux分区和挂载问题时的挑战和学习经历，以及AI如何提高解决问题的效率。</description></item><item><title>改善信息来源, 利用 RSS 高效获取资讯 (RSShub + Reeder5 + WeWe RSS)</title><link>https://razeen.me/posts/improve-information-sources-with-rss/</link><pubDate>Thu, 15 Aug 2024 15:56:27 +0000</pubDate><guid>https://razeen.me/posts/improve-information-sources-with-rss/</guid><description>通过 RSSHub 自建 RSS 源，并使用 Reeder 5 进行阅读，高效管理博客、微信公众号、媒体和推特等多个信息源，让信息获取变得更简洁高效。</description></item><item><title>多种 Docker 镜像拉取解决方案与实践</title><link>https://razeen.me/posts/how-to-pull-docker-image-in-china/</link><pubDate>Wed, 19 Jun 2024 11:30:10 +0000</pubDate><guid>https://razeen.me/posts/how-to-pull-docker-image-in-china/</guid><description>本文详细介绍了在国内网络环境下，如何有效优化Docker镜像的拉取速度和稳定性。从修改Docker配置文件到使用第三方镜像服务，再到自建Nginx反向代理和Cloudflare Workers代理，为读者提供了多种解决方案。无论您是Linux用户还是Mac/Win用户，甚至是群晖NAS用户，都能在这里找到适合您的加速方法。此外，还介绍了如何使用Docker-Proxy进行镜像加速，帮助用户在不同场景下实现Docker镜像的快速拉取</description></item><item><title>Azure OpenAI API 申请和使用</title><link>https://razeen.me/posts/how-to-apply-and-use-azure-openai-api/</link><pubDate>Sun, 04 Jun 2023 12:14:10 +0000</pubDate><guid>https://razeen.me/posts/how-to-apply-and-use-azure-openai-api/</guid><description>这篇博客文章向读者展示了如何在微软Azure上申请并使用OpenAI服务的全过程，这对那些因OpenAI的风控问题而苦恼的开发者提供了完美替代。文章详细介绍了如何在Azure上注册账户，如何申请并配置OpenAI服务，以及如何申请使用GPT-4模型。在微软Azure上使用OpenAI服务不仅省去了很多麻烦，而且支持国内的信用卡，手机号和IP。</description></item><item><title>如何开通 OneKey 虚拟信用卡，并充值消费</title><link>https://razeen.me/posts/how-to-use-onekey-visa-card/</link><pubDate>Thu, 25 May 2023 12:14:10 +0000</pubDate><guid>https://razeen.me/posts/how-to-use-onekey-visa-card/</guid><description>&lt;p&gt;最近几周Depay被风控了，卡片的充值被停止了，到目前还没有恢复，恰好ChatGPT又到了续费的时间，只好又去折腾了一下onekey的信用卡。从注册到KYC, 到最后充值绑定ChatGPT都挺顺利的，昨天也顺利扣费成功了，特此记录&amp;amp;分享一下。&lt;/p&gt;</description></item><item><title>如何拥有一个可长期在国内使用的国外手机号码</title><link>https://razeen.me/posts/how-to-obtain-and-charge-giffgaff/</link><pubDate>Wed, 05 Apr 2023 10:30:10 +0000</pubDate><guid>https://razeen.me/posts/how-to-obtain-and-charge-giffgaff/</guid><description>本文介绍了如何在国内长期使用英国giffgaff手机号，以便在注册国外服务（如ChatGPT）时避免一次性号码。giffgaff卡无月租、接收短信免费，180天内发一条短信即可保号。文章详细指导了购买、激活、充值以及查看余额的过程，帮助用户摆脱一次性验证码手机号的限制。</description></item><item><title>分享开通 ChatGPT Plus 过程</title><link>https://razeen.me/posts/how-to-activate-chatgpt-plus/</link><pubDate>Sat, 25 Mar 2023 10:30:10 +0000</pubDate><guid>https://razeen.me/posts/how-to-activate-chatgpt-plus/</guid><description>这篇文章分享了开通ChatGPT Plus会员的过程和经验。包括使用虚拟信用卡、搭建临时代理、使用住宅IP代理等方法来解决支付问题，以及选择Depay、OneKey、NobePay等虚拟信用卡的比较。同时，还提到了账号开通、登陆和购买时应注意的风控问题。</description></item><item><title>如何开通 Depay 虚拟信用卡，并充值消费</title><link>https://razeen.me/posts/how-to-use-depay/</link><pubDate>Fri, 24 Mar 2023 11:30:10 +0000</pubDate><guid>https://razeen.me/posts/how-to-use-depay/</guid><description>这篇文章介绍了如何在Depay上开卡、充值以及消费。文章包括了申请卡片、身份认证、充值USDT、卡片充值、查看CVV和消费等方面的内容。作者还分享了一些使用该卡的注意事项和Depay官方链接。</description></item><item><title>如何开通欧易Web3钱包, 交易入账</title><link>https://razeen.me/posts/how-to-use-okx-web3-wallet/</link><pubDate>Fri, 24 Mar 2023 10:30:10 +0000</pubDate><guid>https://razeen.me/posts/how-to-use-okx-web3-wallet/</guid><description>这篇博客分享了如何开通欧易钱包、快速入金以及转账的过程。需要先注册并完成身份认证，然后开通Web3钱包。交易USDT需要购买并选择支付方式，然后选择提币网络并填写提取数量。最后，可以将USDT发送到其他钱包。作者还算了一下费用，建议小额交易不要折腾这个，直接找人充值到最后的钱包中。</description></item><item><title>如何5分钟内1块钱注册 ChatGPT</title><link>https://razeen.me/posts/ai-how-to-register-chatgpt/</link><pubDate>Mon, 20 Mar 2023 09:30:10 +0000</pubDate><guid>https://razeen.me/posts/ai-how-to-register-chatgpt/</guid><description>这篇文章介绍了如何使用1块多钱注册一个ChatGPT账号。需要先拥有一个梯子，然后注册微软或Google账号，接着使用接码平台注册并充值，最后在ChatGPT注册页面输入手机号和验证码即可成功注册。</description></item><item><title>科学上网</title><link>https://razeen.me/posts/how-to-access-the-real-internet/</link><pubDate>Tue, 14 Mar 2023 09:30:10 +0000</pubDate><guid>https://razeen.me/posts/how-to-access-the-real-internet/</guid><description>本文分享了作者在科学上网方面的实践经验，包括购买机场服务与自建代理节点的策略。介绍了购买服务的注意事项、使用 Trojan 和 Cloudflare CDN 搭建自己的代理节点的方法，并推荐了代理客户端 Clash 和 Shadowrocket。</description></item><item><title>如何注册美区的 Apple ID （2023年/无需科学上网）</title><link>https://razeen.me/posts/how-to-register-us-apple-id/</link><pubDate>Sun, 12 Mar 2023 09:30:10 +0000</pubDate><guid>https://razeen.me/posts/how-to-register-us-apple-id/</guid><description>本文介绍了如何在2023年注册一个美区Apple ID并完成充值、订阅和消费操作，而无需使用科学上网或信用卡。文章详细阐述了如何创建美区Apple ID，包括使用无痕浏览器打开注册页面、填写个人信息、验证邮箱和手机等。接着，文章讲述了如何在iPhone上设置付款方式，使用免税州地址，并通过淘宝购买礼品卡充值。最后，文章还解释了如何在iPhone上添加设备进行二步验证，以提高账户安全性和方便性。</description></item><item><title>NAS折腾记(11)： NASTool3.0体验和降级</title><link>https://razeen.me/posts/nas-13-nastool-3/</link><pubDate>Wed, 08 Mar 2023 00:16:48 +0000</pubDate><guid>https://razeen.me/posts/nas-13-nastool-3/</guid><description>&lt;p&gt;这篇文章介绍了NASTool 3.0.2的升级体验，包括界面变化、插件功能、用户认证等。作者团队为了缩小圈子，让软件长期发展下去，做了一定的取舍，取消了BT支持，只支持PT站点的索引。文章还提供了将NASTool降级回2.9.1的方法。&lt;/p&gt;</description></item><item><title>NAS折腾记(10)： Docker版本的NASTool配置</title><link>https://razeen.me/posts/nas-12-nastool-with-docker/</link><pubDate>Mon, 20 Feb 2023 12:16:48 +0000</pubDate><guid>https://razeen.me/posts/nas-12-nastool-with-docker/</guid><description>&lt;p&gt;前面的文章中，我分享了如何用套件去安装NASTool。 这篇文章中我主要分享一下Docker版本的NASTool怎么安装和配置，重点说一下需要注意的地方。&lt;/p&gt;</description></item><item><title>NAS折腾记(9)： NASTool与微信交互，微信发送消息远程下载电影【多图】</title><link>https://razeen.me/posts/nas-11-nastool-weixin-chat-config/</link><pubDate>Fri, 10 Feb 2023 00:16:48 +0000</pubDate><guid>https://razeen.me/posts/nas-11-nastool-weixin-chat-config/</guid><description>&lt;p&gt;在上一期中，我们搭建好了 NASTool, 可以在 NASTool 中开心的订阅搜索下载一条龙，这期我们更进一步，实现 NASTool 与微信的交互。让我们在微信上远程发指令给家中的 NASTool，实现消息推送和远程下载。&lt;/p&gt;</description></item><item><title>NAS折腾记(8)：群晖安装 NASTool 实现影音半自动化【多图】</title><link>https://razeen.me/posts/nas-10-nastool-install-and-basic-config/</link><pubDate>Sun, 08 Jan 2023 00:16:48 +0000</pubDate><guid>https://razeen.me/posts/nas-10-nastool-install-and-basic-config/</guid><description>&lt;p&gt;你希望下载的下载的电影能够自己分类，自己重命名么？你希望你在豆瓣上点一个想看，回家NAS上就成功下载好了电影，可以直接观看么？你想微信上发个电影名，家中NAS就开始自动下载电影么？你想监控你PT站点数据，自动托管养站，每日登陆保号么。。。&lt;/p&gt;
&lt;p&gt;上面这些场景 &lt;code&gt;NASTool&lt;/code&gt; 工具都可以做到，这篇文件，我主要分享 &lt;code&gt;NASTool + Jackett + Qbittorrent + Jellyfin + ChineseSubFinder&lt;/code&gt; 实现输入电影名称后自动搜索下载，重命名并归类整理。&lt;/p&gt;</description></item><item><title>内网穿透(2)：Tailscale 组网实现内网穿透，操作简单，无成本</title><link>https://razeen.me/posts/nas-09-tailscale/</link><pubDate>Fri, 23 Dec 2022 21:22:48 +0000</pubDate><guid>https://razeen.me/posts/nas-09-tailscale/</guid><description>&lt;p&gt;目前能实现内网穿透的软件有很多，这篇文章中主要给大家介绍一下 Tailscale 这个软件。为什么首先介绍这款软件呢？主要是因为这款软件在目前的几个软件中上手是最简单的，几乎做到了只要点点鼠标就可以成功安装使用。同时这款软件基于 Wiregurd 安全方便的也是比较不错的。&lt;/p&gt;</description></item><item><title>内网穿透(1)：总结了11中内网穿透的方式，总有一种适合你</title><link>https://razeen.me/posts/nas-08-penetrate-the-intranet/</link><pubDate>Tue, 20 Dec 2022 21:22:48 +0000</pubDate><guid>https://razeen.me/posts/nas-08-penetrate-the-intranet/</guid><description>&lt;p&gt;这篇博客中，我整理了11种方式远程访问或者内网穿透，从几个维度做了一个表格。后续也将会将每种方式的详细操作步骤分享出来。&lt;/p&gt;</description></item><item><title>NAS折腾记(7)：从零开始设置(黑)群晖系统</title><link>https://razeen.me/posts/nas-07-syno-setting/</link><pubDate>Thu, 08 Dec 2022 21:22:48 +0000</pubDate><guid>https://razeen.me/posts/nas-07-syno-setting/</guid><description>&lt;p&gt;在这篇文章中，我将分享群晖从零开始的设置。其中包含了存储池创建、共享文件夹创建、读写缓存设置、SMTP邮件发送、多网口链路聚合、Windows映射网络驱动、Mac挂载共享文件夹、iPhone连接NAS、Photos套件与手机APP设置、DS Videos设置、阿里/百度/OneDrive网盘数据同步等。&lt;/p&gt;</description></item><item><title>NAS折腾记(6)：黑群晖系统安装好后怎么洗白？</title><link>https://razeen.me/posts/nas-06-syno-hack/</link><pubDate>Tue, 08 Nov 2022 21:22:48 +0000</pubDate><guid>https://razeen.me/posts/nas-06-syno-hack/</guid><description>&lt;p&gt;在前面的文章中，我们利用ARPL引导将黑群晖安装好了。有朋友就问我，ARPL安装的黑群晖洗白和其他的不一样了，该怎么洗白？这篇文章为你解答。&lt;/p&gt;</description></item><item><title>NAS折腾记(5)：群晖硬盘休眠设置与分析</title><link>https://razeen.me/posts/nas-05-hdd-hibernation/</link><pubDate>Fri, 04 Nov 2022 21:22:48 +0000</pubDate><guid>https://razeen.me/posts/nas-05-hdd-hibernation/</guid><description>&lt;p&gt;NAS需要硬盘休眠么？群晖怎么才能硬盘休眠？ 这一期我们来聊聊硬盘休眠，同时分享一下我是怎么分析硬盘休眠的日志的，以及设置群晖系统休眠的。&lt;/p&gt;
&lt;p&gt;这期我们从几个问题来入手。&lt;/p&gt;</description></item><item><title>NAS折腾记(4)： 20分钟手把手带你完美安装 DS918+ 黑群晖7.1.1</title><link>https://razeen.me/posts/nas-04-hack-synology-install/</link><pubDate>Sat, 29 Oct 2022 21:22:48 +0000</pubDate><guid>https://razeen.me/posts/nas-04-hack-synology-install/</guid><description>&lt;p&gt;在前面的视频中，NAS 的硬件已经组装好了，就差一个系统了。系统我选择了黑群晖 7.1.1，其系统是众多 NAS 中我比较中意的，简洁，漂亮，操作简单。最喜欢的还是群晖的 Photos 软件，图片同步，浏览，人脸识别，地理位置都很赞。这个视频我就来安装黑群晖 7.1.1 系统，同时配置 M.2 缓存盘等。&lt;/p&gt;</description></item><item><title>NAS折腾记(3)：NAS 装机</title><link>https://razeen.me/posts/nas-03-assemble/</link><pubDate>Sun, 23 Oct 2022 21:22:48 +0000</pubDate><guid>https://razeen.me/posts/nas-03-assemble/</guid><description>&lt;p&gt;在前面的两篇中，分享了4盘位机箱和主板、CPU的开箱，这期视频就来分享一下我的NAS全部配件和组装的过程。&lt;/p&gt;</description></item><item><title>NAS折腾记(2)：B360-ITX 双M.2 双2.5G网口 6 SATA主版 开箱</title><link>https://razeen.me/posts/nas-02-mainboard/</link><pubDate>Fri, 21 Oct 2022 23:22:48 +0000</pubDate><guid>https://razeen.me/posts/nas-02-mainboard/</guid><description>&lt;p&gt;上一篇中，我们开箱了机箱。这一篇，我们来看看主板、CPU、散热器。当时买ITX主板的时候，在畅网的N6005和这款之间犹豫了很久，最后入手了这款 B360的主板。&lt;/p&gt;</description></item><item><title>NAS折腾记(1)：328元的4盘位Nas机箱开箱</title><link>https://razeen.me/posts/nas-01-unboxing/</link><pubDate>Wed, 19 Oct 2022 07:26:48 +0000</pubDate><guid>https://razeen.me/posts/nas-01-unboxing/</guid><description>&lt;p&gt;最近准备把自己的的 Nas 小幅度升级一下，于是入手了这款&lt;a href="https://m.tb.cn/h.UWLQNn9"&gt;梵隆的4盘位机箱&lt;/a&gt;，体验下来，整体还不错，用料扎实，空间虽紧凑但也合理，盘位热插拔好评，整体来说 328 元入手性价比可以了。&lt;/p&gt;</description></item><item><title>Openwrt + Clash 全局科学上网</title><link>https://razeen.me/posts/newifi3-d2-openwrt-clash/</link><pubDate>Thu, 11 Aug 2022 07:02:45 +0000</pubDate><guid>https://razeen.me/posts/newifi3-d2-openwrt-clash/</guid><description>&lt;p&gt;最近把 Newifi3 D2 的系统折腾安装上了 OpenWrt, 这篇文章记录我在 OpenWrt 上折腾 Clash 全局科学上网的过程。&lt;/p&gt;</description></item><item><title>Newifi3 刷入 OpenWrt 固件 v21.02</title><link>https://razeen.me/posts/newifi3-d2-with-openwrt/</link><pubDate>Wed, 03 Aug 2022 13:17:14 +0000</pubDate><guid>https://razeen.me/posts/newifi3-d2-with-openwrt/</guid><description>&lt;p&gt;这几天又把我的矿渣 Newifi3 D2 拿出来折腾了一番，把系统由&lt;strong&gt;老毛子固件&lt;/strong&gt;刷成了&lt;strong&gt;OpenWrt&lt;/strong&gt;固件，准备再次折腾一下全局科学上网。&lt;/p&gt;</description></item><item><title>利用 Markdown 画一些流程图、时序图、甘特图等</title><link>https://razeen.me/posts/makedown-flow-and-mermaid-diagrams/</link><pubDate>Thu, 02 Jun 2022 21:50:01 +0000</pubDate><guid>https://razeen.me/posts/makedown-flow-and-mermaid-diagrams/</guid><description>&lt;p&gt;平常用 &lt;code&gt;markdown&lt;/code&gt; 简单写点东西，需要一些流程图，时序图，甘特图, &lt;code&gt;makedown&lt;/code&gt; 支持的不错。 而 &lt;code&gt;hexo&lt;/code&gt; 博客也能很轻松的开启。&lt;/p&gt;
&lt;p&gt;这里记录下，方便查阅使用。&lt;/p&gt;</description></item><item><title>Homelab(8): 搭建自用 Gitlab 与 Docker 仓库</title><link>https://razeen.me/posts/homelib-008-gitlab-and-registry/</link><pubDate>Sun, 19 Dec 2021 16:16:29 +0800</pubDate><guid>https://razeen.me/posts/homelib-008-gitlab-and-registry/</guid><description>&lt;p&gt;为了托管一些私有的代码，折腾 CI/CD，我用 Docker 搭建一套自己的 Gitlab. Gitlab 社区版功能很强大, 包含且不限于 代码托管、容器镜像库，Gitlab Pages 以及 CI/CD。&lt;/p&gt;</description></item><item><title>Nginx Tcp 转发保留客户端真实 IP （PROXY Protocol）</title><link>https://razeen.me/posts/nginx-tcp-stream-proxy-keep-real-client-ip/</link><pubDate>Sat, 18 Dec 2021 22:13:59 +0800</pubDate><guid>https://razeen.me/posts/nginx-tcp-stream-proxy-keep-real-client-ip/</guid><description>&lt;p&gt;由于在家里搭建了博客，Git 等服务， 经过了阿里云用 Nginx 做了 TCP Proxy, 导致了一个问题，家里看到的服务访问 IP 都是转发服务器的 IP，无法看到真实IP。联想到平常 LB 上的是支持 PROXY Protocol 转发真实IP, 于是搜了一下，Nginx 还真支持！&lt;/p&gt;</description></item><item><title>Homelab (7)：IPSec VPN（基于证书认证）客户端设置</title><link>https://razeen.me/posts/homelib-007-set-ipsec-vpn-client/</link><pubDate>Sun, 12 Sep 2021 02:12:26 +0000</pubDate><guid>https://razeen.me/posts/homelib-007-set-ipsec-vpn-client/</guid><description>&lt;p&gt;上一篇文章&lt;a href="https://razeen.me/posts/homelib-006-build-ipsec-vpn/"&gt;基于自签发证书的 IPSec VPN 搭建&lt;/a&gt;中，我搭建了一个 IPSec VPN, 并且用自签发证书做客户端和服务器的认证。这篇文章我详细的介绍一下我们的手机（iPhone) 、电脑（Mac) 怎么配置。&lt;/p&gt;</description></item><item><title>Homelab (6)： 基于自签发证书的 IPSec VPN 搭建</title><link>https://razeen.me/posts/homelib-006-build-ipsec-vpn/</link><pubDate>Mon, 30 Aug 2021 01:02:26 +0000</pubDate><guid>https://razeen.me/posts/homelib-006-build-ipsec-vpn/</guid><description>&lt;p&gt;为了保证安全的同时，在外网也能便利访问家里的服务，同时又能减少转发带来流量，VPN绝对是最佳的选择。这里我就用&lt;code&gt;StrongSwan &lt;/code&gt;搭建一个基于证书认证的&lt;code&gt;IPSec VPN&lt;/code&gt;。&lt;/p&gt;</description></item><item><title>Homelab (5)： DDNS 动态域名解析</title><link>https://razeen.me/posts/homelib-005-ddns/</link><pubDate>Thu, 26 Aug 2021 01:30:26 +0000</pubDate><guid>https://razeen.me/posts/homelib-005-ddns/</guid><description>&lt;p&gt;由于家庭的电信公网IP是动态的，每次重新拨号后，IP地址都会发生变化，所以为了能够顺利的打从外网访问家里或VPN连接到家里，我们的选择之一就是　DDNS。&lt;/p&gt;</description></item><item><title>Homelab (4)： Linux 服务器基础环境准备</title><link>https://razeen.me/posts/homelib-004-prepare-the-server-environment/</link><pubDate>Fri, 20 Aug 2021 23:52:26 +0000</pubDate><guid>https://razeen.me/posts/homelib-004-prepare-the-server-environment/</guid><description>&lt;p&gt;服务器系统安装的是CentOS7, 这篇文章主要记录一下服务器上系统环境与基础软件的准备工作。&lt;/p&gt;</description></item><item><title>Homelab (3)： 整体网络与基础硬件介绍</title><link>https://razeen.me/posts/homelib-003-network-topology-and-hardware/</link><pubDate>Sun, 15 Aug 2021 22:52:26 +0000</pubDate><guid>https://razeen.me/posts/homelib-003-network-topology-and-hardware/</guid><description>&lt;p&gt;一直心心念念想要组建一个&lt;code&gt;Homelab&lt;/code&gt;, 满足自己想折腾博客、NAS、Gitlab、自动化、虚拟机、IOT、k8s、Linux、写一些小工具等等的乐趣， 经过几年陆陆续续的买入一些硬件终于拼凑出了一个小型的&lt;code&gt;Homelab&lt;/code&gt;。&lt;/p&gt;</description></item><item><title>Go学习笔记（十）老项目迁移 go module 大型灾难记录</title><link>https://razeen.me/posts/accidents-of-migrating-to-go-modules/</link><pubDate>Tue, 20 Jul 2021 09:30:10 +0000</pubDate><guid>https://razeen.me/posts/accidents-of-migrating-to-go-modules/</guid><description>&lt;p&gt;最近在改造一个比较早期的一个项目，其中就涉及到用将原来 &lt;code&gt;Vendor&lt;/code&gt; 管理依赖换成 &lt;code&gt;Go Modules&lt;/code&gt; 来管理。 然而过程真是一波三折，在这里总结一下此次 &lt;code&gt;Go Modules&lt;/code&gt; 改造中遇到的问题，以及解决方法。&lt;/p&gt;</description></item><item><title>Github Actions 初体验之自动化部署 Hexo 博客</title><link>https://razeen.me/posts/use-github-action-to-deploy-your-hexo-blog/</link><pubDate>Sat, 26 Jun 2021 03:43:33 +0000</pubDate><guid>https://razeen.me/posts/use-github-action-to-deploy-your-hexo-blog/</guid><description>&lt;p&gt;觊觎了 Github Actions 很久了，昨天尝试将自己的博客用它来部署，总体下来感觉不错。&lt;/p&gt;
&lt;p&gt;Github Actions 是 Github 推出的自动化工作流， 就像 Gitlab 的 CI/CD, Travis CI 一样，能帮我们完成一些 CI/CD 的工作流，实现自动化构建、测试、打包、部署等等。&lt;/p&gt;
&lt;p&gt;这篇文章主要实现 只需要将文章推送到 Github ，Github Actions 自动完成构建静态文件，以及更新 Github Pages 仓库的流程。&lt;/p&gt;</description></item><item><title>记一次 Nginx DNS 缓存导致转发问题</title><link>https://razeen.me/posts/nginx-proxy-problem-with-dns-cache/</link><pubDate>Sat, 06 Mar 2021 07:01:51 +0000</pubDate><guid>https://razeen.me/posts/nginx-proxy-problem-with-dns-cache/</guid><description>&lt;p&gt;在家里搭建了一个 GitLab 服务器，由于电信家庭宽带的公网 IP 是不固定的，且&lt;code&gt;443&lt;/code&gt;端口是被封的，所以买了阿里云作为中转，利用 Ngnix 作 TCP Proxy 结合 DDNS ，这样就能正常上自己的 Git 了。但今天，我发现推代码怎么也推不上去，校对了密钥，服务器状态都没问题。最后上阿里云，重启了下 Nginx，发现可以了。 找了一圈原因，最后发现是 Nginx 转发缓存 DNS 解析导致的，下面我们就复现一下问题并找找为什么，以及解决方式。&lt;/p&gt;</description></item><item><title>Homelab (2)： 电信悦me网关修改桥接模式，路由器拨号</title><link>https://razeen.me/posts/homelib-002-yue-me-bridge/</link><pubDate>Thu, 18 Feb 2021 22:52:26 +0000</pubDate><guid>https://razeen.me/posts/homelib-002-yue-me-bridge/</guid><description>&lt;p&gt;由于要做端口转发，每次要到悦me的网关上操作，但电信这网关操作起来体验不是很好，比较卡。于是昨天改成了桥接模式，然后利用路由器拨号。这样每次只要在路由器上操作，方便多了。&lt;/p&gt;</description></item><item><title>Homelab (1)：5分钟上手黑群晖 NAS</title><link>https://razeen.me/posts/homelib-001-synology-hackintosh/</link><pubDate>Thu, 11 Feb 2021 01:18:03 +0000</pubDate><guid>https://razeen.me/posts/homelib-001-synology-hackintosh/</guid><description>&lt;p&gt;今天在家把黑群晖折腾好了，分享一下折腾黑群晖(DS918+)的过程，整个安装过程加起来不到5分钟哦。&lt;/p&gt;</description></item><item><title>终极 Bash 脚本指南</title><link>https://razeen.me/posts/the-ultimate-programmers-guide-to-bash-scripting/</link><pubDate>Mon, 01 Feb 2021 19:46:58 +0000</pubDate><guid>https://razeen.me/posts/the-ultimate-programmers-guide-to-bash-scripting/</guid><description>&lt;p&gt;在开发的过程中，经常需要处理一些重复的工作，或者逻辑相当简单但耗时的功能，这时我们可能会考虑到用脚本来自动化完成这些工作。而 Bash 脚本是我们最容易接触到和上手的脚本语言。&lt;/p&gt;
&lt;p&gt;这篇博客汇总一些常用的 Bash 语法，方便日后查阅学习。&lt;/p&gt;</description></item><item><title>Typora 自动上传图片到七牛云</title><link>https://razeen.me/posts/typora-upload-image-qiniu/</link><pubDate>Sun, 31 Jan 2021 00:18:10 +0000</pubDate><guid>https://razeen.me/posts/typora-upload-image-qiniu/</guid><description>&lt;p&gt;用 Markdown 写博客配图片一直是个烦恼我的为问题， 每次上传图片都比较麻烦，或是中断思路，或是最后集中处理耗费时间。今天无意中，发现了 Typora 的图片自动上传功能，配合一段脚本，将插入的图片自动上传七牛，让写文章更爽了。&lt;/p&gt;</description></item><item><title>Ubuntu 20.04 LTS 有线网卡驱动安装</title><link>https://razeen.me/posts/ubutun-realtek-r8125-driver-install/</link><pubDate>Wed, 20 Jan 2021 01:30:08 +0000</pubDate><guid>https://razeen.me/posts/ubutun-realtek-r8125-driver-install/</guid><description>&lt;p&gt;Ubuntu 20.04 LTS 安装好后，发现 WIFI 可以正常连接，有线网络连图标都没有显示。经过诊断发现是有线网卡驱动未正确问题。最后通过手动安装网卡驱动得以解决。这里记录一下。&lt;/p&gt;
&lt;p&gt;我的主板是 &lt;code&gt;微星B460M MORTAR WIFI &lt;/code&gt;，驱动 &lt;code&gt; R8125&lt;/code&gt;。类似型号安装应也差不多。&lt;/p&gt;</description></item><item><title>折腾 Ubuntu 20.04 LTS 开发环境</title><link>https://razeen.me/posts/start-use-ubuntu-and-win/</link><pubDate>Fri, 28 Aug 2020 02:48:08 +0000</pubDate><guid>https://razeen.me/posts/start-use-ubuntu-and-win/</guid><description>&lt;p&gt;&lt;del&gt;前段时间买了个 Inter NUC (NUC10i5FNH6), 主要用来在家里搬砖。体验了一段时间 win10, 虽然配置了 WSL2， 但开发体验实在糟糕，在考虑过 Ubuntu 和黑苹果后，还是选择了 Ubuntu, 毕竟用习惯了白苹果，突然用个黑苹果，不能随意升级，还有接一个 USB WiFi ，还担心驱动问题。。。&lt;/del&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;NUC 用了一段时间，还是有点卡，CPU跟不上。 最后还是组装了一台台式主机，将原来的系统盘查上去直接就可使用，爽到飞起。 至于NUC就当服务器用了。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;毕竟头一次想把 Ubuntu 当作生产力，记录一下折腾过程。&lt;/p&gt;</description></item><item><title>Go学习笔记（九） 计时器的生命周期[译]</title><link>https://razeen.me/posts/go-timers-life-cycle/</link><pubDate>Sat, 15 Aug 2020 07:41:00 +0000</pubDate><guid>https://razeen.me/posts/go-timers-life-cycle/</guid><description>&lt;p&gt;&lt;img loading="lazy" src="https://st.razeen.me/img/2020/go-timer.webp" alt="Illustration created for “A Journey With Go”, made from the original Go Gopher, created by Renee French." /&gt;
&lt;/p&gt;
&lt;p&gt;&lt;em&gt;全文基于GO 1.14&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;计时器在定时执行一些任务时很有用。Go内部依靠调度器来管理创建的计时器。而Go的调度程序是协作式的调度方式，这会让整个调度看起来比较复杂，因为goroutune必须自己停止（依赖channel阻塞或system call), 或者由调度器自己在某个调度点暂停。&lt;/p&gt;</description></item><item><title>利用 git hook 规范你的代码与 commit message</title><link>https://razeen.me/posts/golang-and-git-commit-message-pre-commit/</link><pubDate>Mon, 13 Apr 2020 07:08:37 +0000</pubDate><guid>https://razeen.me/posts/golang-and-git-commit-message-pre-commit/</guid><description>&lt;p&gt;在团队协作时，由于个人编码习惯的差异，导致代码格式，风格都会有所不同，这就给代码审核带来一定的困难，更严重的是会导致整体的代码质量不可控。这时，我们有必要借助一些工具来约束我们的代码格式。在Go中，我们经常使用的工具有：&lt;/p&gt;</description></item><item><title>规范 git commit message 与自动化版本控制</title><link>https://razeen.me/posts/conventional-commits-and-standard-version/</link><pubDate>Sun, 12 Apr 2020 23:27:53 +0000</pubDate><guid>https://razeen.me/posts/conventional-commits-and-standard-version/</guid><description>&lt;p&gt;git commit message是你对你所编码内容的总结概括。规范、详细的git commit message不仅能体现你的内容概括能力，还能为你自己和团队，或项目带来巨大的好处，这也是我所推崇的。但很多小伙伴不愿意花时间在这里，经常会写出&lt;code&gt;优化了一些功能&lt;/code&gt;、&lt;code&gt;修复了一些BUG&lt;/code&gt;等等模糊不清的commit message，完全没有意识到这么写会带来一些严重的问题：&lt;/p&gt;</description></item><item><title>超详细 vim 配置 (with MacVim)</title><link>https://razeen.me/posts/my-macvim-vimrc/</link><pubDate>Tue, 24 Mar 2020 23:26:48 +0000</pubDate><guid>https://razeen.me/posts/my-macvim-vimrc/</guid><description>&lt;p&gt;MacVim 用了很久，非常喜欢 vim 编程带来的高效，清爽，hack 的感觉，感谢&lt;a href="https://github.com/deepzz0/dotfiles/blob/master/macvim/vimrc"&gt;deepzz&lt;/a&gt;多年前的传道。这两天花了点时间一行一行的去查vimrc内的配置，大概弄清了每一项配置的作用，并标上注释，整理常用快捷键。&lt;/p&gt;</description></item><item><title>Golang 中的 RESTful API 最佳实践</title><link>https://razeen.me/posts/golang-and-restful-api/</link><pubDate>Sun, 15 Mar 2020 01:58:42 +0000</pubDate><guid>https://razeen.me/posts/golang-and-restful-api/</guid><description>&lt;p&gt;RESRful API已经流行很多年了，我也一直在使用它。最佳实践也看过不少，但当一个项目完成，再次回顾/梳理项目时，会发现很多API和规范还是多少有些出入。在这篇文章中，我们结合Go Web再次梳理一下RESTful API的相关最佳实践。&lt;/p&gt;</description></item><item><title>折腾服务器(开篇) 我的第一台个人服务器</title><link>https://razeen.me/posts/my-first-home-server/</link><pubDate>Thu, 19 Dec 2019 12:31:52 +0000</pubDate><guid>https://razeen.me/posts/my-first-home-server/</guid><description>观望了许久，终于入手了我的第一台家用服务器，开始折腾起来。</description></item><item><title>Newifi3 实现低成本家庭级科学上网</title><link>https://razeen.me/posts/start-use-newifi3/</link><pubDate>Sun, 01 Sep 2019 13:17:14 +0000</pubDate><guid>https://razeen.me/posts/start-use-newifi3/</guid><description>利用Newifi3路由器，刷Padavan老毛子, 安装shadowsocks实现全家智能科学上网，在家再也不用手动切换网络,轻松Google,Youtube。</description></item><item><title>Go学习笔记(八) | 使用 os/exec 执行命令</title><link>https://razeen.me/posts/simple-use-go-exec-command/</link><pubDate>Thu, 30 May 2019 21:06:43 +0000</pubDate><guid>https://razeen.me/posts/simple-use-go-exec-command/</guid><description>这篇文章主要总结了我在学习使用go os/exec包去调用外部命令的一些方法。</description></item><item><title>如何用 Go 调用 Windows API</title><link>https://razeen.me/posts/breaking-all-the-rules-using-go-to-call-windows-api/</link><pubDate>Wed, 22 May 2019 22:22:35 +0000</pubDate><guid>https://razeen.me/posts/breaking-all-the-rules-using-go-to-call-windows-api/</guid><description>在Go中，我们可以很轻松的利用syscall包调用Windows API去做一些更高级/底层的操作。这篇文章，主要记录了我在平时开发过程中以及网上收集到的一些关于Windows API调用相关的知识，或者开发模式，方便你遇到类似的情况后，能更快入手。</description></item><item><title>Mac OS 自动根据 WI-FI 名字改变网络位置</title><link>https://razeen.me/posts/auto-change-network-location-base-on-name-of-wifi/</link><pubDate>Sat, 06 Apr 2019 04:00:47 +0000</pubDate><guid>https://razeen.me/posts/auto-change-network-location-base-on-name-of-wifi/</guid><description>&lt;p&gt;Mac OS 给我们提供了一个 Network Location 的功能，我们可以在不同的 Location 下设置不同的 DNS/VPN 等等。然而每次实际位置变化后，都要我们手动去切换。由于我在公司和家里使用的DNS服务器并不相同，很多时候到公司发现一些公司的内网连接不上了，反复检查 才想起来，哦？位置忘切换了！&lt;/p&gt;
&lt;p&gt;我想，能不能根据地理位置改变这个 Location 呢？Google 一圈发现并没有。但是有人提供了另外一种方式。那就是根据 WI-FI 的名字，修改该 Location。一般 WI-FI 名字不会经常改变，所以这也是间接实现该需求了。&lt;/p&gt;</description></item><item><title>关于 Docker 清理</title><link>https://razeen.me/posts/clean-your-docker/</link><pubDate>Fri, 05 Apr 2019 03:43:48 +0000</pubDate><guid>https://razeen.me/posts/clean-your-docker/</guid><description>&lt;p&gt;在Docker的日常使用中，我们或许偶尔遇到下面这些情况：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;$ docker-compose ps
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="o"&gt;[&lt;/span&gt;27142&lt;span class="o"&gt;]&lt;/span&gt; INTERNAL ERROR: cannot create temporary directory!
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;$ df -h
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;Filesystem Size Used Avail Use% Mounted on
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;devtmpfs 489M 132K 488M 1% /dev
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;tmpfs 497M &lt;span class="m"&gt;0&lt;/span&gt; 497M 0% /dev/shm
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;/dev/xvda1 7.8G 7.7G &lt;span class="m"&gt;0&lt;/span&gt; 100% /
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description></item><item><title>MIME Types 速查表</title><link>https://razeen.me/posts/mime-types-quick-look/</link><pubDate>Fri, 01 Mar 2019 21:17:25 +0000</pubDate><guid>https://razeen.me/posts/mime-types-quick-look/</guid><description>&lt;p&gt;做web开发时，经常需要设置一些返回数据的类型的头部，也就是 MIME Types。 这遍博客就是收罗了大部分的类型, 如果以后发现新的会持续更新。&lt;/p&gt;</description></item><item><title>Go学习笔记(七) | 理解OAuth 2.0并实现一个客户端</title><link>https://razeen.me/posts/oauth2-protocol-details/</link><pubDate>Thu, 07 Feb 2019 14:41:58 +0000</pubDate><guid>https://razeen.me/posts/oauth2-protocol-details/</guid><description>&lt;p&gt;OAuth 2.0是一个关于授权的开放网络标准，主要致力于简化客户端人员开发，同时为Web应用程序、桌面应用程序、移动电话和物联网设备提供特定的授权规范。他的官网在&lt;a href="https://oauth.net/2/"&gt;这里&lt;/a&gt;。在&lt;a href="https://tools.ietf.org/html/rfc6749"&gt;RFC6749&lt;/a&gt;中有明确协议规范。&lt;/p&gt;
&lt;p&gt;简单来说，我们平时使用的很多第三方登录并获取头像等信息就是用的OAuth 2.0。如我们用QQ登录一些论坛，用google账号登陆facebook，用github账号登陆gitlab等。如下图展示的就是利用QQ登录网易云音乐Web版，其中用到的就是OAuth 2.0。&lt;/p&gt;</description></item><item><title>我又又又把博客迁移了</title><link>https://razeen.me/posts/blog-migration-hexo-next/</link><pubDate>Sun, 03 Feb 2019 19:00:36 +0000</pubDate><guid>https://razeen.me/posts/blog-migration-hexo-next/</guid><description>&lt;p&gt;好久没有维护博客，看了一下&lt;a href="https://github.com/theme-next/hexo-theme-next"&gt;Next主题&lt;/a&gt;的相关功能，最后决定将博客切到了hexo，原博客在&lt;a href="https://blog.netcj.com"&gt;这里&lt;/a&gt;。原&lt;a href="https://github.com/eiblog/eiblog"&gt;eiblog&lt;/a&gt;有些东西想去更新，一直没有动手，这里立个flag，有空了在eiblog基础上改些东西，大概有：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;input disabled="" type="checkbox"&gt; 自动更新disqus js(每次js更新了，disqus就加载不了)&lt;/li&gt;
&lt;li&gt;&lt;input disabled="" type="checkbox"&gt; 数据库切换到sqlite3 (用gorm支持多种数据库)&lt;/li&gt;
&lt;li&gt;&lt;input disabled="" type="checkbox"&gt; 侧边栏可以自定义添加页面&lt;/li&gt;
&lt;li&gt;&lt;input disabled="" type="checkbox"&gt; 更容易部署&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>Go学习笔记(六) | 使用swaggo自动生成Restful API文档</title><link>https://razeen.me/posts/go-swagger/</link><pubDate>Sun, 13 Jan 2019 00:45:29 +0000</pubDate><guid>https://razeen.me/posts/go-swagger/</guid><description>&lt;p&gt;相信很多程序猿和我一样不喜欢写API文档。写代码多舒服，写文档不仅要花费大量的时间，有时候还不能做到面面具全。但API文档是必不可少的，相信其重要性就不用我说了，一份含糊的文档甚至能让前后端人员打起来。 而今天这篇博客介绍的swaggo就是让你只需要专注于代码就可以生成完美API文档的工具。废话说的有点多，我们直接看文章。&lt;/p&gt;</description></item><item><title>Go学习笔记(五) | 使用代码片段(snippets)提高编码效率</title><link>https://razeen.me/posts/go-snippets/</link><pubDate>Wed, 05 Dec 2018 02:36:29 +0000</pubDate><guid>https://razeen.me/posts/go-snippets/</guid><description>&lt;p&gt;在Coding的时候，难免会有一些重复的代码或者形式相似的代码，在写这些代码的时候，你会觉得索然无味，甚至有点讨厌。这时候，你就会想，这段代码是否可以抽象成一个通用的片段，我简单敲几个快捷键就出来了呢。这也就代码片段所解决的问题。&lt;/p&gt;</description></item><item><title>IPFS 初体验，利用 IPFS 托管你的静态网站</title><link>https://razeen.me/posts/start-ipfs-gateway/</link><pubDate>Sun, 23 Sep 2018 14:52:44 +0000</pubDate><guid>https://razeen.me/posts/start-ipfs-gateway/</guid><description>&lt;p&gt;首先，我们需要知道IPFS是什么？&lt;/p&gt;
&lt;p&gt;其实IPFS是一种协议，全称为&lt;code&gt;Inter-Planetary File System&lt;/code&gt;，是一种点对点超媒体协议，旨在取代旧的HTTP，使网络更快，更安全，更开放。&lt;/p&gt;</description></item><item><title>记一次 PostgreSQL LIKE 索引优化，联合字段 LIKE 查询优化。</title><link>https://razeen.me/posts/pg-like-index-optimize/</link><pubDate>Sat, 01 Sep 2018 07:06:06 +0000</pubDate><guid>https://razeen.me/posts/pg-like-index-optimize/</guid><description>&lt;p&gt;由于最近我司业务量上涨，数据量剧增，数据库查询速度明显变慢，单次查询居然达到1800ms以上，急需优化。待查阅一番后，我知道了LIKE查询正确的索引使用姿势，特别是一些符合字段索引。&lt;/p&gt;</description></item><item><title>Disqus 添加有趣的 Reactions 的功能</title><link>https://razeen.me/posts/disqus-reactions/</link><pubDate>Fri, 31 Aug 2018 21:18:23 +0000</pubDate><guid>https://razeen.me/posts/disqus-reactions/</guid><description>&lt;p&gt;听v友说添加了个Disqus添加个Reactions功能，看起来很有趣，赶快来试了一下～看看能不能消灭博客一直 O 回复的问题 ==&lt;/p&gt;</description></item><item><title>gRPC在Go中的使用（三）gRPC实现TLS加密通信与流模式</title><link>https://razeen.me/posts/how-to-use-grpc-in-golang-03/</link><pubDate>Mon, 06 Aug 2018 02:05:00 +0000</pubDate><guid>https://razeen.me/posts/how-to-use-grpc-in-golang-03/</guid><description>&lt;p&gt;在前面的两篇博客中，我们已经知道了如何利用gRPC建立简单RPC通信。但这样简单的实现有时候满足不了我们的业务需求。在一些场景中我们需要防止数据被劫持，或是一些场景中我们希望客户端与服务器不是简单的一问一答，而是建立起一个流式的RPC通信，那么该怎么做到呢？&lt;/p&gt;</description></item><item><title>gRPC在Go中的使用（二）gRPC实现简单通讯</title><link>https://razeen.me/posts/how-to-use-grpc-in-golang-02/</link><pubDate>Thu, 19 Jul 2018 01:51:06 +0000</pubDate><guid>https://razeen.me/posts/how-to-use-grpc-in-golang-02/</guid><description>&lt;p&gt;在上一篇中，我们用protobuf定义了两个消息&lt;code&gt;HelloWorldRequest&lt;/code&gt;与&lt;code&gt;HelloWorldResponse&lt;/code&gt;以及一个&lt;code&gt;HelloWorldService&lt;/code&gt;服务。同时，我们还生成了相应的go代码&lt;code&gt;.pb.go&lt;/code&gt;。&lt;/p&gt;
&lt;p&gt;那么客户端与服务端怎么去通过这些接口去完成通讯呢？下面我们一起实现一个简单的gRPC通讯。&lt;/p&gt;</description></item><item><title>gRPC在Go中的使用（一）Protocol Buffers语法与相关使用</title><link>https://razeen.me/posts/how-to-use-grpc-in-golang-01/</link><pubDate>Mon, 16 Jul 2018 01:00:41 +0000</pubDate><guid>https://razeen.me/posts/how-to-use-grpc-in-golang-01/</guid><description>&lt;p&gt;在gRPC官网用了一句话来介绍:“一个高性能、开源的通用RPC框架”，同时介绍了其四大特点：&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;双向流媒体和集成身份验证&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>CentOS 安装 tshark 抓包工具</title><link>https://razeen.me/posts/how-to-install-tshark-on-centos/</link><pubDate>Sun, 15 Jul 2018 16:29:13 +0000</pubDate><guid>https://razeen.me/posts/how-to-install-tshark-on-centos/</guid><description>&lt;p&gt;准备在服务器上用&lt;code&gt;tshark&lt;/code&gt;抓包，分析一下数据。直接&lt;code&gt;yum install tshark&lt;/code&gt;却发现没有这个包。网上搜索一下，各种奇葩安装方式，又是安装&lt;code&gt;apt&lt;/code&gt;？又是安装各种环境？我相信既然CentOS已经有了&lt;code&gt;yum&lt;/code&gt;这么好的包管理工具，那么一定有更简单的方式。&lt;/p&gt;</description></item><item><title>Go学习笔记(四) | win上使用VSCode搭建Go开发环境</title><link>https://razeen.me/posts/go-build-vscode-win-env/</link><pubDate>Sat, 02 Jun 2018 03:27:48 +0000</pubDate><guid>https://razeen.me/posts/go-build-vscode-win-env/</guid><description>&lt;p&gt;每天背着个Mac挤地铁，挤得一身汗不说，还担心把屏幕挤坏了。看着家里这台闲着的Window,我决定给他用起来。那么问题来了，用什么IDE呢？&lt;/p&gt;</description></item><item><title>日常 Postgres 数据库点滴记录</title><link>https://razeen.me/posts/postgres-daily/</link><pubDate>Thu, 17 May 2018 18:40:05 +0000</pubDate><guid>https://razeen.me/posts/postgres-daily/</guid><description>&lt;p&gt;Desc:Postgres数据库日常使用，插入更新，复制表，一些使用习惯。&lt;/p&gt;
&lt;p&gt;由于经常接触数据库，但又停留在比较浅的层次，暂且没有时间也没必要去系统了解，这篇博客权当记录一些自己常用到的pg数据库语句，持续更新~&lt;/p&gt;</description></item><item><title>Go学习笔记(三) | 怎么写Go基准测试（性能测试）</title><link>https://razeen.me/posts/go-how-to-write-benchmark/</link><pubDate>Wed, 25 Apr 2018 01:04:50 +0000</pubDate><guid>https://razeen.me/posts/go-how-to-write-benchmark/</guid><description>&lt;p&gt;或许你经常会思考这样的问题，我用不同的方法实现了同样的效果，哪个会更快？哪个内存消耗更小？这时候你一个简单的基准测试就能解决你的疑惑。&lt;/p&gt;</description></item><item><title>一次诡异的数据库删除</title><link>https://razeen.me/posts/strage-db-delete/</link><pubDate>Thu, 12 Apr 2018 13:10:18 +0000</pubDate><guid>https://razeen.me/posts/strage-db-delete/</guid><description>&lt;p&gt;事情是这样的。&lt;/p&gt;
&lt;p&gt;我们的项目使用的是&lt;code&gt;sqlite3&lt;/code&gt;数据库。在一次常规模拟测试中，我们想了解，如果程序正在运行中，用户将&lt;code&gt;sqlite3&lt;/code&gt;数据库文件删除，程序能否进入预设的重置流程。&lt;/p&gt;
&lt;p&gt;结果，我们却让我们有些意外。&lt;/p&gt;</description></item><item><title>GitHub Pages自定义域名开启HTTPS</title><link>https://razeen.me/posts/https-githubpages/</link><pubDate>Tue, 27 Mar 2018 14:35:44 +0000</pubDate><guid>https://razeen.me/posts/https-githubpages/</guid><description>&lt;p&gt;GitHub Pages由于其免费，轻量，搭建方便等缘故已经成为很多coder搭建博客的首选方案。同时，GitHub Pages还支持自定义域名访问，这就让更多人有兴趣实用了。但，一旦你开启了自定义域名，通过自定义域名访问，不再是HTTPS了。这篇博客就是帮你实现自定义域名的HTTPS支持。&lt;/p&gt;</description></item><item><title>Go学习笔记(二) | 我对 recover 的一点误解</title><link>https://razeen.me/posts/daily-go-recover/</link><pubDate>Sun, 21 Jan 2018 22:19:30 +0000</pubDate><guid>https://razeen.me/posts/daily-go-recover/</guid><description>&lt;p&gt;在golang的官方介绍中是这么介绍&lt;strong&gt;Recover&lt;/strong&gt;函数的。&lt;/p&gt;</description></item><item><title>修复远程登陆 Centos 时，出现 UTF-8 Warning</title><link>https://razeen.me/posts/centos-utf-8-warning/</link><pubDate>Fri, 12 Jan 2018 13:12:34 +0000</pubDate><guid>https://razeen.me/posts/centos-utf-8-warning/</guid><description>&lt;p&gt;远程登陆Centos时，出现&amp;quot;UTF-8&amp;quot; Warning&lt;/p&gt;</description></item><item><title>Go学习笔记(一) | postgres与golang点点滴滴</title><link>https://razeen.me/posts/daily-pg-tips/</link><pubDate>Mon, 27 Nov 2017 00:07:00 +0000</pubDate><guid>https://razeen.me/posts/daily-pg-tips/</guid><description>&lt;p&gt;在golang中使用数据库主要依赖&lt;code&gt;database/sql&lt;/code&gt;库以及pg的驱动库。而目前我们常用的pg的驱动库是 &lt;code&gt;github.com/lib/pq&lt;/code&gt;。这里我想说的不是如何去使用它们，毕竟人家文档已经很详细了，这里主要总结了一下自己日常使用中学到的一些技巧。&lt;/p&gt;</description></item><item><title>AWS 命令行界面(aws-cli)从安装到快速上手</title><link>https://razeen.me/posts/tool-awscli-overview-1/</link><pubDate>Fri, 17 Nov 2017 02:47:00 +0000</pubDate><guid>https://razeen.me/posts/tool-awscli-overview-1/</guid><description>&lt;p&gt;AWS 命令行界面 (CLI) 是用于管理 AWS 服务的统一工具。只通过一个工具进行下载和配置，您可以使用命令行控制多个 AWS 服务并利用脚本来自动执行这些服务。 &amp;mdash;- aws官方是这么描叙aws-cli的。在实际使用的时候通过脚本完成全自动化部署，一键管理许多云服务，aws-cli确实是你管理aws服务的一个提高生产力的好工具。&lt;/p&gt;</description></item><item><title>常用 linux 命令小结（一）文件目录操作</title><link>https://razeen.me/posts/linux-command-line-summary-fopt/</link><pubDate>Sat, 21 Oct 2017 23:29:00 +0000</pubDate><guid>https://razeen.me/posts/linux-command-line-summary-fopt/</guid><description>&lt;p&gt;经常用到一些linux命令是会突然忘记他们的用法，为了以后熟练的使用它们，这里总结一下自己经常用的命令以及这写命令的常用参数。&lt;/p&gt;</description></item><item><title>云服务器搭建 hexo 博客，git hooks自动更新</title><link>https://razeen.me/posts/daily-hexo-auto-refresh/</link><pubDate>Thu, 28 Sep 2017 18:11:00 +0000</pubDate><guid>https://razeen.me/posts/daily-hexo-auto-refresh/</guid><description>&lt;p&gt;因为自己喜欢瞎拍一些东西，希望弄个博客记录记录，原以为就在eiblog的基础上添加相册栏目，自定义一些东西，但自己的前端知识几乎为0，行动起来，需要点时间。看到hexo上有很多适合的主题，决定用hexo搭建一个，通过git hooks就可线下推送，线上自动拉取部署。&lt;/p&gt;</description></item><item><title>SSH 免密登陆, SSH Config 配置</title><link>https://razeen.me/posts/ssh-tips/</link><pubDate>Thu, 31 Aug 2017 10:38:00 +0000</pubDate><guid>https://razeen.me/posts/ssh-tips/</guid><description>&lt;p&gt;最近又在捣腾捣腾自己的博客,作死的将阿里云磁盘重置了一下。需要重新配置一个SSH登陆的秘钥，发现忘了该怎么开始，这里整理下一些日常用的SSH相关姿势==。&lt;/p&gt;
&lt;h3 id="ssh是什么"&gt;SSH是什么&lt;/h3&gt;
&lt;p&gt;SSH &lt;em&gt;(Secure Shell)&lt;/em&gt; 简单来说就是一种用于计算机之间加密登陆的网络协议。使用SSH协议登陆到另外一台计算机，能有效的保证远程管理过程中的数据安全。&lt;/p&gt;</description></item><item><title>Golang CGO Mac 交叉编译 Windows</title><link>https://razeen.me/posts/golang-cgo-mac-win-cross-compilation/</link><pubDate>Sat, 12 Aug 2017 22:48:22 +0000</pubDate><guid>https://razeen.me/posts/golang-cgo-mac-win-cross-compilation/</guid><description>&lt;p&gt;有个小项目，使用sqlite3数据库，需要跨平台编译。我在Mac上开发的，现在编译一份windows平台的。&lt;/p&gt;</description></item><item><title>使用 goose 让数据库迁移更加轻松</title><link>https://razeen.me/posts/db-tool-goose/</link><pubDate>Tue, 28 Mar 2017 18:38:00 +0000</pubDate><guid>https://razeen.me/posts/db-tool-goose/</guid><description>&lt;p&gt;在开发到发布的过程中，数据库的迁移是一件较为繁琐的事，而goose的出现，让数据库的迁移变得很轻松。&lt;/p&gt;
&lt;p&gt;我们只需要简单的一句&lt;code&gt;goose up&lt;/code&gt; 就能将数据库重新部署，一句&lt;code&gt;goose down&lt;/code&gt; 就能将原有的数据库清除，是不是感觉很easy！&lt;/p&gt;</description></item><item><title>开始使用Ghost</title><link>https://razeen.me/posts/start-use-ghost/</link><pubDate>Wed, 22 Mar 2017 22:40:35 +0000</pubDate><guid>https://razeen.me/posts/start-use-ghost/</guid><description>&lt;p&gt;总想有点地方写一些杂碎的东西，今天抽了一会功夫搭了个ghost博客。我会在这里写一些比较零碎的学习笔记之类的东西。我们首先说一下该博客的搭建过程。&lt;/p&gt;
&lt;p&gt;其实ghost搭建起来很简单，一个docker-compose.yaml文件就解决了。也正是由于它的简单，搭建起来不费时间，后台写博客方便等等，我才使用它。 话不多说 ，我们开始。&lt;/p&gt;</description></item><item><title>Windows10 VPN L2TP/IPSec 找不到共享密钥入口？</title><link>https://razeen.me/posts/win10-vpn-lztp-ipsec-sharekey/</link><pubDate>Sun, 12 Mar 2017 22:40:45 +0000</pubDate><guid>https://razeen.me/posts/win10-vpn-lztp-ipsec-sharekey/</guid><description>&lt;p&gt;在win10上使用vpn，L2TP/IPSec 有些是需要设置一个共享密钥的，结果如下图所示，没有输入的入口。&lt;/p&gt;
&lt;p&gt;&lt;img loading="lazy" src="https://st.razeen.me/img/2018/jietu20181116-142843.webp" alt="" /&gt;
&lt;/p&gt;</description></item><item><title>Gin文件上传与下载</title><link>https://razeen.me/posts/gin-file-down-upload/</link><pubDate>Sun, 12 Mar 2017 13:06:52 +0000</pubDate><guid>https://razeen.me/posts/gin-file-down-upload/</guid><description>&lt;p&gt;Gin是用Go编写的web框架。性能还不错，而且使用比较简单，还支持RESTful API。&lt;/p&gt;
&lt;p&gt;日常的使用中我们可能要处理一些文件的上传与下载，我这里简单总结一下。&lt;/p&gt;</description></item></channel></rss>