文章目录

    • iptables原理及常用命令
      • 表链
        • 链表总结
      • iptables 常用命令及参数
        • 1. 规则管理命令 (Commands)
        • 2. 规则匹配参数 (Rule-Specification - Matches)
        • 3. 目标动作参数 (Target)
        • 命令示例
        • 配置流程示例
    • ip route
      • 常用命令
    • iptables和ip route的联系
      • 实用命令示例对比

iptables原理及常用命令

Netfilter 是内核提供的包过滤子系统,它在内核网络中设置了多个钩子(Hooks),数据包在网络栈中流动时会经过这些钩子,从而可以被预设的规则处理,实现对数据包的过滤、修改、重定向以及网络地址转换(NAT)等功能。
iptables 则是用户空间(Userspace)的一个命令行工具,用于配置、管理内核空间(Kernelspace)中的 Netfilter 防火墙框架。

表链

四表与五链

表(Tables)功能内置链(Chains)
filter包过滤(默认表)INPUT, FORWARD, OUTPUT
nat网络地址转换(NAT)PREROUTING, POSTROUTING, OUTPUT
mangle修改报文头(如TTL、TOS)所有五个链均可使用
raw绕过连接跟踪(提升性能)PREROUTING, OUTPUT
  • 表(Tables):定义规则的功能类别。主要表有:
    • filter:负责过滤数据包(允许/拒绝),最常用。
    • nat:负责网络地址转换(SNAT, DNAT, MASQUERADE)。
    • mangle:用于修改数据包内容(如 TOS, TTL)或给数据包打标记。
    • raw:用于连接跟踪(conntrack)前的数据包处理。
  • 链(Chains):规则被应用的时机和位置。内置链对应 Netfilter 的钩子:
    • INPUT:处理发往本机的数据包。
    • OUTPUT:处理由本机发出的数据包。
    • FORWARD:处理经过本机路由转发的数据包。
    • PREROUTING:数据包进入后,路由决策之前处理(主要用于 nat, mangle, raw 表)。
    • POSTROUTING:数据包发出前,路由决策之后处理(主要用于 nat, mangle 表)。

将数据包可以理解成包裹,所谓的路由及规则都是用来分拣及处理包裹的。链则对应不同的分拣阶段的流水线,不同的链(流水线)对应不同的分拣策略,便是表对应的内容功能,表将规则内容分类。通过表和链,使得“分拣中心”能够在不同的阶段对数据包进行各类的分拣操作。

链定义了数据包生命周期的五个关键节点,与内核预设的5个关键的钩子点对应(不同时段的数据包处理流水线),使处理器能在正确的时间点执行正确的操作。链是规则生效的时机和位置

  1. PREROUTING 链 (进港预处理流水线)

    • 作用:数据包进入分拣中心,还没来得及看最终地址标签的时候。
    • 意义:在这里可以修改数据包的“目的地地址”(DNAT),或者给数据包贴个内部标签(mangle),这会影响后续分拣机(路由系统)的判断。
  2. INPUT 链 (入仓流水线)

    • 作用:分拣机判断这个包裹最终目的地就是本分拣中心自己,需要送入内部仓库。
    • 意义:这是防火墙的核心!在这里决定是否允许这个数据包裹进入我们的电脑。比如,是否允许别人SSH连接到你。
  3. FORWARD 链 (中转流水线)

    • 作用:分拣机判断这个数据包裹只是路过,需要从另一个口发出去(你的电脑充当路由器或网关)。
    • 意义:在这里决定是否允许这个数据包裹从本机转发过去。普通电脑默认不开,路由器必须配置此链。
  4. OUTPUT 链 (出仓流水线)

    • 作用:本分拣中心自己产生的数据包裹,要发出去。
    • 意义:在这里决定是否允许我们自己发出的数据包裹出去。比如,可以禁止某个程序访问网络。
  5. POSTROUTING 链 (出港前流水线)

    • 作用:数据包裹已经分拣完毕,马上就要发走了,这是最后的处理机会。
    • 意义:在这里可以修改数据包裹的“发货人地址”(SNAT/MASQUERADE),这样对方回包才知道寄回哪里。这是实现共享上网的关键。

