ufw命令简介

508c46df17962da302c041dfea239aa5.gif

正文共:3999 字 41 图,预估阅读时间:4 分钟

我们之前在CentOS系统中研究了iptables命令的使用方法iptables命令简介,还做了简单的应用实验如何通过iptables配置URL过滤黑名单?如何通过iptables配置URL过滤白名单?

等到CentOS一停服CentOS 7停服之后该怎么安装软件呢?,切换到Ubuntu发现系统有个用于管理Linux防火墙netfilter的程序ufw,ufw旨在为用户提供易于使用的界面。ufw并不打算通过其命令界面提供完整的防火墙功能,而是提供了一种添加或删除简单规则的简单方法。

接下来,让我们了解一下ufw命令的相关用法。

67b1de720e6c58bc3f54d5a96918beab.png

USAGE/命令

19d50df14b557c5333bb412b8878ff65.png

ufw [--dry-run] enable|disable|reload
ufw [--dry-run] default allow|deny|reject [incoming|outgoing|routed]
ufw [--dry-run] logging on|off|LEVEL
ufw [--dry-run] reset
ufw [--dry-run] status [verbose|numbered]
ufw [--dry-run] show REPORT
ufw [--dry-run] [delete] [insert NUM] [prepend] allow|deny|reject|limit [in|out] [log|log-all] [ PORT[/PROTOCOL] | APPNAME ] [comment COMMENT]
ufw [--dry-run] [rule] [delete] [insert NUM] [prepend] allow|deny|reject|limit [in|out [on INTERFACE]] [log|log-all] [proto PROTOCOL] [from ADDRESS [port PORT | app APPNAME ]] [to ADDRESS [port PORT | app APPNAME ]] [comment COMMENT]
ufw [--dry-run] route [delete] [insert NUM] [prepend] allow|deny|reject|limit [in|out on INTERFACE] [log|log-all] [proto PROTOCOL] [from ADDRESS [port PORT | app APPNAME]] [to ADDRESS [port PORT | app APPNAME]] [comment COMMENT]
ufw [--dry-run] [--force] delete NUM
ufw [--dry-run] app list|info|default|update

9a0a671dd7e8a5ab9416820c43407fc5.png

OPTIONS/选项

7cb7e6d670f85e5bc2dc32486c588dff.png

--version

显示程序的版本号并退出。

27a91bb34e325b7b6f88ece35d06e745.png

-h, --help

显示帮助信息并退出。

799a72015cbae7104916342fb0414af7.png

--dry-run

不修改任何内容,只显示更改。

enable

重新加载防火墙并在启动时启用防火墙。

disable

卸载防火墙并在启动时禁用防火墙。

reload

重新加载防火墙。

default allow|deny|reject DIRECTION

更改DIRECTION流向流量的默认策略,其中DIRECTION是传入、传出或路由之一。请注意,在更改默认策略时,必须手动迁移现有规则。有关deny和reject的详细信息,请参阅“RULE SYNTAX/规则语法”章节。

logging on|off|LEVEL

切换日志记录。记录的数据包使用LOG_KERN系统日志功能。支持rsyslog配置的系统也可以记录到/var/log/ufw.log。指定LEVEL将打开指定LEVEL的日志。默认日志级别为“low/低”。有关详细信息,请参阅“LOGGING/日志”章节。

reset

禁用防火墙并将其重置为安装默认值。还可以提供--force选项来执行重置,而无需确认。

e396365e1ca5daf992b2d25268be5ccc.png

status

显示防火墙和ufw管理规则的状态。使用status verbose命令可以获取额外信息。在状态输出中,“Anywhere”与“any”、0.0.0.0/0(IPv4)和::/0(IPv6)同义。请注意,在使用status命令时,在报告接口时会有细微的差异。例如,如果添加了以下规则:

ufw allow in on ens33 from 192.168.0.0/16
ufw allow out on ens37 to 10.0.0.0/8
ufw route allow in on ens33 out on ens37 to 10.0.0.0/8 from 192.168.0.0/16
ufw limit 2222/tcp comment 'SSH port'

