一个数据包的旅行!

按下 Enter 之后

浏览器地址栏里,躺着这样一行字:

1
https://www.example.com

手指按下 Enter。

不到一秒,页面就出现了。

大多数人从来不会想这一秒里发生了什么。网页跳出来,就跟呼吸一样自然。

但如果你愿意慢下来,把这一秒钟拉长,拉得足够长,你会发现:这背后有一场真正的旅行。

旅行的主角,不是浏览器,也不是服务器。

是一个数据包。

阅读更多

iptables 详解:从原理、规则到 NAT 与实战

1. 什么是 iptables

1.1. iptables 是什么

iptables 是 Linux 系统中用于管理网络数据包过滤和处理规则的工具。它运行在用户空间,负责配置和维护防火墙规则,而真正对数据包进行检查和处理的是 Linux 内核中的 Netfilter 机制。通过 iptables,管理员可以告诉 Linux:哪些网络数据包允许通过,哪些需要拒绝或丢弃,以及某些数据包需要进行什么样的处理。

简单来说,iptables 可以理解为 Linux 网络防火墙的一套规则管理工具。管理员通过命令添加规则,Linux 内核根据这些规则检查经过网络协议栈的数据包,并按照规则指定的动作处理它们。

阅读更多

在 fedora43 上安装 virtualbox

Oracle VirtualBox 是一款功能强大的虚拟化工具,可让您在一台计算机上运行多个操作系统。如果您是 Fedora 用户,并且想要安装 VirtualBox,那么您来对地方了。本指南将指导您在 Fedora Linux 上安装 VirtualBox 的过程。

阅读更多

如何使用 VS Code 调试 Python 代码

本教程将讨论使用 VS Code 调试 Python 代码所需的步骤。首先我们需要安装扩展、分析工具和调试器。

然后,我们将创建一个示例应用程序。最后,我们将探索如何使用断点和条件断点。

凭借这套技能,您将能够更好地理解应用程序在代码执行的特定点上的值和状态。

阅读更多

Fedora43 安装与配置 nodejs

Node.js是一个免费、开源、跨平台的JavaScript运行时环境,发布于2009年5月,由Ryan Dahl开发。‌ 它基于Chrome V8 JavaScript引擎构建,使JavaScript能够脱离浏览器,在服务器端运行,从而成为一种与PHP、Python、Ruby等并列的服务端脚本语言。‌

主要应用场景

Node.js非常适合开发以下类型的应用:

‌- 网络应用‌:如Web服务器、API服务、实时聊天应用、数据流应用。‌
‌- 命令行工具‌:丰富的生态系统使其成为开发构建工具、脚本的理想选择。‌
‌- 微服务与后端API‌:尤其是RESTful API服务。‌
‌- 实时应用‌:如在线游戏、协作工具、即时通讯软件。

技术架构与模块系统

‌- 事件循环‌:是Node.js处理异步操作的核心机制,负责调度和执行回调函数。‌
‌- 模块系统‌:Node.js采用CommonJS模块规范,功能被划分为不同的模块。开发者可以通过 require 函数引入内置模块(如 http、fs)或第三方模块,并通过 exports 对象暴露模块功能。‌
‌- 包管理器‌:Node.js通常与NPM一同使用,NPM是全球最大的开源库生态系统,方便开发者管理和共享代码包。‌

安装与配置

在安装nodejs之前需要先安装node版本管理器(nvm), 在nodejs开发过程中版本切换或者多版本共存是难以避免的,nvm能够很好地管理nodejs版本相关的工作,这也是nodejs官方推荐的安装nodejs的方式。安装了nvm后再安装nodejs相对就比较简单了。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19

# Download and install nvm:
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.4/install.sh | bash

# in lieu of restarting the shell
\. "$HOME/.nvm/nvm.sh"

# Download and install Node.js:
nvm install 24

# Verify the Node.js version:
node -v # Should print "v24.17.0".

# Verify npm version:
npm -v # Should print "11.13.0".

# set node default version
nvm alias default 24.17.0

VSCode 跨设备迁移

由于获取了一台新的设备安装了新的操作系统,所以需要将旧设备上的开发环境迁移到新设备,其中最主要也是最重要的部分就是vscode迁移,所以有了这篇文章。

阅读更多

使用 namesilo 搭建企业邮箱

这几年玩过的企业邮箱解决方案不少,但是一直没有找到一个理想的解决方案,手动搭建自主可控,但是技术门槛较高,需要专人维护服务器安全,监控服务器的健康状况等,人力成本较高,安全性也难以保证。