表是规则的功能分类,将庞大的规则集按功能拆解,让不同的规则各司其职,管理起来更清晰、更高效。可以将不同的表理解为不同的分拣员,负责不同的分拣操作。

  1. filter 表 (安全检查员)

    • 作用:它的工作唯一目的就是决定:这个数据包裹是允许通过(ACCEPT)还是扔掉(DROP)?
    • 能用的链:主要工作在 INPUT, FORWARD, OUTPUT 这三条流水线。
    • 意义:这是最常用的表,实现了防火墙最核心的访问控制功能。
  2. nat 表 (收货地址管理员)

    • 作用:专门修改数据包裹的源或目标地址
      • DNAT (改目的地址):在 PREROUTING 链工作。比如“把发给A地址的数据包,全部改道送到B地址”(端口映射)。
      • SNAT/MASQUERADE (改源地址):在 POSTROUTING 链工作。比如“把所有从内网发出的数据裹,地址都改成网关地址”(共享上网)。
    • 能用的链PREROUTING, OUTPUT, POSTROUTING
    • 意义:实现网络地址转换,是解决IPv4地址不足和实现内部网络安全的关键。
  3. mangle 表 (包裹改装员)

    • 作用:专门修改包裹的“元数据”,比如修改TTL(生存时间)、给包裹贴上一个特殊的“标记”(MARK),以便后续的规则或路由策略能识别它。
    • 能用的链所有五条链都可以用。
    • 意义:用于高级、特殊的数据包处理,通常普通用户很少用到。
  4. raw 表 (免检特权员)

    • 作用:在连接跟踪机制之前,决定是否不对这个包裹进行状态跟踪
    • 能用的链PREROUTING, OUTPUT
    • 意义:用于处理那些不希望被系统连接跟踪机制干扰的高速或特殊流量,性能优化或处理特殊协议时使用。
链表总结

一个数据包不会经过所有表,不同的表被允许工作的流水线(链)是不同的。下图展示了一个数据包可能流经的完整路径,以及“表”和“链”如何协同工作:

POSTROUTING 链
nat 表
SNAT/MASQUERADE
mangle 表
OUTPUT 链
filter 表
ACCEPT/DROP?
raw 表
mangle 表
nat 表
FORWARD 链
filter 表
ACCEPT/DROP?
mangle 表
INPUT 链
filter 表
ACCEPT/DROP?
mangle 表
PREROUTING 链
raw 表
nat 表
DNAT
mangle 表
数据包进入
网络接口
路由决策
目的地址是本机吗?
本地进程
数据包发出

总结与记忆诀窍:

  • 先看数据包位于哪个处理阶段?-> 这决定了你用哪个INPUT/OUTPUT/FORWARD…)。
  • 要对数据包作什么操作? -> 这决定了你用哪个
    • 只想允许/拒绝 -> 用 filter 表 (-j ACCEPT/DROP)。
    • 想做地址转换(端口映射、共享上网) -> 用 nat 表 (-j SNAT/DNAT/MASQUERADE)。
    • 修改包内容或做标记 -> 用 mangle 表。

这种分工合作的架构使得 iptables 功能强大而灵活,既能完成简单的包过滤,也能实现复杂的网络地址转换和流量整形。

iptables 常用命令及参数

iptables 命令通用格式:iptables [-t table] <command> [chain] [rule-specification] -j <target>