db1159b870cc9a54e1c353ef5b7589bc.png

对于输入和输出规则,接口是相对于将防火墙系统作为端点来报告的;而对于路由规则,接口则是相对于数据包流经防火墙的方向来报告的。

show REPORT

显示有关正在运行的防火墙的信息。参见“REPORTS/报告”章节。

allow ARGS

添加允许规则。参见“RULE SYNTAX/规则语法”章节。

deny ARGS

添加拒绝规则。参见“RULE SYNTAX/规则语法”章节。

reject ARGS

添加拒绝规则。参见“RULE SYNTAX/规则语法”章节。

limit ARGS

添加限制规则。参见“RULE SYNTAX/规则语法”章节。

delete RULE|NUM

删除RULE相应的规则。

insert NUM RULE

使用规则编号NUM插入相应的RULE规则

prepend RULE

在规则集的顶部预先添加相应的RULE规则。

bfc8a9de2e8e1ad3fc7aa8af06f9d008.png

RULE SYNTAX/规则语法

a327afa0fab9b5b3285ac4f940bb7e41.png

用户可以使用简单语法或完整语法指定规则。简单的语法仅指定端口,以及在主机上允许或拒绝的协议(可选)。

这两种语法都支持为规则指定注释。对于现有规则,指定不同的注释将更新注释,指定''将删除注释。

使用简单语法的规则示例:

ufw allow 53

8893f77240ca41c3f6abb7f6f05acdea.png

此规则将允许tcp和udp端口53到此主机上的任何地址。若要指定协议,请将“/protocol”附加到端口。例如:

ufw allow 25/tcp

ae941dfdbd25ba887e9a91f5104fafe6.png

这将允许tcp端口25连接到此主机上的任何地址。如果按名称指定服务,ufw还将检查/etc/services的端口和协议。如:

ufw allow smtp

93292f9c2cd0b47d69044b2801d07e77.png

ufw支持入方向和出方向过滤,用户可以选择为传入或传出流量指定入口或出口方向。如果没有提供方向,则该规则适用于传入流量。如:

ufw allow in http
ufw reject out smtp
ufw reject telnet comment 'telnet is unencrypted'

42ea61d0d5a3524ca5ba76dff1d0f2c3.png

用户还可以使用更完整的语法,指定源、目的的地址和端口。此语法松散地基于OpenBSD的PF语法。例如

ufw deny proto tcp to any port 80

9f2708d5854518f790c747479cc7082b.png

这将拒绝此主机上TCP端口80的所有流量。另一个例子:

ufw deny proto tcp from 10.0.0.0/8 to 192.168.0.1 port 25

2ca86665f6cbb05fc19308ec5b32fd4e.png

这将拒绝从RFC1918私有互联网的地址分配定义的A类网络(10.0.0.0/8)到IP地址192.168.0.1的TCP端口25的所有流量。

ufw deny proto tcp from 2001:db8::/32 to any port 25

a18ed0729f426f86dabfbcd696a3f9b8.png

这将拒绝从IPv6地址2001:db8::/32到此主机上的TCP端口25的所有流量。必须在/etc/default/ufw中启用IPv6才能使IPv6防火墙工作

ufw deny in on eth0 to 224.0.0.1 proto igmp

6686738b1f4d659bd7e7ab5da5012ffb.png

这将拒绝eth0接口上去往224.0.0.1的所有IGMP流量。

ufw allow in on eth0 to 192.168.0.1 proto gre

a2f87bed7af3a5581e9bc52d436b99c5.png

这将允许eth0接口上的所有去往192.168.0.1的GRE流量。

ufw allow proto tcp from any to any port 80,443,8080:8090 comment 'web app'

e650c03187baf0a95d63d763ebb81129.png

上述内容将允许所有访问TCP端口80、443和8080-8090的流量,并为规则添加注释。指定多个端口时,端口列表必须是数字的,不能包含空格,并且必须作为一个整体进行修改。例如,在上述示例中,您后续不能仅尝试删除“443”端口。您不能指定超过15个端口(范围计为2个端口,因此上述示例中的端口计数为4)。

