Ubuntu UFW防火墙规则与命令示例大全

在服务器安全领域,防火墙是守护网络安全的坚实盾牌。UFW(Uncomplicated Firewall),即“不复杂的防火墙”,是一个运行在iptables之上的防火墙配置工具,它为Ubuntu系统默认提供了一个简洁的命令行界面,用于配置常见的防火墙使用场景。

本文将带你快速掌握UFW的常用规则和命令,包括如何通过端口、网络接口和源IP地址来允许或阻止服务。

快速上手指南

  • 本文采用速查表格式,包含独立的命令行代码片段。
  • 可以直接从目录跳转到你想要查看的相关的部分。
  • 本篇博客中部分地方,需要替换为你自己的实际网络中的IP地址。

使用sudo ufw statussudo ufw status verbose可以检查你当前的UFW规则集。

注意:
在尝试使用本篇博客的 UFW 命令前记得先备份你的云服务器的重要数据,建议可以为服务器创建一个快照,学习完 UFW 命令后恢复快照即可。

服务器准备(可选)

学习UFW防火墙规则,建议可以自己准备一台服务器,毕竟孰能生巧嘛。

  • 有公网 IP 的 Linux 服务器,可以选择腾讯云,阿里云, 雨云等,自己有本地服务器也可以。
  • 本篇博客以 雨云 为例 https://www.rainyun.com/NTEzMTM1_?s=blog
  • 我会教大家如何创建一台属于自己的云服务器

创建云服务器

点击如图位置:
https://img-blog.csdnimg.cn/6e42c68ee8f749059c49ae8d657d143e.png

区域选择
https://img-blog.csdnimg.cn/77fe27a310384f90a7e3fe4cf0358fe3.png
带宽以及配置自行选择。
https://img-blog.csdnimg.cn/5573cc7ef7e842ca8148d2404fc78e87.png
我这里选择 Ubuntu 22.04 版本。
https://img-blog.csdnimg.cn/81e3b5a405e8460f844482e2b3c479bb.png
等待机器部署完毕,选择刚刚确定好的服务器,进入管理面板,找到远程连接相关信息。
https://img-blog.csdnimg.cn/8fc0e6c9ebbd478b91a1575b1d3e8bfc.png
https://paste.c-net.org/YankeeWelch
使用 PowerShell 进行远程连接。
https://img-blog.csdnimg.cn/3561a2ebc2a04c6aa27191a3763d40cd.png
输入 ssh root@您的服务器IP 例如 ssh root@154.9.227.239 回车后,首次需要输入 yes,再次回车后即可登录服务器。
https://img-blog.csdnimg.cn/4ca831f54baf48e7a96969ac2841af31.png
到此为止,我们的云服务器就创建好了,接下来就可以在终端运行下面教程中的命令。

基础命令

检查UFW状态

要检查ufw是否已启用,运行以下命令:

sudo ufw status

如果输出显示Status: inactive,则表示你的防火墙尚未激活。

启用UFW

如果你在运行ufw status后输出了Status: inactive的消息,这表示系统上的防火墙并未启用。你需要运行一个命令来启用它。
默认情况下,启用UFW会阻止服务器上所有端口的外部访问。实际上,如果你在通过SSH连接到服务器并启用ufw之前没有允许通过SSH端口访问,你将会被断开连接。因此,如果你的情况是这样,请确保按照本指南中的部分先启用SSH访问,然后再启用防火墙。
要在你的系统上启用UFW,运行:

sudo ufw enable

你会看到如下输出:

Firewall is active and enabled on system startup

要查看当前被阻止或允许的内容,你可以在运行ufw status时使用verbose参数:

sudo ufw status verbose

禁用UFW

如果你出于某种原因需要禁用UFW,可以使用以下命令:

sudo ufw disable

请注意,此命令将完全禁用你系统上的防火墙服务。

阻止IP地址

要阻止来自特定IP地址的所有网络连接,请运行以下命令,将高亮的IP地址替换为你想要阻止的IP地址:

sudo ufw deny from 203.0.113.100

如果你现在运行sudo ufw status,你会看到指定的IP地址被列为被拒绝:

Status: active
To                         Action      From
--                         ------      ----
Anywhere                   DENY        203.0.113.100

对于指定的IP地址,所有传入和传出的连接都被阻止。

阻止子网

如果你需要阻止整个子网,你可以使用子网地址作为from参数在ufw deny命令中。这将阻止示例子网203.0.113.0/24中的所有IP地址:

sudo ufw deny from 203.0.113.0/24

阻止特定网络接口的传入连接

要阻止来自特定IP地址到特定网络接口的传入连接,请运行以下命令,将高亮的IP地址替换为你想要阻止的IP地址:

sudo ufw deny in on eth0 from 203.0.113.100

in参数告诉ufw仅对传入连接应用此规则,而on eth0参数指定此规则仅适用于eth0接口。如果你的系统有多个网络接口(包括虚拟的),并且你需要阻止对某些接口的外部访问,而不是全部,这可能会很有用。

允许IP地址

要允许来自特定IP地址的所有网络连接,请运行以下命令,将高亮的IP地址替换为你想要允许访问的IP地址:

sudo ufw allow from 203.0.113.101

如果你现在运行sudo ufw status,你会看到输出类似于这样,显示你刚刚添加的IP地址旁边的ALLOW字样。

Status: active
To                         Action      From
--                         ------      ----
...
Anywhere                   ALLOW       203.0.113.101

你也可以通过提供相应的子网掩码来允许整个子网的连接,例如203.0.113.0/24

允许特定网络接口的传入连接

要允许来自特定IP地址到特定网络接口的传入连接,请运行以下命令,将高亮的IP地址替换为你想要允许的IP地址:

sudo ufw allow in on eth0 from 203.0.113.102

如果你现在运行sudo ufw status,你会看到输出类似于这样:

Status: active
To                         Action      From
--                         ------      ----
...
Anywhere on eth0           ALLOW       203.0.113.102

删除UFW规则

要删除你之前在UFW中设置的规则,使用ufw delete后跟规则(allowdeny)和目标规格。以下示例将删除之前设置的允许所有来自IP地址203.0.113.101的连接的规则:

sudo ufw delete allow from 203.0.113.101

另一种指定你想要删除的规则的方法是通过提供规则ID。这些信息可以通过以下命令获得:

sudo ufw status numbered

从输出中,你可以看到有两个活动规则。第一个规则,带有高亮值,阻止了来自IP地址203.0.113.100的所有连接。第二个规则允许来自IP地址203.0.113.102的连接在eth0接口上。由于默认情况下UFW已经阻止了所有外部访问,除非明确允许,所以第一个规则是多余的,因此你可以删除它。要按ID删除规则,请运行:

sudo ufw delete 1

你将被提示确认操作,并确保你提供的ID指的是你想要删除的正确规则。

列出可用的应用配置文件

安装后,依赖于网络通信的应用程序通常会设置一个UFW配置文件,你可以使用它来允许来自外部地址的连接。这通常与运行ufw allow from相同,优点是提供了一个快捷方式,抽象了服务使用的具体端口号,并提供了用户友好的术语来引用服务。

要列出当前可用的配置文件,请运行以下命令:

sudo ufw app list

如果你安装了一个服务,如Web服务器或其他依赖网络的软件,而UFW中没有提供配置文件,首先确保服务已启用。对于远程服务器,你通常会有OpenSSH可用:

启用应用配置文件

要启用UFW应用配置文件,请运行ufw allow后跟你想要启用的应用配置文件的名称,你可以通过sudo ufw app list命令获得。以下示例中,我们启用了OpenSSH配置文件,这将允许所有传入的SSH连接在服务器的默认SSH端口上:

sudo ufw allow "OpenSSH"

记住,如果配置文件名称由多个单词组成,如Nginx HTTPS,则需要引用配置文件名称。

禁用应用配置文件

要禁用你之前在UFW中设置的应用配置文件,你需要移除其对应的规则。例如,考虑以下来自sudo ufw status的输出:

sudo ufw status

这表明Nginx Full应用配置文件当前已启用,允许任何和所有连接到Web服务器,无论是通过HTTP还是HTTPS。如果你想只允许HTTPS请求从和到你的Web服务器,你首先需要启用最限制性的规则,在这种情况下将是Nginx HTTPS,然后禁用当前活动的Nginx Full规则:

sudo ufw allow "Nginx HTTPS"
sudo ufw delete allow "Nginx Full"

记住你可以使用sudo ufw app list列出所有可用的应用配置文件。

允许SSH

在处理远程服务器时,你需要确保SSH端口是开放的,以便能够远程登录到你的服务器。

以下命令将启用OpenSSH UFW应用配置文件,并允许所有连接到服务器默认SSH端口:

sudo ufw allow OpenSSH

虽然不太用户友好,另一种语法是指定SSH服务的确切端口号,默认设置为22

sudo ufw allow 22

允许特定IP地址或子网的传入SSH

要允许来自特定IP地址或子网的传入连接,你将包括一个from指令来定义连接的来源。这将要求你还需要使用to参数指定目标地址。要将此规则锁定到SSH仅,你将限制proto(协议)为tcp,然后使用port参数并将其设置为22,SSH的默认端口。

以下命令将仅允许来自IP地址203.0.113.103的SSH连接:

sudo ufw allow from 203.0.113.103 proto tcp to any port 22

你也可以使用子网地址作为from参数,以允许来自整个网络的SSH连接:

sudo ufw allow from 203.0.113.0/24 proto tcp to any port 22

允许特定IP地址或子网的传入Rsync

Rsync程序在端口873上运行,可用于从一台计算机传输文件到另一台计算机。

要允许来自特定IP地址或子网的传入rsync连接,请使用from参数指定源IP地址,并使用port参数将目标端口设置为873
以下命令将仅允许来自IP地址203.0.113.103的Rsync连接:

sudo ufw allow from 203.0.113.103 to any port 873

要允许整个203.0.113.0/24子网能够rsync到你的服务器,请运行:

sudo ufw allow from 203.0.113.0/24 to any port 873

允许Nginx HTTP/HTTPS

安装后,Nginx Web服务器在服务器上设置了几种不同的UFW配置文件。一旦你安装并启用了Nginx服务,运行以下命令以识别可用的配置文件:

sudo ufw app list | grep Nginx

要允许HTTP和HTTPS流量,选择Nginx Full。否则,选择Nginx HTTP仅允许HTTP或Nginx HTTPS仅允许HTTPS。

以下命令将允许服务器上的HTTP和HTTPS流量(端口80443):

sudo ufw allow "Nginx Full"

允许Apache HTTP/HTTPS

安装后,Apache Web服务器在服务器上设置了几种不同的UFW配置文件。一旦你安装并启用了Apache服务,运行以下命令以识别可用的配置文件:

sudo ufw app list | grep Apache

要允许HTTP和HTTPS流量,选择Apache Full。否则,选择Apache用于HTTP或Apache Secure用于HTTPS。

以下命令将允许服务器上的HTTP和HTTPS流量(端口80443):

sudo ufw allow "Apache Full"