1. 规则管理命令 (Commands)
命令全称作用示例
-A--append链的末尾追加一条规则iptables -A INPUT -s 192.168.1.1 -j DROP
-I--insert链的指定位置插入一条规则(默认为第1条)iptables -I INPUT 3 -p tcp --dport 80 -j ACCEPT
-D--delete从链中删除一条规则(按编号或按内容)iptables -D INPUT 2iptables -D INPUT -s 192.168.1.1 -j DROP
-R--replace替换链中的一条规则iptables -R INPUT 1 -p icmp -j ACCEPT
-L--list列出链中的所有规则iptables -L INPUT -v -n
-F--flush清空链中的所有规则iptables -Fiptables -F INPUT
-Z--zero将链中规则的计数器清零(包和字节数)iptables -Z
-N--new-chain创建一条用户自定义链iptables -N MY_CHAIN
-X--delete-chain删除一条用户自定义链(必须为空)iptables -X MY_CHAIN
-P--policy设置链的默认策略(只能是ACCEPT/DROP)iptables -P INPUT DROP
2. 规则匹配参数 (Rule-Specification - Matches)
参数全称/作用示例
-p, --protocol匹配协议(tcp, udp, icmp, all-p tcp
-s, --source匹配源IP地址或网段-s 192.168.1.100-s 192.168.1.0/24
-d, --destination匹配目标IP地址或网段-d 10.0.0.1
-i, --in-interface匹配数据包进入的网卡(常用于INPUT, FORWARD, PREROUTING-i eth0
-o, --out-interface匹配数据包出去的网卡(常用于OUTPUT, FORWARD, POSTROUTING-o wlan0
--sport, --source-port匹配源端口(需用 -p tcp-p udp-p tcp --sport 1024:65535 (1024及以上端口)
--dport, --destination-port匹配目标端口(需用 -p tcp-p udp-p tcp --dport 22 (SSH端口)
-m, --match加载扩展模块以实现更复杂的匹配-m conntrack (状态跟踪)
-m conntrack --ctstate匹配连接状态(最关键的模块-m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
NEW(新连接), ESTABLISHED(已建立), RELATED(相关连接,如FTP), INVALID(无效)
-m multiport匹配多个不连续端口-m multiport --dports 22,80,443
-m limit限制匹配速率,用于防止DoS攻击-m limit --limit 5/sec -j ACCEPT (限制每秒5个包)
3. 目标动作参数 (Target)
参数全称/作用示例
-j ACCEPT--jump ACCEPT接受数据包
-j DROP--jump DROP丢弃数据包(无响应)
-j REJECT--jump REJECT拒绝数据包(可返回错误信息)
-j LOG--jump LOG将数据包信息记录到系统日志/var/log/syslog
-j SNAT--jump SNAT源地址转换(用于共享上网)
-j MASQUERADE--jump MASQUERADE动态源地址转换(用于拨号等动态IP)
-j DNAT--jump DNAT目标地址转换(用于端口映射)
-j REDIRECT--jump REDIRECT将包重定向到本机另一个端口(透明代理)
命令示例

⚠️ 重要警告:在远程配置服务器防火墙时,千万不要直接清空所有规则,否则你可能会立刻断线!最好在本地电脑或虚拟机先练习。

  1. 查看现有规则
sudo iptables -L
  • -L 是 List 的意思。这会列出所有规则,但看起来会比较简单。
  • 想看更详细的信息(比如规则在哪行),可以加参数:
    sudo iptables -L -v -n --line-numbers
    
    • -v:显示详细信息
    • -n:直接显示IP和端口号,而不是去解析成名字(更快更直接)
    • --line-numbers:显示规则的行号(非常重要,插入和删除规则时要用)
  1. 设置默认策略(兜底规则)
    如果所有规则都对不上,该怎么办?”
# 设置 INPUT 链的默认策略为 DROP(非常严格)
sudo iptables -P INPUT DROP# 设置 INPUT 链的默认策略为 ACCEPT(非常宽松)
sudo iptables -P INPUT ACCEPT# 设置 OUTPUT 链的默认策略为 ACCEPT(通常允许本机所有对外请求)
sudo iptables -P OUTPUT ACCEPT
  • -P 是 Policy 的意思。新手建议先把 INPUT 默认策略设为 ACCEPT,配完规则再改为 DROP,以防把自己锁在外面。
  1. 允许已建立的连接接收回包(超级重要!)
    这是最容易出错的一步!如果你设置了 INPUT DROP,会发现能 ping 通外面,但看不到任何返回的数据。因为你拦下了外面的回包!
sudo iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
  • -A INPUT:在 INPUT 链的末尾追加(Append) 一条规则。
  • -m conntrack:启用状态检测模块。
  • --ctstate ESTABLISHED,RELATED:匹配状态为“已建立的连接”或“相关的连接”(比如FTP的数据连接)。
  • -j ACCEPT:跳转(jump)到 ACCEPT 动作。
    这条规则的意思是:凡是回应我本机发起的请求的数据包,都允许进来。必须放在靠前的位置!
  1. 开放特定端口(允许外部访问特定服务)
    例子:允许别人 SSH(端口22)连接到你的电脑
sudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT
  • -p tcp:指定协议为 TCP。
  • --dport 22:指定目标端口(destination port)为 22。

例子:允许别人访问你的网页(端口80)

sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT
  1. 允许本机 ping 通别人(允许发出ICMP协议)
sudo iptables -A OUTPUT -p icmp -j ACCEPT
  1. 禁止某个IP访问
    例子:禁止IP为 192.168.1.100 的机器访问你
sudo iptables -A INPUT -s 192.168.1.100 -j DROP
  • -s 192.168.1.100:匹配源地址(source)是 192.168.1.100 的数据包。
  1. 删除某条规则
    首先用 --line-numbers 查看规则在哪一行:
sudo iptables -L INPUT --line-numbers

假设我们要删除 INPUT 链的第3条规则:

sudo iptables -D INPUT 3
  • -D 是 Delete 的意思。
  1. 清空所有规则(重置规则,慎用)
# 清空所有链的所有规则
sudo iptables -F# 同时将所有链的默认策略重置回 ACCEPT(最宽松的状态)
sudo iptables -P INPUT ACCEPT
sudo iptables -P OUTPUT ACCEPT
sudo iptables -P FORWARD ACCEPT
  • -F 是 Flush 的意思。
配置流程示例

假设我们要配置一台服务器,只允许别人SSH和访问HTTP,其他一律禁止。

  1. 首先,设置默认允许,防止掉线。

    sudo iptables -P INPUT ACCEPT
    sudo iptables -F # 清空可能有的旧规则
    
  2. 允许本地内部通信(lo接口)

    sudo iptables -A INPUT -i lo -j ACCEPT
    
  3. 允许已建立的连接接收回包(关键!)

    sudo iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
    
  4. 开放服务端口

    sudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT # SSH
    sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT # HTTP
    # sudo iptables -A INPUT -p tcp --dport 443 -j ACCEPT # 如果需要HTTPS也可以打开
    
  5. 允许ping(可选)

    sudo iptables -A INPUT -p icmp -j ACCEPT
    
  6. 最后,设置INPUT的默认策略为DROP!

    sudo iptables -P INPUT DROP
    
  7. 保存规则(否则重启就没了!)
    iptables 规则是临时存在的,重启后失效。

    • Ubuntu 上可以使用 iptables-persistent 包来保存:
      sudo apt install iptables-persistent
      sudo netfilter-persistent save # 保存当前规则
      

ip route

常用命令

ip route 命令通用格式:ip route <command> [options] <prefix> [via <gateway>] [dev <device>] [other options]

1. 路由管理命令 (Commands)

命令全称/作用示例
add添加一条路由ip route add 192.168.2.0/24 via 10.0.0.1 dev eth0
del删除一条路由ip route del 192.168.2.0/24
change修改一条已有的路由ip route change default via 192.168.1.254 dev eth1
replace替换一条路由,如果不存在则添加ip route replace default via 192.168.1.1
show显示路由表(可加参数过滤)ip route showip route show dev eth0
flush清空路由表(可按条件清空)ip route flush cache (清空缓存)
ip route flush 10.0.0.0/8 (清空特定路由)
get查询到某个地址的路由路径ip route get 8.8.8.8

2. 核心路由参数 (Options)

参数作用示例
via <address>指定下一跳网关的IP地址via 192.168.1.1
dev <interface>指定数据包出去的网络接口dev eth0
src <address>指定从此路由发出数据包的源IP地址src 192.168.1.100
proto <type>路由协议标识(kernel, boot, static, dhcp等)proto static
scope <scope>路由的作用域(global, link, host等)scope link
metric <value>路由优先级(数值越小,优先级越高)metric 100
table <table>指定要操作的路由表(默认为main表)table 100

3. 特殊路由类型

类型命令示例作用
默认路由ip route add default via 192.168.1.1 dev eth0所有未知目的地的流量都发往此网关
直连路由ip route add 192.168.1.0/24 dev eth0 proto kernel scope link src 192.168.1.10通常由系统自动添加,指向本地网络
黑洞路由ip route add blackhole 10.1.2.0/24发往该网段的数据包将被无声丢弃
不可达路由ip route add unreachable 172.16.0.0/16发往该网段的数据包将被丢弃,并返回ICMP不可达错误

iptables和ip route的联系

iptables和ip route 两者各司其职,紧密配合,共同完成Linux系统的网络数据包处理工作。

  • ip route 是“地图和导航软件”,负责告诉数据包“下一步该怎么走”。
  • iptables 是“交警和检查站”,负责根据规则“拦截、检查、放行或改装”数据包。
特性iptablesip route
核心功能包过滤(Firewalling)、NAT、修改包内容路由(Routing),决定数据包如何转发
工作层级主要工作在网络层(L3)和传输层(L4),可扩展至应用层(L7)工作在网络层(L3)
决策依据规则(Rules):基于源/目标IP、端口、协议、连接状态等路由表(Routing Table):基于目标IP地址的网络前缀
主要动作ACCEPT, DROP, REJECT, SNAT, DNAT将数据包发往某个下一跳(nexthop)出口设备
配置对象数据包(Packet) 本身路径(Path),即数据包的传输路线

联系与协作:

  1. 处理顺序:一个数据包进入系统后,先由 ip route 进行路由判断(决定是发给本机还是转发),然后才由 iptables 的相应链(INPUT/FORWARD/OUTPUT)进行过滤或修改
  • PREROUTING (iptables nat, mangle) -> 路由决策 (ip route) -> INPUT/FORWARD (iptables) -> OUTPUT (iptables) -> POSTROUTING (iptables nat, mangle)
  1. 依赖关系
  • iptablesSNAT/MASQUERADE 动作通常在 POSTROUTING 链完成,依赖于 ip route 已经决定好的出口网卡
  • iptablesDNAT 动作在 PREROUTING 链完成,会改变数据包的目标IP,从而影响后续 ip route 的路由决策
  1. 协同工作示例
  • 一台Linux服务器作为网关
    • ip route 负责告知内核:如何将数据包从一个网络转发到另一个网络(如 ip route add 192.168.2.0/24 via 10.0.0.1)。
    • iptables 负责:在 FORWARD 链中设置规则,允许或禁止特定的转发流量,并在 POSTROUTING 链做 MASQUERADE 伪装,实现私网访问公网。

实用命令示例对比

  • iptables 的核心是 -A (规则), -p --dport (匹配), -j (动作)。
  • ip route 的核心是 add/del (操作), via (网关), dev (接口)。

iptables 示例组合

  1. 保护服务器:只开放SSH, HTTP, HTTPS,并允许Ping。

    iptables -P INPUT DROP # 默认拒绝
    iptables -A INPUT -i lo -j ACCEPT # 允许本地回环
    iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT # 允许回包
    iptables -A INPUT -p icmp -j ACCEPT # 允许ping
    iptables -A INPUT -p tcp --dport 22 -j ACCEPT # 允许SSH
    iptables -A INPUT -p tcp --dport 80 -j ACCEPT # 允许HTTP
    iptables -A INPUT -p tcp --dport 443 -j ACCEPT # 允许HTTPS
    
  2. 实现端口转发:将公网IP的8080端口转发到内网Web服务器。

    iptables -t nat -A PREROUTING -p tcp --dport 8080 -j DNAT --to-destination 192.168.1.100:80
    iptables -t nat -A POSTROUTING -d 192.168.1.100 -p tcp --dport 80 -j SNAT --to-source 192.168.1.1
    

ip route 示例组合

  1. 添加静态路由:访问不同网络走不同网关。

    # 去往 10.10.0.0/16 网络的流量,通过 192.168.1.200 网关走
    ip route add 10.10.0.0/16 via 192.168.1.200 dev eth0
    # 添加默认网关
    ip route add default via 192.168.1.1 dev eth0
    
  2. 策略路由(高级):来自特定源IP的流量走另一条路。

    # 1. 创建一条新的路由表(在 /etc/iproute2/rt_tables 中定义,例如编号200,名为my_table)
    # 2. 为此表添加默认路由
    ip route add default via 10.0.0.1 table my_table
    # 3. 创建规则:如果数据包来自IP 192.168.1.50,就查询my_table表
    ip rule add from 192.168.1.50 lookup my_table
    

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

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

相关文章

RPC和HTTP的区别?

RPC和HTTP是两种不同的通信协议&#xff0c;它们在通信方式、性能效率以及灵活性可扩展性等方面存在区别。以下是具体分析&#xff1a; 通信方式 RPC&#xff1a;RPC是基于远程过程调用的二进制协议&#xff0c;它允许客户端像调用本地函数一样调用远程服务器上的函数或方法[2]…

贝叶斯分类(Bayes Classify)

一. 核心思想贝叶斯分类是一类基于贝叶斯定理&#xff08;Bayes Theorem&#xff09;和概率统计的分类算法&#xff0c;核心思想是 “通过已知的先验概率&#xff0c;结合数据的似然性&#xff0c;计算后验概率&#xff0c;最终将样本归为后验概率最高的类别”。它在机器学习、…

怎么熟悉业务,我是做前端的,但对业务了解没有渠道

作为前端开发者&#xff0c;想深入了解业务但“没有渠道”&#xff0c;这是非常普遍的痛点。很多前端同学只接到“切图实现页面”的任务&#xff0c;久而久之就成了“实现工具人”。但业务理解力&#xff0c;恰恰是区分“初级”和“高级”前端的核心分水岭。 好消息是&#xff…

如何批量在PDF文档最后一页盖章?

在面对上百份需要处理的 PDF 文档时&#xff0c;逐个打开文档盖章再进行保存&#xff0c;这些步骤不仅提高我们工作的繁琐&#xff0c;还容易导致处理位置错误或遗漏。那么怎么去将 PDF 文档末页实现批量自动打上电子印章&#xff1f;一般的方式没有办法来满足我们高效率办公的…

Keras/TensorFlow 中 `predict()` 函数详细说明

Keras/TensorFlow 中 predict() 函数详细说明 predict() 是 Keras/TensorFlow 中用于模型推理的核心方法&#xff0c;用于对输入数据生成预测输出。下面我将从多个维度全面介绍这个函数的用法和细节。 一、基础语法和参数 基本形式 predictions model.predict(x,batch_sizeNon…

题解:UVA1589 象棋 Xiangqi

看到代码别急着走&#xff0c;还要解释呢&#xff01;哈哈&#xff0c;知道这个题我是怎么来的吗&#xff1f;和爸爸下象棋20场输17场和2场QWQ于是乎我就想找到一个可以自动帮我下棋的程序&#xff0c;在洛谷上面搜索&#xff0c;就搜索到了这个题。很好奇UVA的为啥空间限制是0…

基于YOLOv11的脑卒中目标检测及其完整数据集——推动智能医疗发展的新机遇!

在当今科技迅速发展的时代&#xff0c;脑卒中作为一种严重威胁人类健康的疾病&#xff0c;其早期的检测和及时的干预显得尤为重要。为此&#xff0c;本项目推出基于YOLOv11的脑卒中目标检测系统&#xff0c;结合完整的数据集&#xff0c;不仅提高了检测的效率&#xff0c;更为医…

sed——Stream Editor流编辑器

文章目录前言一、什么是sed二、sed的原理2.1 sed工作流程的三个步骤2.2 sed的两个重要空间&#xff1a;2.3 sed的具体运作流程三、sed的常见用法3.1 sed的基本格式3.2 常用选项3.3 常用操作3.3.1 基本语法规则3.3.2 常用操作命令3.4 操作用法示例3.4.1 输出符合条件的文本&…

Zotero白嫖腾讯云翻译

Zotero白嫖腾讯云无限制字数翻译 文章目录Zotero白嫖腾讯云无限制字数翻译1、安装插件1、登录腾讯云2、找到访问管理进入3、创建一个子用户4、启用机器翻译功能5、复制秘钥6、设置到Zotero1、安装插件 zotero-pdf-translate&#xff1a;https://github.com/windingwind/zotero…

TCP多进程和多线程并发服务

进程和线程的区别&#xff1a; 详细的可以参考这样文档进程和线程的区别(超详细)-CSDN博客 核心比喻 进程 一个工厂&#xff1a;这个工厂拥有独立的资源&#xff08;厂房、原材料、资金、电力&#xff09;。每个工厂之间是相互隔离的&#xff0c;一个工厂着火…

计算机毕业设计springboot基于Java+Spring的疫苗接种管理系统的设计与实现 基于Spring Boot框架的疫苗接种信息管理系统开发与应用 Java与Spring技术驱动的疫苗接种管理

计算机毕业设计springboot基于JavaSpring的疫苗接种管理系统的设计与实现69geq9 &#xff08;配套有源码 程序 mysql数据库 论文&#xff09; 本套源码可以在文本联xi,先看具体系统功能演示视频领取&#xff0c;可分享源码参考。随着信息技术的飞速发展&#xff0c;计算机技术在…

C/C++圣诞树①

写在前面 圣诞节将至&#xff0c;我总想用代码做点什么&#xff0c;来表达对这个温馨节日的敬意。于是&#xff0c;我决定用C语言在控制台中绘制一幅充满节日气氛的圣诞树画面。它不仅有闪烁的雪花、五彩的灯光&#xff0c;还有一颗颗精心雕琢的心形图案&#xff0c;仿佛把整个…

【小白入】显示器核心参数对比度简介

对比度是一个非常核心的显示器参数。下面我们来了解一下。一、核心定义&#xff1a;什么是对比度&#xff1f;显示器的对比度&#xff08;Contrast Ratio&#xff09;是指其最亮状态&#xff08;白色&#xff09;与最暗状态&#xff08;黑色&#xff09;之间的亮度比值。简单来…

【项目】多模态RAG必备神器—olmOCR重塑PDF文本提取格局

【项目】多模态RAG必备神器—olmOCR重塑PDF文本提取格局&#xff08;一&#xff09;olmOCR是什么&#xff1f;&#xff08;二&#xff09;olmOCR 的核心技术&#xff08;1&#xff09;文档锚定技术&#xff08;2&#xff09;微调 7B 视觉语言模型&#xff08;三&#xff09;olm…

解决Android Studio查找aar源码的错误

我又来给大模型贡献素材了&#xff01; 问题 在更新了Android Studio Narwhal Feature Drop | 2025.1.2 Patch 1版本之后&#xff0c;遇到了一个问题&#xff0c;很烦人&#xff01;AS每次更新都能搞出点新毛病&#xff0c;真的服了。使用离线依赖aar包引入某个库之后&#xff…

华为HCIP、HCIE认证:自学与培训班的抉择

大家好&#xff0c;这里是G-LAB IT实验室。 在追求个人职业发展的道路上&#xff0c;取得华为的HCIP或HCIE认证是许多IT从业者的重要目标之一。 但在备考过程中&#xff0c;我们常常面临一个选择&#xff1a;是自学还是报名参加培训班&#xff1f;本文将针对这个问题&#xff0…

空调噪音不穿帮,声网虚拟直播降噪技巧超实用

虚拟主播团队负责人来吐槽&#xff01;实时互动是核心&#xff0c;可主播回应慢半拍、动作表情跟不上语音&#xff0c;用户立马觉得假&#xff0c;哗哗流失。之前方案端到端延迟 700ms&#xff0c;互动总慢一步。直到接入商汤日日新大模型和声网合作方案&#xff0c;延迟压到 5…

Spark和Spring整合处理离线数据

如果你比较熟悉JavaWeb应用开发&#xff0c;那么对Spring框架一定不陌生&#xff0c;并且JavaWeb通常是基于SSM搭起的架构&#xff0c;主要用Java语言开发。但是开发Spark程序&#xff0c;Scala语言往往必不可少。 众所周知&#xff0c;Scala如同Java一样&#xff0c;都是运行…

智能高效内存分配器测试报告

一、项目背景 这个项目是为了学习和实现一个高性能、特别是高并发场景下的内存分配器。这个项目是基于谷歌开源项目tcmalloc(Thread-Caching Malloc)实现的。tcmalloc 的核心目标就是替代系统默认的 malloc/free&#xff0c;在多线程环境下提供更高效的内存管理。C/C的malloc虽…

吱吱企业通讯软件以安全为核心,构建高效沟通与协作一体化平台

随着即时通讯工具日益普及&#xff0c;企业面临一个严峻的挑战&#xff1a;如何在保障通讯数据安全的前提下&#xff0c;提升办公效率&#xff1f;为解决此问题&#xff0c;吱吱企业通讯软件诞生&#xff0c;通过私有化部署和深度集成的办公系统&#xff0c;为企业打造一个既可…