ufw支持多种不同的协议。以下内容在任何规则中都有效,并在未指定协议时启用:

tcp、udp
ufw allow proto tcp from any to any
ufw allow proto udp from any to any

f72d218f0820bc4409966eb08c0613f8.png

以下内容有一定的限制,未指定协议时无法启用:

ah:无端口号有效

esp:无端口号有效

gre:无端口号有效

ipv6:适用于IPv4地址,无端口号

igmp:适用于IPv4地址,无端口号

对于不是发往本主机,但应通过防火墙路由/转发的流量的规则,应在规则之前指定路由关键字(路由规则与PF语法有很大不同,而是考虑了netfilter FORWARD链的约定)。例如:

ufw route allow in on eth1 out on eth2

f2341e885a2977676b98754bb1adb19d.png

这将允许所有从eth1流入并且路由到eth2流出的流量穿过防火墙。

ufw route allow in on eth0 out on eth1 to 12.34.45.67 port 80 proto tcp

192474832d9081a86f8ffabf7c71b32a.png

此规则允许在eth0流入的、在eth1流出的去往任何12.34.45.67的TCP端口80的数据包穿过防火墙。

除了路由规则和策略外,您还必须设置IP转发。这可以通过在/etc/ufw/sysctl.conf中设置以下内容来实现:

net/ipv4/ip_forward=1
net/ipv6/conf/default/forwarding=1
net/ipv6/conf/all/forwarding=1

e1d2c41634e606c35aa0946fa3ca9d3d.png

然后重新启动防火墙:

ufw disable
ufw enable

67bd6e64d248f6e1b2e0c6f1b5bdbe68.png

请注意,设置内核可调参数是特定于操作系统的,ufw sysctl设置可能会被覆盖。有关详细信息,请参阅sysctl手册页。

ufw支持连接速率限制,这对于防止暴力登录攻击非常有用。当使用限制规则时,ufw通常会允许连接,但如果IP地址试图在30秒内发起6个或更多连接,则会拒绝连接。典型用法是:

ufw limit ssh/tcp

328dfeda4212c9d7f517e343ae00671d.png

有时,最好让发件人知道流量何时被拒绝,而不是简单地忽略它。在这种情况下,使用reject而不是deny。例如:

ufw reject auth

a084c81fefedc2bd44cfcbb8de6a67d1.png

默认情况下,ufw将对所有可用接口应用规则。为了限制这一点,请在INTERFACE上指定DIRECTION,其中DIRECTION是in或out之一(不支持接口别名)。例如,要允许eth0上的所有新传入HTTP连接,请使用:

ufw allow in on eth0 to any port 80 proto tcp

a23c877be906201d761e42eeaf20fbd8.png

要删除规则,只需在原始规则前加上delete,可以添加或不添加规则注释。例如,如果原始规则是:

ufw deny 80/tcp

使用此选项删除它:

ufw delete deny 80/tcp

51412e4a0669b793a9e1b3b0592ac925.png

您还可以按NUM指定规则,如状态编号的输出所示。例如,如果要删除规则编号“3”,请使用:

ufw delete 3

e297f883353b2cf769a16d57953eaab8.png

如果您启用了IPv6,并且正在删除适用于IPv4和IPv6的通用规则(例如“ufw allow 22/tcp”),则按规则编号删除将仅删除指定的规则。要使用一个命令同时删除这两个,请在原始规则前加上delete。

要插入规则,请正常指定新规则,但在规则前加上要插入的规则编号。例如,如果您有四条规则,并且要插入一条新规则作为第三条规则,请使用:

ufw insert 3 deny to any port 22 from 10.0.0.135 proto tcp

1a2ede8fd79ccae91027d6c0e601f160.png

同样,要在匹配规则IP类型的所有其他规则之前添加规则,请使用前缀规则:

ufw prepend deny from 1.2.3.4

cac7f8ffb2854cbfeed9573dacc54d44.png