允许所有传入HTTP(端口80

Web服务器,如Apache和Nginx,通常在端口80上监听HTTP请求。如果你的默认策略是丢弃或拒绝传入流量,你需要创建一个UFW规则以允许外部访问端口80。你可以使用端口号或服务名称(http)作为此命令的参数。

要允许所有传入HTTP(端口80)连接,请运行:

sudo ufw allow http

另一种语法是指定HTTP服务的端口号:

sudo ufw allow 80

允许所有传入HTTPS(端口443

HTTPS通常在端口443上运行。如果你的默认策略是丢弃或拒绝传入流量,你需要创建一个UFW规则以允许外部访问端口443。你可以使用端口号或服务名称(https)作为此命令的参数。

要允许所有传入HTTPS(端口443)连接,请运行:

sudo ufw allow https

另一种语法是指定HTTPS服务的端口号:

sudo ufw allow 443

允许所有传入HTTP和HTTPS

如果你想允许HTTP和HTTPS流量,你可以创建一个单一规则以允许两个端口。这需要你定义协议为tcp

要允许所有传入HTTP和HTTPS(端口80443)连接,请运行:

sudo ufw allow proto tcp from any to any port 80,443

允许特定IP地址或子网的MySQL连接

MySQL在端口3306上监听客户端连接。如果你的MySQL数据库服务器被远程服务器上的客户端使用,你需要创建一个UFW规则以允许该访问。

要允许来自特定IP地址或子网的MySQL连接,请使用from参数指定源IP地址,并使用port参数将目标端口设置为3306

以下命令将允许IP地址203.0.113.103连接到服务器的MySQL端口:

sudo ufw allow from 203.0.113.103 to any port 3306

要允许整个203.0.113.0/24子网能够连接到你的MySQL服务器,请运行:

sudo ufw allow from 203.0.113.0/24 to any port 3306

允许特定IP地址或子网的PostgreSQL连接

PostgreSQL在端口5432上监听客户端连接。如果你的PostgreSQL数据库服务器被远程服务器上的客户端使用,你需要确保允许该流量。

要允许来自特定IP地址或子网的PostgreSQL连接,请指定源为from参数,并将端口设置为5432

sudo ufw allow from 203.0.113.103 to any port 5432

要允许整个203.0.113.0/24子网能够连接到你的PostgreSQL服务器,请运行:

sudo ufw allow from 203.0.113.0/24 to any port 5432

阻止出站SMTP邮件

邮件服务器,如Sendmail和Postfix,通常使用端口25进行SMTP流量。如果你的服务器不应该发送出站邮件,你可能想要阻止这种流量。要阻止出站SMTP连接,请运行:

sudo ufw deny out 25

这将配置你的防火墙丢弃所有在端口25上的出站流量。如果你需要在不同的端口号上拒绝出站连接,你可以重复此命令并将25替换为你想要阻止的端口号。

UFW高级配置技巧

定制默认策略

UFW允许你设置默认的入站和出站策略。例如,如果你想要拒绝所有传入连接,只允许出站连接,你可以使用以下命令:

sudo ufw default deny incoming
sudo ufw default allow outgoing

基于接口的规则

你可以为特定的网络接口设置规则。例如,如果你想要允许所有通过eth1接口的流量,可以使用:

sudo ufw allow in on eth1

限制速率的规则

为了防止DoS攻击,你可以限制特定IP或服务的连接速率。例如,限制来自IP地址203.0.113.100的SSH连接速率:

sudo ufw limit from 203.0.113.100 to any port 22 proto tcp

基于时间的规则

UFW允许你根据时间来设置规则。例如,你只希望在工作时间内允许SSH访问:

sudo ufw allow from any to any port 22 proto tcp time 9:00-17:00 mon-fri

规则排序

UFW会按照规则在文件中的顺序来处理它们。默认情况下,UFW会先处理允许的规则,然后是拒绝的规则。如果你有特定的顺序需求,可以通过insert命令来插入规则到特定位置:

sudo ufw insert 1 allow from 203.0.113.100 to any

这将在UFW规则列表的第一位插入一条允许规则。

复用规则

如果你有多个规则非常相似,可以使用--src-range--dst-range来指定一系列IP地址:

sudo ufw allow from 203.0.113.100:203.0.113.200 to any

这将允许从203.0.113.100203.0.113.200的IP地址范围的流量。

禁用UFW的IPv6支持

如果你的网络环境中不需要IPv6,可以通过以下命令禁用UFW的IPv6支持:

echo "IPV6=no" | sudo tee -a /etc/default/ufw
sudo ufw disable
sudo ufw enable

日志记录

UFW提供了基本的日志记录功能,可以帮助你监控防火墙的活动。你可以启用日志记录,并设置日志级别:

sudo ufw logging on
sudo ufw logging low

导出和导入规则

如果你需要在多个服务器之间同步UFW规则,可以导出当前的规则集,并在其他服务器上导入它们:

sudo ufw status > myfirewallrules.txt
# 在另一台服务器上
sudo ufw reset
sudo ufw default deny incoming
sudo ufw default allow outgoing
sudo ufw allow ssh
sudo ufw restore < myfirewallrules.txt

与NAT一起使用

UFW还支持网络地址转换(NAT),这在设置端口转发时非常有用:

sudo ufw allow proto tcp from any to 192.168.1.100 port 8080
sudo iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 8080

定期备份和审查UFW规则

定期备份和审查UFW规则是维护服务器安全的好习惯。以下是如何进行这些操作的步骤:

定期备份UFW规则

导出当前UFW规则:
你可以使用ufw命令导出当前的防火墙规则到一个文件中。打开终端并运行以下命令:

sudo ufw status > ufw-rules.txt

或者,如果你想要更详细的规则信息,可以使用:

sudo ufw status verbose > ufw-rules-verbose.txt

自动化备份:
为了定期备份,你可以将上述命令添加到cron作业中。编辑当前用户的crontab文件:

crontab -e

添加以下行以每天自动备份UFW规则到/home/yourusername/backup/ufw-rules-$(date +%Y%m%d).txt

0 2 * * * /usr/sbin/ufw status > /home/yourusername/backup/ufw-rules-$(date +\\%Y\\%m\\%d).txt

确保替换yourusername为你的实际用户名,并创建相应的备份目录。

审查UFW规则

审查规则合理性:
定期手动检查UFW规则文件,确认没有不必要的开放端口,以及所有规则是否都符合安全策略。

使用脚本自动化审查:
你可以编写一个简单的脚本来自动化审查过程,比如检查是否有未授权的开放端口:

#!/bin/bash
allowed_ports=$(cat /path/to/allowed_ports.txt)
current_rules=$(sudo ufw status verbose | grep ALLOW)for rule in $current_rules; doif ! echo "$allowed_ports" | grep -q $(echo $rule | awk '{print $NF}'); thenecho "Unapproved open port found: $rule"fi
done

确保/path/to/allowed_ports.txt文件包含所有授权开放的端口,然后运行这个脚本。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/459943.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Linux高阶——1026—验证内存映射mmap函数使用

1、验证共享映射后修改文件内容&#xff0c;是否能够同步 先创建一个映射文件&#xff0c;写入数据 分为四个步骤 1、打开映射文件 设文件描述符&#xff0c;使用open函数 int fd; if((fdopen("mapfile",O_RDWR))-1) { perror("open failed");exit…

从零开始的 vue项目部署到服务器详细步骤(vue项目build打包+nginx部署+配置ssl证书)

从零开始的 vue项目部署到服务器详细步骤&#xff08;vue项目build打包nginx部署配置ssl证书&#xff09; 文章目录 从零开始的 vue项目部署到服务器详细步骤&#xff08;vue项目build打包nginx部署配置ssl证书&#xff09;一、前言二、vue项目部署前配置1、vite.config.js 增加…

快速遍历包含合并单元格的Word表格

Word中的合并表格如下&#xff0c;现在需要根据子类&#xff08;例如&#xff1a;果汁&#xff09;查找对应的品类&#xff0c;如果这是Excel表格&#xff0c;那么即使包含合并单元格&#xff0c;也很容易处理&#xff0c;但是使用Word VBA进行查找&#xff0c;就需要一些技巧。…

智慧园区 | 数智引领,让智慧触手可及

随着科技的飞速发展&#xff0c;智慧园区正成为现代城市发展的重要方向之一。在智慧园区中&#xff0c;各种高科技手段被应用于园区的管理和服务&#xff0c;为园区的运营和居民的生活带来无限可能。 智慧园区管理平台是智慧园区建设的核心。它集聚了大数据、物联网、云计算等技…

基于uniapp微信小程序的旅游系统

作者&#xff1a;计算机学姐 开发技术&#xff1a;SpringBoot、SSM、Vue、MySQL、JSP、ElementUI、Python、小程序等&#xff0c;“文末源码”。 专栏推荐&#xff1a;前后端分离项目源码、SpringBoot项目源码、Vue项目源码、SSM项目源码、微信小程序源码 精品专栏&#xff1a;…

【分布式知识】分布式对象存储组件-Minio

文章目录 什么是minio核心特点&#xff1a;使用场景&#xff1a;开发者工具&#xff1a;社区和支持&#xff1a; 核心概念什么是对象存储&#xff1f;MinIO 如何确定对对象的访问权限&#xff1f;我可以在存储桶内按文件夹结构组织对象吗&#xff1f;如何备份和恢复 MinIO 上的…

iQOO手机怎样将屏幕投射到MacBook?可以同步音频吗?

众所周知&#xff0c;苹果品牌的设备自己有AirPlay的投屏功能&#xff0c;iPhone要投屏到MacBook只要连接同一网络&#xff0c;然后开启AirPlay就可以投屏。但其他品牌的手机没有AirPlay&#xff0c;怎么将手机屏幕投射到MacBook呢&#xff1f; 安卓系统的手机可以使用无线投屏…

2. 从服务器的主接口入手

Webserver 的主函数 main.cpp&#xff0c;完成了哪些功能&#xff1f; #include "config.h"int main(int argc, char *argv[]) {string user "";string passwd "";string databasename "";Config config;config.parse_arg(argc, a…

四、Prompt工程——简单应用

Prompt工程——简单应用 一、提示工程&#xff08;Prompt Engineering&#xff09;二、Prompt基本法则三、Prompt 调优四、简单的例子文本总结文本判断文本提取文本转化——翻译文本转化——语气 更多结语 一、提示工程&#xff08;Prompt Engineering&#xff09; 提示工程也…

5G RedCap工业路由器赋能电力物联网应用

随着5G轻量化技术应用的推进&#xff0c;5G RedCap旨在提供低功耗、低成本、广覆盖等功能特点赋能电力智能化升级。特别适用于工业物联网、低空经济、车联网、消费电子和轻量级5G的需求。 5G RedCap工业路由器的特点 低功耗&#xff1a;5G RedCap工业路由器通过节能技术&#…

Flume采集Kafka数据到Hive

版本&#xff1a; Kafka&#xff1a;2.4.1 Flume&#xff1a;1.9.0 Hive&#xff1a;3.1.0 Kafka主题准备&#xff1a; Hive表准备&#xff1a;确保hive表为&#xff1a;分区分桶、orc存储、开启事务 Flume准备&#xff1a; 配置flume文件&#xff1a; /opt/datasophon/flume-1…

react18中react-thunk实现公共数据仓库的异步操作

redux及react-redux都只能实现数据的同步修改更新&#xff0c;有点类似于vue中的mutation&#xff0c;只能做同步操作&#xff0c;异步的话不用actions来实现。由于在项目始终不可避免要实现的异步数据的更新&#xff0c;这明显不够用了。是时候引入我们的异步中间件redux-thun…

开源一款前后端分离的企业级网站内容管理系统,支持站群管理、多平台静态化,多语言、全文检索的源码

大家好&#xff0c;我是一颗甜苞谷&#xff0c;今天分享一款前后端分离的企业级网站内容管理系统&#xff0c;支持站群管理、多平台静态化&#xff0c;多语言、全文检索的源码。 前言 在当今的数字化时代&#xff0c;企业网站和个人博客已成为信息传播和品牌建设的重要渠道。…

Docker-常用命令大全(附命令详解)

文章目录 Docker 基础命令查看docker 运行状态关闭docker启动docker重启dockerdocker设置随服务启动而自启动查看docker 版本号信息docker 帮助命令 docker 镜像命令查看自己服务器中docker 镜像列表搜索镜像拉取镜像运行镜像保存镜像删除镜像加载镜像镜像标签 Docker 容器命令…

【ComfyUI】手动安装部署ComfyUI的运行环境

如果不喜欢已有的一键启动包&#xff0c;我们可以手动的安装和部署ComfyUI的运行环境&#xff0c;相比一键安装包&#xff0c;自己部署ComfyUI 环境具有相当大的灵活性&#xff0c;其实部署ComfyUI 环境非常简单&#xff0c;不像网上说的那么复杂。下面我们就按照顺序给大家分享…

Golang | Leetcode Golang题解之第520题检测大写字母

题目&#xff1a; 题解&#xff1a; func detectCapitalUse(word string) bool {// 若第 1 个字母为小写&#xff0c;则需额外判断第 2 个字母是否为小写if len(word) > 2 && unicode.IsLower(rune(word[0])) && unicode.IsUpper(rune(word[1])) {return f…

【Cri-Dockerd】安装cri-dockerd

cri-dockerd的作用&#xff1a; 在k8s1.24之前。k8s会通过dockershim来调用docker进行容器运行时containerd&#xff0c;并且会自动安装dockershim&#xff0c;但是从1.24版本之前k8s为了降低容器运行时的调用的复杂度和效率&#xff0c;直接调用containerd了&#xff0c;并且…

git下载和配置

git是什么&#xff1f; Git是一种分布式版本控制系统&#xff0c;用于跟踪文件的变化&#xff0c;尤其是源代码。它允许多个开发者在同一项目上进行协作&#xff0c;同时保持代码的历史记录。Git的主要特点包括&#xff1a; 分布式&#xff1a;每个开发者都有项目的完整副本&a…

GPT避坑指南:如何辨别逆向、AZ、OpenAI官转

市面上有些说自己是官转&#xff0c;一刀只需要1块甚至几毛钱&#xff0c;并声称官方倍率的&#xff0c;很大可能就是使用的是 逆向或Azure。 如何鉴别逆向 逆向的种类很多&#xff0c;主要分为3类 逆向不知名A| 镜像站或偷的 key。成本约等于0&#xff0c;调用聊天数据可能在…

postgresql增量备份系列一

简介 在一些大容量得数据库应用中&#xff0c;采用全量备份得方式&#xff0c;会带来大量时间浪费和开销&#xff0c;此时定期的增量备份可以使得数据存储周期变长。本文讲解几个增量备份工具 pg_basebackup pg_receivewal&#xff08;异地归档模式&#xff09; 使用pg_bas…