说说我的经历,起初打算使用开源方案搭建企业邮箱,见我的博客使用 postfix 和 dovecot 快速搭建邮件服务器搭建自己的企业邮箱。第一个困难是解决被识别为垃圾邮件或被主流邮箱拒收的问题,要彻底解决这个问题会非常繁琐,而且由于是全新域名和 ip,因此 SMTP 信誉非常低,非常容易被认定为垃圾邮件被拒收或进入垃圾信箱。第二个困难是安全性问题,25 端口是 SMTP 协议(用于发送邮件)监听端口,大多数 VPS 服务商都是将其关闭的, 通常不会开放, 有部分 VPS 服务商允许有条件地开放 25 端口,通常都需要交保证金。刚开始搭建邮件系统也没什么经验,25 端口完全暴露在公网上,安全措施也不强,刚刚搭建好才过一晚上邮箱就被攻破被用来发垃圾邮件, 一晚上醒来存在 vps 服务商账号上的保证金全部被扣光。于是意识到为了带自己域名的能首发邮件的邮箱二背负如此沉重的维护和安全性负担非常不划算。于是想到专业的事情还是要交给专业的人去做,于是打算使用企业邮箱服务商现成的解决方案,这样可以将维护和安全成本转给企业邮箱服务商,而自己主要集中在主要业务上。

阅读更多

使用 Hostinger 搭建企业邮箱

之前介绍过使用 postfix 和 dovecot 快速搭建邮件服务器自建企业邮件服务器,这个方案有几个优点,就是完全自主可控,用户数量,邮箱大小,附件大小都不受到限制,可定制性也比较强。但是缺点也比较明显,有一定的技术门槛,另外需要专人维护服务器安全,监控服务器的健康状况等,人力成本较高,安全性也难以保证。

后来我也介绍过另外一种低成本搭建企业邮箱的方式即使用 Zoho 0 成本搭建企业邮箱.今天我将介绍另一种低成本搭建企业邮箱的方式即:【使用 Hostinger 搭建企业邮箱】,而且维护成本低安全性高的搭建企业邮箱的方案。

阅读更多

Ubuntu 上安装与配置 Android NDK

什么是 Android NDK?

NDK(Native Development Kit) 是 Android 提供的一套开发工具,用来在应用中使用 C/C++ 语言编写、编译和集成本地代码(Native Code)。它的核心作用就是:
让 Android 应用可以调用和运行底层的 C/C++ 代码,而不仅仅是 Java/Kotlin。通俗讲:Android SDK(Android SDK(Software Development Kit)) 是写 Java/Kotlin 层 的;Android NDK 是写 C/C++ 层(Native 层) 的。

在 Linux 上安装 Android NDK 有几种方式,最推荐的方法是使用 Android SDK 的命令行工具 (sdkmanager),因为这样可以保持版本一致、方便更新。

阅读更多

使用 Nginx 部署 PHP 项目

Nginx(读作 “engine-x”)是一款高性能的 Web 服务器 + 反向代理服务器。Nginx 不会直接执行 PHP 脚本。它只懂得发送文件、转发请求,不会解析 .php 文件里的逻辑代码。所以 Nginx 必须结合 PHP 解析器才能很好的处理 PHP 请求,而且 NGINX 也只懂得如何响应和转发请求,它也不太懂如何管理 PHP 进程以及调用,连接 nginx 和 PHP 解析器的桥梁则是 FastCGI 协议,这里简单介绍一下 FastCGI ,FastCGI(Fast Common Gateway Interface)
是一种用于 Web 服务器(Nginx 或 Apache)与应用程序(如 PHP、Python、Perl)之间通信的协议。而 PHP-FPM 则是 FastCGI 的一种具体实现,拥有处理 Web 服务器和 PHP 应用程序之间的通信。

阅读更多

使用 netcat 测试 UDP 端口的连通性

因为公司网络防火墙一般对端口会有一些限制,通过公司网络访问外部服务器特定端口时,需要检测与目标服务器特定端口的连通性;对于服务器可达性通常采用 ping 方法,tcp 可以使用 telnet, tcping 工具进行测试。对于 udp 连通性我们通常采用 netcat 工具进行测试。

阅读更多

Almalinux 服务器安装图形化界面

AlmaLinux 9 与 Rocky Linux 9 在企业级 Linux 发行版中以稳定性著称。虽然它们常用于无界面(CLI)服务器环境,但在某些场景下(例如远程管理或使用图形工具)为服务器安装图形界面(GUI)也是有意义的。本文将逐步指导你如何在这两种系统上安装 GNOME 桌面环境、配置 XRDP 远程访问,并开启防火墙端口,从而在远端通过 RDP 客户端访问图形界面。

阅读更多

如何对文档项目进行搜索引擎优化?

本文解释了如何优化文档以出现在搜索结果中, 最终增加文档型网站的流量。

当您优化文档以使其对搜索引擎蜘蛛/爬虫更加友好时, 重要的是要记住,你的最终目标是为您的用户制作更多可发现的文档。

通过我们介绍的 SEO 最佳实践, 您可以确保当用户在搜索引擎中输入问题时, 他们可以从搜索结果中的文档获取答案。

阅读更多

为 MKdocs 文档网站添加评论系统

Material for MkDocs 允许使用主题扩展轻松地将您选择的第三方评论系统添加到任何页面的页脚。例如,我们将集成 Giscus,它是一个开源、免费的系统,并使用 GitHub 讨论区作为后端。

阅读更多

MkDocs 搭建的网站如何做 SEO 优化?

MkDocs 本身只是一个 静态文档生成器,并没有内建 SEO 功能,但结合 MkDocs-Material 和一些插件/配置,可以做比较完整的 SEO 优化。下面给你一份系统的方案。

阅读更多