这对于IPS中的动态防火墙特别有用。重要的是,如果指定的规则是IPv4规则,则它将在所有其他IPv4规则之前添加。如果它是IPv6规则,它将在任何IPv6规则之前添加。

要查看编号规则列表,请使用:

ufw status numbered

a00d1fbfee7f3a8a65ce20746951b2fb.png

ufw支持按规则记录日志。默认情况下,当数据包与规则匹配时,不会执行日志记录。指定log级别将记录所有符合规则的新连接,而log-all将记录符合规则的所有数据包。例如,要允许并记录所有新的SSH连接,请使用:

ufw allow log 22/tcp

54c60e1c04716b4ae528ae0492d9e9d0.png

有关日志记录的更多信息,请参阅“LOGGING/日志”章节。

a077d64d3e72536da975e02cd7840676.png

示例

c314b2199d49955c89d362b471a9653e.png

拒绝所有对端口53的访问:

ufw deny 53

5ae37fd7b54a6ed99fe29332f53e745e.png

允许对TCP端口80的所有访问:

ufw allow 80/tcp

c8f9580810e19c6b48456ccc81720843.png

允许从RFC1918网络私有互联网的地址分配访问此主机:

ufw allow from 10.0.0.0/8
ufw allow from 172.16.0.0/12
ufw allow from 192.168.0.0/16

7f2d380efcde826a4c9d9ab6863e2939.png

拒绝从主机1.2.3.4访问UDP端口514:

ufw deny proto udp from 1.2.3.4 to any port 514

c4977157ce7e3d7e08ce954716364821.png

允许从1.2.3.5的端口5469访问1.2.3.4的UDP端口5469:

ufw allow proto udp from 1.2.3.5 port 5469 to 1.2.3.4 port 5469

dc9dd40b1262c89e143013e167169218.png

7fae75c3ccf7abda9b08d6fb581bdad7.png

远程管理

29b3caa4a81b0b1cdac14106ea01f547.png

当运行ufw enable或通过其启动脚本启动ufw时,ufw将刷新其规则。这是必需的,这样ufw才能保持一致的状态,但它可能会删除现有的连接(例如SSH)。ufw确实支持在启用防火墙之前添加规则,因此管理员可以执行以下操作:

ufw allow proto tcp from any to any port 22

16c42ca996932b45254a9df8fded6ce8.png

在运行“ufw enable”之前。规则仍将被刷新,但启用防火墙后SSH端口将打开。请注意,一旦ufw被“enabled”,ufw在添加或删除规则时不会刷新规则(但在修改规则或更改默认策略时会)。默认情况下,在SSH下运行时启用防火墙时,ufw将提示。这可以通过使用“ufw --force enable”来禁用。

b4c3a46258a257effd435d6888edfbda.png

应用程序集成

b42a3942e7ae5dfe6eba772f31055b32.png

ufw通过读取/etc/ufw/applications.d中的配置文件来支持应用程序集成,要列出ufw已知的应用程序配置文件的名称,请使用:

ufw app list

b4bbcf26928990790cd56f5fbb555629.png

用户可以在添加规则时指定应用程序名称(用空格引用任何配置文件名称)。例如,在使用简单语法时,用户可以使用:

ufw allow <name>
ufw allow OpenSSH

1f60a52ca5d5e44f86f25ff5850d32dc.png

或者对于扩展语法:

ufw allow from 192.168.0.0/16 to any app <name>
ufw allow from 192.168.0.0/16 to any app CUPS

a078d5b5f9268b78da3896d767768b88.png

您不应使用任何一种语法指定协议,对于扩展语法,请使用app代替port子句。

可以通过以下方式查看给定应用程序的防火墙配置文件的详细信息:

ufw app info <name>
ufw app info CUPS

b880495daecc3de7fa1a4f3a954cac2f.png

其中“<name>”是应用程序列表命令中看到的应用程序之一。用户还可以指定全部以查看所有已知应用程序的配置文件。

应用程序配置文件的语法是简单的.INI格式:

[<name>]
title=<title>
description=<description>
ports=<ports>

“ports”字段可以指定一个以“|”分隔的端口/协议列表,其中协议是可选的。逗号分隔的列表或范围(用“start:end”指定)也可用于指定多个端口,在这种情况下,需要指定协议。例如:

[SomeService]
title=Some title
description=Some description
ports=12/udp|34|56,78:90/tcp

在上述示例中,“SomeService”可用于应用内规则,它指定UDP端口12、TCP和UDP端口34、以及TCP端口56和78-90(包括端点)。

创建或编辑应用程序配置文件后,用户可以运行:

ufw app update <name>

此命令将使用更新的配置文件信息自动更新防火墙。如果为名称指定“all”,则所有配置文件都将被更新。要更新配置文件并自动向防火墙添加新规则,用户可以运行:

ufw app update --add-new <name>

update --add-new命令的行为可以使用以下命令配置:

ufw app default <policy>

默认的应用程序策略是skip,这意味着update --add-new命令将不会执行任何操作。用户还可以指定允许或拒绝的策略,以便update --add-new命令可以自动更新防火墙。警告:对应用程序配置文件使用默认允许策略可能存在安全风险。在使用默认允许策略之前,请仔细考虑安全后果。

2dd4f92fcf6ea6716e0e75ac32dac3f1.png

LOGGING/日志

710592387d2929340a6fca2cc948ede9.png

ufw支持多个日志级别。当未指定日志级别时,ufw默认为“low”日志级别。用户可以通过以下方式指定日志级别:

ufw logging LEVEL

级别可以是“off/关闭”、“low/低”、“medium/中”、“high/高”“full/完整”。日志级别定义为:

off:关闭,禁用ufw管理的日志记录。

low:低,记录所有与定义的策略不匹配的阻塞数据包(具有速率限制),以及与记录的规则匹配的数据包。

medium:中,在日志级别低的基础上,加上所有允许的与定义的策略不匹配的数据包、所有无效数据包和所有新连接。所有日志记录都是在限速的情况下完成的。

high:高,在日志级别中的基础上(无速率限制),加上所有有速率限制的数据包。

full:完整,在日志级别高的基础上,取消速率限制。

中等以上的日志级别会产生大量日志输出,并可能很快填满您的磁盘。中等日志级别可能会在繁忙的系统上生成大量日志输出。

如果当前未启用日志记录,则指定“on”会启用日志,且记录日志级别为“low”。

eda66fea21d45098c4b395049149f7f0.png

REPORTS/报告

53f8f08364271795b098e3847dba8e0e.png

支持以下报告。每个都基于实时系统,除了监听报告外,都是原始iptables格式:

raw
builtins
before-rules
user-rules
after-rules
logging-rules
listening
added

raw原始报告显示了完整的防火墙,而其他报告显示了原始报告中的一个子集。

listening侦听报告将显示处于TCP侦听状态和UDP打开状态的实时系统上的端口,以及接口的地址和端口上侦听的可执行文件。当可执行文件绑定到该端口上的所有接口时,使用“*”代替接口的地址。此信息之后是可能影响此端口上连接的规则列表。这些规则按内核评估的顺序列出,优先匹配第一个。请注意,默认策略未列出,只有启用IPV6时才会显示tcp6和udp6。

added报告显示了在命令行上添加的规则列表。此报告不显示正在运行的防火墙的状态(请改用“ufw status”)。因为规则是由ufw规范化的,所以规则可能看起来与最初添加的规则不同。此外,ufw不记录命令顺序,因此使用等效顺序,在其他规则之后列出仅IPv6规则。

ba4b67ee21b984aea40d2521f62ee30c.png

笔记

安装时,ufw被禁用,默认传入策略为拒绝,默认转发策略为否认,默认传出策略为允许,并对传入和转发连接的新连接进行有状态跟踪。除上述内容外,还设置了一个默认规则集,执行以下操作:

-DROP/丢弃带有RH0标头的数据包。

-DROP/丢弃无效数据包。

