前言
在日常的服务器管理和开发工作中,我们每天可能需要无数次地登录远程服务器。传统的密码登录方式不仅繁琐——需要我们记住并输入复杂的密码,更重要的是,它将我们的服务器暴露在被暴力破解的风险之下。
有没有一种方法,既能让我们安全地连接服务器,又能免去重复输入密码的烦恼呢?
答案是肯定的。那就是使用 SSH 密钥对进行身份验证。这篇博客将带你一步步配置 SSH 密钥登录,让你的服务器连接既安全又高效。
在日常的服务器管理和开发工作中,我们每天可能需要无数次地登录远程服务器。传统的密码登录方式不仅繁琐——需要我们记住并输入复杂的密码,更重要的是,它将我们的服务器暴露在被暴力破解的风险之下。
有没有一种方法,既能让我们安全地连接服务器,又能免去重复输入密码的烦恼呢?
答案是肯定的。那就是使用 SSH 密钥对进行身份验证。这篇博客将带你一步步配置 SSH 密钥登录,让你的服务器连接既安全又高效。
rss是一种简易的信息发布方式,通过RSS订阅可以及时获取博客的更新信息。本文将介绍如何为 Hexo 项目添加 RSS 订阅链接。
在 Mac 和 Linux 上部署 frp, 来实现内网穿透, 使得外网可以访问内网的服务, 例如家里的 NAS, 服务器等等.
frp 是一个快速反向代理, 可以帮助您将内部网络服务暴露到公共网络, 例如家庭网络中的 NAS, 服务器等等.
首先从 frp 的 GitHub Releases 页面下载 frp 的客户端和服务端程序.
如下图:
其中
frp_0.x.x_darwin_amd64.tar.gz是 Mac 版本的客户端程序,frp_0.x.x_linux_amd64.tar.gz是 Linux 版本的客户端程序.
解压后包含以下文件:
frpc客户端程序frps服务端程序frps.toml服务端配置文件frpc.toml客户端配置文件LICENSE许可证文件
下载对应 frp 的服务端程序
解压缩至任一目录
修改 frps.toml 配置文件
1 | # frps.toml |
运行 ./frps -c frps.toml 启动服务端
下载对应 frp 的客户端程序
解压缩至任一目录
修改 frpc.toml 配置文件
1 | # frpc.toml |
运行 ./frpc -c frpc.toml 启动客户端
可以完全参考官方文档, 使用systemd方便地控制 frps 服务端的启动、停止、配置后台运行以及开机自启动
MAC上可以使用launchd来配置守护进程, 使得 frpc 客户端程序在后台运行.
创建一个 plist 文件, 例如 frpc.plist
1 |
|
其中
/Users/xxxx/frp/为 frp 的安装目录,frpc.toml为 frpc 的配置文件
根据需求该文件存到对应目录
~/Library/LaunchAgents/ 仅当前用户/Library/LaunchAgents/ 所有用户/Library/LaunchDaemons/ 系统级别1 | sudo chown root ~/Library/LaunchAgents/frpc.plist |
1 | launchctl start frpc |
1 | launchctl list | grep frpc |
或者打开mac monitor查看是否有frpc进程
1 | launchctl stop frpc # 停止服务 |
Use ssh to connect to Google Virtual Machine
谷歌云服务器默认登录方式是browser ssh,但是有时候我们需要第三方客户端使用ssh连接服务器。
本文介绍如何使用ssh连接Google Cloud平台的虚拟机(云服务器)
如何将 Font Awesome 从 v4 迁移到 v5 并优化图标加载
在这篇博客中, 我将讨论如何将Font Awesome从v4迁移到v5, 并选择合适的方式加载图标库, 帮助你优化图标加载性
In this article, I will show you how to style your terminal and IDEs.
We will use iTerm2 as the terminal and Oh My Zsh as the shell.
See the difference between User Settings and Workspace Settings in:https://code.visualstudio.com/docs/getstarted/settings
Deploy RssHub on Vercel(部署 RssHub 在 Vercel 上)
官方推荐使用docker-compose部署RssHub,但是需要个人服务器,而且需要一定的技术水平,而在Vercel上部署RssHub更加简单.
Vercel 是一个现代化的部署应用程序平台, 有以下优点:
安装RssHub官方文档进行部署:https://docs.rsshub.app/deploy/#deploy-to-vercel
部署后会发现下图错误:
原因是目前https://github.com/DIYgod/RSSHub仓库的master分支下, package.json设置"node": ">22", 而Vercel平台支持最高为20.x
https://github.com/DIYgod/RSSHub/fork
注意: 在此处取消勾选: Copy the master branch only
访问https://vercel.com/, 注册账号, 选择Hobby plan
进入主页, 点击Add New...
选择Project
Import 我们刚刚fork的仓库
系统会默认生成一个项目名称,也可以自定义修改
其他配置不动,点击Deploy
这里就会遇到开头提到的Error: 当前的环境版本是 node.js 20,而package.json的要求的 node.js版本要≥22
这里我们的解决方案是使用仓库的legacy分支, 该分支设定的node.js版本为≥16, 满足我们的需求
如下图, 进入项目设置, 选择Git, 修改Production Branch中的Branch name为legacy, 然后点击save保存
接下来, 在下面的Deploy Hooks中创建legacy on legacy, 如下图:

访问生成的url, 创建新的deployment, 等待一段时间之后, 就已经部署好了
进入项目设置, 点击Domains, 添加域名, 配置DNS解析
访问配置好的域名, 出现下图, 说明部署完成!

legacy分支, 解决了node.js版本不匹配的问题reference: https://cloud.tencent.com/developer/article/2432561
NVM(Node Version Manager)是一个 Node.js 版本管理工具,可以让你在同一台服务器上安装和切换不同版本的 Node.js。本文将介绍如何安装和使用 NVM。
首先,你需要使用 cURL 下载 NVM 安装脚本。在终端中执行以下命令:
1 | curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.0/install.sh | bash |
如果你没有安装 cURL,也可以使用 Wget 下载 NVM 安装脚本:
1 | wget -qO- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.0/install.sh | bash |
如果你使用 macOS,并且安装了 homebrew,你可以使用以下命令安装 NVM:
1 | brew install nvm |
安装完成后,你需要重新加载终端配置文件(如 .bashrc、.bash_profile、.zshrc 等)或重启终端。然后执行以下命令验证 NVM 是否安装成功:
1 | command -v nvm |
如果输出 nvm,则表示 NVM 安装成功。
你可以使用以下命令查看 NVM 支持的所有 Node.js 版本:
1 | nvm ls-remote |
安装 Node.js 的命令格式为:
1 | nvm install <version> |
例如,安装 Node.js 14.17.0:
1 | nvm install 14.17.0 |
安装多个 Node.js 版本后,你可以使用以下命令切换版本:
1 | nvm use <version> |
例如,切换到 Node.js 14.17.0:
1 | nvm use 14.17.0 |
你可以使用以下命令设置默认 Node.js 版本:
1 | nvm alias default <version> |
例如,设置默认 Node.js 版本为 14.17.0:
1 | nvm alias default 14.17.0 |
如果你想卸载 NVM,可以执行以下命令:
1 | rm -rf ~/.nvm |
pnpm1 | npm install -g pnpm |
反向代理是一种服务器配置方式,用来代理和转发客户端的请求到后端服务器上。它可以在负载均衡、缓存、加速、安全性等方面提供帮助。常见的反向代理服务器有 Nginx 和 Apache2。本文将详细讲解如何使用 Nginx 和 Apache2 来配置反向代理,将请求代理到不同的端口或服务器上。
反向代理(Reverse Proxy)是代理服务器的一种形式,客户端并不知道其实际请求的是哪一台服务器,而是通过代理服务器将请求转发到后端的不同服务器或服务上。反向代理的主要用途包括:
例如,假设你有一个后端应用运行在 http://MY_IP_ADDRESS:1200,你希望通过你的域名 example.com 访问该服务,而无需用户输入端口号 1200。这时就可以使用反向代理。
首先,你需要在服务器上安装 Nginx。如果还未安装,可以通过以下命令进行安装:
Debian/Ubuntu:
1 | sudo apt update |
CentOS:
1 | sudo yum install epel-release |
安装完成后,你需要编辑 Nginx 的配置文件,通常位于 /etc/nginx/sites-available/ 或 /etc/nginx/conf.d/。
/etc/nginx/sites-available/example.com):1 | sudo nano /etc/nginx/sites-available/example.com |
example.com 代理到 http://MY_IP_ADDRESS:1200:1 | server { |
1 | sudo ln -s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled/ |
1 | sudo nginx -t |
1 | sudo systemctl restart nginx |
如果你希望通过 HTTPS 访问,可以使用 Let’s Encrypt 免费获取 SSL 证书。
certbot:1 | sudo apt install certbot python3-certbot-nginx |
1 | sudo certbot --nginx -d example.com |
如果你的服务器上还没有安装 Apache2,首先需要安装:
Debian/Ubuntu:
1 | sudo apt update |
CentOS:
1 | sudo yum install httpd |
在 Apache 中,反向代理功能通过模块来实现。你需要启用以下模块:
1 | sudo a2enmod proxy |
/etc/apache2/sites-available/example.com.conf):1 | sudo nano /etc/apache2/sites-available/example.com.conf |
1 | <VirtualHost *:80> |
1 | sudo a2ensite example.com.conf |
1 | sudo apachectl configtest |
1 | sudo systemctl restart apache2 |
与 Nginx 类似,你也可以通过 certbot 获取 SSL 证书。
certbot:1 | sudo apt install certbot python3-certbot-apache |
1 | sudo certbot --apache -d example.com |
通过浏览器访问你的域名(http://example.com),如果显示正确的后端内容,说明反向代理配置成功。如果出现问题,检查以下内容:
nginx -t 或 apachectl configtest 检查配置文件是否正确。如果代理未生效,可以查看 Nginx 或 Apache 的日志,通常位于:
/var/log/nginx/error.log/var/log/apache2/error.log配置反向代理能够极大提升你服务器的灵活性与安全性。Nginx 和 Apache2 都提供了强大的反向代理功能,适合在各种场景下使用。Nginx 通常适用于高性能、低资源的环境,而 Apache 则提供了丰富的模块和配置选项。
通过本文的详细步骤,你应该能够成功配置反向代理,让你的域名能够代理和转发流量到不同的服务器和端口上。如果你希望进一步提升安全性,还可以添加 HTTPS 支持并启用缓存和负载均衡功能。