在 Linux 中开启端口
这篇文章主要记录在 Linux 中常用开启端口的命令。
Linux 环境说明: 命令在类 Centos 环境中使用
iptables开启端口
1. 管理命令 1
2
3
4
5
6
7
8
9
10
11# 安装 iptables
yum install iptables-services
# 启动 iptables
systemctl start iptables
# 关闭 iptables
systemctl stop iptables
# 查看 iptables 状态
systemctl status iptables
2. 命令格式 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30iptables -t 表名 <-A/I/D/R> 规则链名 [规则号] <-i/o 网卡名> -p 协议名 <-s 源IP/源子网> --sport 源端口 <-d 目标IP/目标子网> --dport 目标端口 -j 动作
# 通用匹配:源地址目标地址的匹配
# -p :指定协议类型
# -s : --source [!] address[/mask] :指定一个/一组地址作为源地址
# -d : --destination [!] address[/mask] :指定目的地址
# -i : --in-interface [!] <网络接口name> :指定数据包来自的网卡
# -o : --out-interface [!] <网络接口name> :指定数据包出去的网卡
# --sport : 指定源端口
# --dport :指定目标端口
# 查看管理命令
# -L: --list [chain] 列出链 chain 上面的所有规则,如果没有指定链,列出表上所有链的所有规则
# 规则管理命令
# -t : 指定表名
# -A : --append chain rule-specification, 在指定链 chain 的末尾插入指定的规则
# -I : --insert chain [rulenum] rule-specification 在链 chain 中的指定位置插入一条或多条规则,如果未指定位置,默认在链的头部插入
# -D : --delete chain rule-specification -D, --delete chain rulenum 在指定的链 chain 中删除一个或多个指定规则
# -R num:Replays替换/修改第几条规则
# -j : 指定动作,包括:
# ACCEPT :接收数据包
# DROP :丢弃数据包
# REDIRECT :重定向、映射、透明代理
# SNAT :源地址转换
# DNAT :目标地址转换
# MASQUERADE :IP伪装(NAT),用于ADSL
# LOG :日志记录
# SEMARK : 添加SEMARK标记以供网域内强制访问控制(MAC)
2. iptables 开放端口 1
2
3
4
5
6
7
8
9
10
11
12
13
14# 开放 2200 端口
iptables -A INPUT -p tcp --dport 22000 -j ACCEPT
# 允许 192.168.1 网段的 ip 访问 22 的 tcp 端口
iptables -A INPUT -s 192.168.1.0/24 -p tcp --dport 22 -j ACCEPT
# 开放 80 端口
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
# 允许被ping
iptables -A INPUT -p icmp --icmp-type 8 -j ACCEPT
# 已经建立的连接可以进来
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
3. 列出已设置的规则 1
2
3
4
5
6
7
8
9
10
11
12iptables -L [-t 表名] [链名]
# 四个表名 raw,nat,filter,mangle
# 五个规则链名 INPUT、OUTPUT、FORWARD、PREROUTING、POSTROUTING
# filter表包含INPUT、OUTPUT、FORWARD三个规则链
# 查看 INPUT 规则
iptables -L INPUT
# 详细查看所有规则
iptables -L -nv
3. 保存配置 1
service iptables save
firewall-cmd 开启端口
1. 启动/关闭命令 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20# 安装 firewalld
yum install firewalld firewall-config
# 启动 firewalld
systemctl start firewalld
# 停止 firewalld
systemctl stop firewalld
# 启用自动启动 firewalld
systemctl enable firewalld
# 禁用自动启动 firewalld
systemctl disable firewalld
# 查看状态
systemctl status firewalld
# 查看状态
firewall-cmd --state
2. 查看打开的端口 1
firewall-cmd --zone=public --list-ports
3. 添加端口 1
2
3
4
5
6
7
8# 添加指定端口,--permanent永久生效,没有此参数重启后失效
firewall-cmd --zone=public --add-port=80/tcp --permanent
# 添加连续端口
firewall-cmd --zone=public --add-port=1000-2000/tcp --permanent
# 添加端口之后,需要重新载入才会生效
firewall-cmd --reload
4. 查看指定端口 1
firewall-cmd --zone=public --query-port=80/tcp
5. 删除端口 1
firewall-cmd --zone=public --remove-port=80/tcp --permanent