-ACCEPT/接受某些ICMP数据包(INPUT和FORWARD):IPv4的目标不可达、源抑制、超时、参数问题和回显请求。IPv6的目标不可达、数据包太大、超时、参数问题和回显请求。

-ACCEPT/接受ICMPv6数据包以进行无状态自动配置(INPUT)。

-ACCEPT/接受来自IPv6本地链路(ffe8::/10)地址的ping回复(INPUT)。

-ACCEPT/接受DHCP客户端流量(INPUT)

-DROP/丢弃非本地流量(INPUT)

-ACCEPT/接受mDNS(IPv4为zeroconf/bonjour/avahi 224.0.0.251,IPv6为ff02::fb)进行服务发现(INPUT)

-ACCEPT/接受UPnP(IPv4为239.255.255.250,IPv6为ff02::f)进行服务发现(INPUT)

规则排序很重要,优先匹配第一条规则。因此,在添加规则时,先添加更具体的规则,然后再添加更一般的规则。

ufw并不打算通过其命令界面提供完整的防火墙功能,而是提供了一种添加或删除简单规则的简单方法。

status命令显示有关防火墙状态的基本信息,以及通过ufw命令管理的规则。它不显示/etc/ufw中的规则文件中的规则。要查看防火墙的完整状态,用户可以ufw显示原始状态。这将使用以下命令显示filter、nat、mangle和raw表:

iptables -n -L -v -x -t <table>
ip6tables -n -L -v -x -t <table>

有关更多详细信息,请参阅iptables和ip6tables文档。

如果默认策略设置为REJECT,则ufw可能会干扰在ufw框架之外添加的规则。

默认情况下允许IPV6。要将此行为更改为仅接受环回接口上的IPv6流量,请在/etc/default/ufw中将IPv6设置为“no”,然后重新加载ufw。启用IPv6后,您可以按照与IPv4规则相同的方式指定规则,这些规则将显示为ufw状态。匹配IPv4和IPv6地址的规则适用于这两个IP版本。例如,当启用IPv6时,以下规则将允许IPv4和IPv6流量访问端口22:

ufw allow 22

fea3ef8d3ede05c92c86287b1993dcd3.png

使用“IPv6”协议(“41”)支持IPv4隧道上的IPv6和6to4。此协议只能使用完整的语法。例如:

ufw allow to 10.0.0.1 proto ipv6
ufw allow to 10.0.0.1 from 10.4.0.0/16 proto ipv6

8ecc5f849d09023024477ba8070c3e5c.png

IPSec通过使用“esp”(“50”)和“ah”(“51”)协议来支持。这些协议只能使用完整的语法。例如:

ufw allow to 10.0.0.1 proto esp
ufw allow to 10.0.0.1 from 10.4.0.0/16 proto esp
ufw allow to 10.0.0.1 proto ah
ufw allow to 10.0.0.1 from 10.4.0.0/16 proto ah

171ed5eae9ce8815e24d13e5f2b83c9f.png

除了命令行界面,ufw还提供了一个框架,允许管理员修改默认行为并充分利用netfilter。有关更多信息,请参阅ufw-framework手册页。

6273285d93a9bedb1a82a6e1da9592aa.png

相关命令

bdec8592435125f97023c60ab3c07e03.png

ufw-framework、iptables、ip6tables、iptables-restore、ip6tables-restore、sysctl、sysctl.conf。

abfb3741fff251c1cf558d00825aad2b.gif

长按二维码
关注我们吧

fe87fd3b9d75a497e9b16a906cd3710a.jpeg

8b24d26992e67b2039ec6a812111eca6.png

CentOS 7停服之后该怎么安装软件呢?

CentOS 7遗忘了root密码怎么办?

为Linux设置GRUB密码

Linux修改或移除GRUB密码

在Ubuntu系统手撸一个自动创建SSL证书的SHELL脚本

将iStoreOS部署到VMware Workstation

将iStoreOS部署到VMware ESXi变成路由器

如何在Ubuntu 23.10部署KVM并创建虚拟机?

Kali Linux安装中文输入法

