安装ufw+ F( [1 _5 Z% y1 @/ X
在 Debian、Ubuntu 或其衍生版本上,打开终端并执行以下命令安装:! n- | N" O8 k9 P7 s/ e3 D
7 t* L$ X$ S- l& U) X
# 安装ufw
+ \9 q) b# V+ g% ]+ b" v% t- sudo apt-get update
- T7 [$ p; v* y1 g, W' G% P - sudo apt-get install ufw
复制代码
% \( Q0 ?, a, }: L# 启动ufw+ Y$ u* C( q0 v% z s2 z
! U# G2 r4 Z ]: T
# 设置为开机自启2 L5 H9 |# V1 x: }" ?* R. \* D
- sudo systemctl enable ufw
复制代码
1 F0 z* V7 _& p& @% \执行sudo ufw status查看当前状态,通常有3种状态: H2 e. o u; R7 t5 v1 w8 x" u
- Status: inactive(未启用):表示 UFW 没有启用,防火墙处于关闭状态。; u# {2 l2 r* J% A
- Status: active(已启用):表示 UFW 已经启用,并且防火墙规则正在应用于系统。
2 t9 y0 Y/ w- L2 ?( h - Status: inactive (dead)(未启用且未运行):表示 UFW 已被禁用,并且防火墙未在系统中运行。
复制代码 / h" R& x5 O; _$ V, l, M$ i
ufw放行端口
' J4 V' q$ _' h# E: e- d& J' Eufw的命令比firewalld简洁许多,比如你想放行单个端口,只需要执行:
1 o+ `5 J0 V" R D: N+ m, D5 a# 将 <port> 替换为你要放行的具体端口号。例如,要放行 TCP 端口 80,可以执行 sudo ufw allow 80。0 T/ m. R r' i4 C0 t) B/ Y: y
如果需要放行特定协议的端口,我们需要加上协议:# _; k; n7 x/ f6 U1 H* l3 n0 J
) E: y. B$ d9 b' N2 F
# 将 <port> 替换为端口号,<protocol> 替换为协议类型(如 tcp、udp)。例如,要放行 UDP 端口 53,可以执行 sudo ufw allow 53/udp。' I( K/ M$ l' o `
- sudo ufw allow <port>/<protocol>
复制代码
9 L3 ?% n8 S. b, b' A# S1 V5 J放行一个端口范围:
! L- m, j; [) c: L$ p- sudo ufw allow <start-port>:<end-port>/<protocol>
复制代码 将 <start-port> 替换为起始端口号,<end-port> 替换为结束端口号,<protocol>为协议。例如,要放行 TCP 端口范围 8000 到 9000,可以执行- sudo ufw allow 8000:9000/tcp
复制代码 + F& I4 o/ a& Q6 ^
ufw删除已经放行的规则或端口+ ^! m& n( \- P0 _* s4 G! J
要在ufw(Uncomplicated Firewall)中删除已添加的规则,您可以通过规则号或者具体的放行条件来删除。以下是两种方法:" E% U/ v1 D' y c/ _( o
0 l' C1 { O3 Z( G
方法1:通过规则号删除
4 x, e3 ^8 O2 u- z首先,运行以下命令以查看当前ufw的状态和现有规则:
/ t( X& C' ~/ K: {; g' j. L ]! b3 r( Y+ [1 w" D
这将显示带有编号的规则列表。 D. E2 G( b4 u
确定您要删除的规则的编号,然后使用以下命令删除它,将[rule_number]替换为实际的规则编号:
6 {& ?- M y5 s1 }4 A3 g- sudo ufw delete [rule_number]
复制代码
& ~2 ]3 O7 ^3 D例如,要删除编号为1的规则,运行:0 Z/ Q* r T" m4 w1 W" }6 p
2 \, _$ j7 j9 P方法2:通过放行条件删除( o/ A A( \1 Q. ~1 N' G* \+ ^5 L
您还可以通过指定放行条件(例如端口和协议)来删除规则。例如,要删除允许TCP端口80的规则,您可以运行:1 n( |3 N9 B& D5 s3 y q' s
- sudo ufw delete allow 80/tcp
复制代码
1 G4 }. W" u' R或者,如果要删除允许UDP端口5000的规则,您可以运行:, E- c4 T( @( k+ H
- sudo ufw delete allow 5000/udp
复制代码 删除规则后,再次运行sudo ufw status以确认所选规则已从ufw中删除。7 i) ?6 ]5 [; u; q9 K1 C
' \$ _( ~+ V7 p) H0 E, e$ G" v
阻止某个特定的IP8 \0 S6 ~0 v! ?5 G
使用以下命令阻止来自特定IP(例如1.2.3.4)的连接:7 x/ h6 o5 {3 }
- sudo ufw deny from 1.2.3.4
复制代码 ' d* K- @7 q. | x5 d% i
允许特定IP访问特定端口3 R7 u' {) A) u. w1 D8 p1 H
使用以下命令允许特定IP访问特定端口。将[ip_address]替换为要允许的实际IP地址,将[port_number]替换为要允许访问的实际端口号,将[protocol]替换为tcp或udp,具体取决于您要放行的协议:
0 R* f2 ^/ f5 j/ x4 B- sudo ufw allow from [ip_address] to any port [port_number]/[protocol]
复制代码
) w4 j8 m" Z' F$ y) t例如,要允许IP地址1.2.3.4访问TCP端口22,您可以运行:
; D' }# H0 D/ k- sudo ufw allow from 1.2.3.4 to any port 22/tcp
复制代码
5 d- z+ K$ u( M6 S( S5 D4 X0 ~7 X7 g8 Z |