Windows配置共享文件夹

openVPN配置实现客户端互访

CentOS编译安装OpenSSL 3.3.1

OpenSSL命令手册

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

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

相关文章

Vue3 + Vite 打包引入图片错误

1. 具体报错 报错信息 报错代码 2. 解决方法 改为import引入&#xff0c;注意src最好引用为符引入&#xff0c;不然docker部署的时候可能也会显示不了 <template><img :src"loginBg" alt""> </template><script langts setup> …

LinkedList与链表(1万多字超级详细版本)

一. ArrayList的缺陷 上个博客已经熟悉了ArrayList的使用&#xff0c;并且进行了简单模拟实现。通过源码知道&#xff0c;ArrayList底层使用数组来存储元素&#xff1a; public class ArrayList < E > extends AbstractList < E > implements List < E &g…

国际奥委会主席巴赫:阿里AI技术将巴黎奥运转播带到新高度

7月26日&#xff0c;巴黎奥运会开幕在即&#xff0c;国际奥委会主席巴赫在国际转播中心举行的活动中表示&#xff0c;2024巴黎奥运会展现了奥运转播的未来&#xff0c;广泛应用的阿里AI技术正在将巴黎奥运转播带到新的高度。 &#xff08;国际奥委会主席巴赫&#xff09; 在巴黎…

SQLite基础:简介、安装和命令

文章目录 1. SQLite简介1.1 SQL 和 SQLite 之间的差异1.2 SQLite 特性 2. SQLite安装3. SQLite命令4. SQLite点命令 1. SQLite简介 SQLite 是嵌入式关系数据库管理系统。它是自包含、无服务器、零配置和事务性 SQL 数据库引擎。其与大多数其他 SQL 数据库不同&#xff0c;SQLi…

视觉SLAM第一讲

第一讲-预备知识 SLAM是什么&#xff1f; SLAM&#xff08;Simultaneous Localization and Mapping&#xff09;是同时定位与地图构建。 它是指搭载特定传感器的主体&#xff0c;在没有环境先验信息的情况下&#xff0c;于运动过程中建立环境的模型&#xff0c;同时估计自己…

长效IP有哪些应用场景?

不同于经常重置的短效IP&#xff0c;长效IP以其长久稳定的特性&#xff0c;为各行各业提供了更为广阔的应用舞台。今天&#xff0c;就让我们一起探索极光http这一长效IP服务的魅力&#xff0c;看看它是如何成为众多领域首选的。 1. 远程工作的稳定后盾 在远程办公日益普及的今…

昇思25天学习打卡营第23天|LSTM+CRF序列标注

Mindspore框架CRF条件随机场概率图模型实现文本序列命名实体标注|&#xff08;一&#xff09;序列标注与条件随机场的关系 Mindspore框架CRF条件随机场概率图模型实现文本序列命名实体标注|&#xff08;二&#xff09;CRF模型构建 Mindspore框架CRF条件随机场概率图模型实现文本…

【Beyond Compare】Beyond Compare下载、安装与使用详细教程

目录 &#x1f33a;1 概述 &#x1f384;2 Beyond Compare 安装包下载 &#x1f33c;3 安装详细教程 &#x1f342;4 免费注册 &#x1f30d;5 使用详情 &#x1f33a;1 概述 Beyond Compare 是一款强大的文件和文件夹比较工具&#xff0c;广泛应用于软件开发、文档管理和…

Web动画(lottie篇)

一、Lottie简介 Lottie是一个库&#xff0c;可以解析使用AE制作的动画&#xff08;需要用bodymovin导出为json格式&#xff09;&#xff0c;支持web、ios、android和react native。在web侧&#xff0c;lottie-web库可以解析导出的动画json文件&#xff0c;并将其以svg或者canva…

electron调试

electron 调试 electron 的调试分两步&#xff0c;界面的调试&#xff0c;和主进程的调试。 界面调试类似浏览器F12&#xff0c;可是调试不到主进程。 主进程调试有vscode、命令行提示和外部调试器调试。 本篇记录的练习是vscode调试。命令行和外部调试器的方式可以参考官网&a…

CJS与ESM:CJS

模块化方案 历史上&#xff0c;JavaScript 一直没有模块&#xff08;module&#xff09;体系&#xff0c;无法将一个大程序拆分成互相依赖的小文件&#xff0c;再用简单的方法拼装起来。其他语言都有这项功能&#xff0c;比如 Ruby 的require、Python 的import&#xff0c;甚至…

PEFT LoRA 介绍(LoRA微调使用的参数及方法)

一 PEFT LoRA 介绍 官网简介如下图&#xff1a; 翻译过来是&#xff1a;低秩自适应(LoRA)是一种PEFT方法&#xff0c;它将一个大矩阵在注意层分解成两个较小的低秩矩阵。这大大减少了需要微调的参数数量。 说的只是针对注意力层&#xff0c;其实我自己平时微调操作注意力层多…

nacos2.x作为配置中心和服务注册和发现以及springcloud使用

目录 一、nacos是什么 二、windows下安装配置nacos 1、准备 2、安装nacos 3、配置nacos 4、启动并且访问nacos 三、springcloud使用nacos作为配置中心 四、springcloud使用nacos进行服务注册与发现 五、springcloud使用nacos进行服务消费 六、nacos的一些高级配置 1…

Ubuntu上编译多个版本的frida

准备工作 Ubuntu20(WSL) 略 安装依赖 sudo apt update sudo apt-get install build-essential git lib32stdc-9-dev libc6-dev-i386 -y nodejs 去官网[1]下载nodejs&#xff0c;版本的话我就选的20.15.1&#xff1a; tar -xf node-v20.15.1-linux-x64.tar.xz 下载源码 …

AbutionGraph时序(流式)图数据库开发文档地址

AbutionGraph-时序(流式)图数据库&#xff0c;官方开发文档(API)地址&#xff1a; http://www.thutmose.cn

JavaSE从零开始到精通(九) - 双列集合

1.前言 Java 中的双列集合主要指的是可以存储键值对的集合类型&#xff0c;其中最常用的包括 Map 接口及其实现类。这些集合允许你以键值对的形式存储和管理数据&#xff0c;提供了便捷的按键访问值的方式。 2. HashMap HashMap 是基于哈希表实现的 Map 接口的类&#xff0c…

java算法day23

java算法day23 121买卖股票的最佳时机55 跳跃游戏45 跳跃游戏Ⅱ763划分子母区间 121买卖股票的最佳时机 最容易想的应该就是两个for暴力枚举。但是超时 本题用贪心做应该是最快的。 先看清楚题&#xff0c;题目要求在某一天买入&#xff0c;然后在某一天卖出&#xff0c;要求…

MarkTool集合篇

MarkTool目前包含以下几种工具 1、TCP客户端 2、TCP服务端 3、UDP客户端 4、Web客户端 5、Web服务端 6、串口网口 7、PLC 8、获取本机设备 9、Log 10、密钥 11、系统设置 11-1、基本设置 11-2、角色设置 11-3、用户设置 11-4、log记录 开启软件需要找我解密&#…

S7-1200PLC通过111报文和EPOS模式实现位置轴轴控功能(FB284封装)

EASY_SINA_POS的详细使用介绍请参考下面文章链接: S7-1200PLC使用标准报文111和EPOS模式实现V90 PN总线伺服定位(Easy_SINA_Pos)_西门子sinapos-CSDN博客文章浏览阅读132次。文章浏览阅读7k次。先简单说下如何获取FB284,一般有2种方法,Startdrive软件可以操作大部分西门子的…

PostgreSQL使用(四)——数据查询

说明&#xff1a;对于一门SQL语言&#xff0c;数据查询是我们非常常用的&#xff0c;也是SQL语言中非常大的一块。本文介绍PostgreSQL使用中的数据查询&#xff0c;如有一张表&#xff0c;内容如下&#xff1a; 简单查询 --- 1.查询某张表的全部数据 select * from tb_student…