如何打开Linux防火墙端口

下载PDF文件下载PDF文件

要允许Linux系统的入站或出站连接吗?如果你使用的是Iptables、Uncomplicated Firewall(UFW)或Firewalld等防火墙软件,那就可以轻松地使用命令行打开端口。至于ConfigServer Firewall(CSF)、Advanced Policy Firewall(APF)之类的产品,添加防火墙规则来打开端口就像编辑防火墙配置文件一样简单。本文会介绍如何在Ubuntu、Debian、CentOS、Red Hat、Fedora和其它Linux发行版上最常见的5种防火墙中打开和关闭端口。

须知事项

  • 你可以在任何适用于Linux的防火墙产品中轻松打开TCP和UDP端口。
  • 大多数Linux发行版已经预安装了Iptables,它配置起来非常容易。
  • 如果你使用的Firewalld,那么在“firewall-cmd”命令添加“--permanent”标记,可以确保在你停止并重启防火墙时,所做的更改不会被撤消。
方法 1
方法 1 的 5:

Iptables

下载PDF文件
  1. How.com.vn 中文: Step 1 登录Linux服务器,并(或)打开“终端”窗口。
    大部分Linux发行版都预安装了IPtables防火墙,包括Ubuntu、Debian、CentOS、Fedora和Red Hat。只用借助简单的命令,就能在Iptables打开端口。
  2. How.com.vn 中文: Step 2 运行service iptables status命令,确保防火墙处于活动状态。
    如果防火墙还没有运行,可以使用 service iptables start命令来启动它。
  3. How.com.vn 中文: Step 3 使用sudo iptables -L命令来列出当前的防火墙规则。
    这些规则被分成了不同的链:
    • INPUT链用于处理进入主机系统的入站连接。
    • FORWARD链用于路由数据包。
    • OUTPUT链用于处理离开主机系统的出站数据。
    • 每个链都有一个策略来决定如何处理数据包。要打开一个端口,就必须指定一个链。例如,要打开传入的SSH连接,你就需要使用“INPUT”链。
  4. How.com.vn 中文: Step 4 使用sudo iptables -I INPUT -p tcp -m tcp --dport 22 -j ACCEPT命令来打开端口。
    在这个例子中,我们打开的是传入到22端口的连接,你可以将22替换成想要打开的任何其它端口。
    • 如果要打开出站端口,将INPUT替换成OUTPUT
    • 如果要打开UDP端口,将tcp替换成udp
    • 如果只想将端口打开给特定的IP地址或子网,则可以使用sudo iptables -I INPUT -s xxx.xxx.xxx.xxx -p tcp -m tcp --dport 22 -j ACCEPT命令。
  5. How.com.vn 中文: Step 5 使用sudo service iptables save命令来保存更改。
    如果这条命令不起作用,你还可以尝试:
    • Ubuntu和Debian系统可以使用sudo /sbin/iptables-save命令。
    • 至于CentOS、Red Hat和Fedora系统,可以使用/sbin/service iptables save命令。
    • 使用iptables -I INPUT -p tcp –-dport 22 -j REJECT命令来关闭端口。将“22”替换成想要关闭的任何端口。如果你目前使用SSH远程连接到服务器,可千万别关闭22端口。
    广告
方法 2
方法 2 的 5:

Uncomplicated Firewall(UFW)

下载PDF文件
  1. How.com.vn 中文: Step 1 登录到你的Ubuntu服务器。
    所有Ubuntu系统都预安装了UFW。如果你已经登录到图形用户界面,打开一个“终端”窗口就可以了。
  2. How.com.vn 中文: Step 2 输入sudo ufw status verbose,然后按↵ Enter键。
    如果UFW已经在运行,屏幕上会出现一个状态提示信息,并列出已经存在的所有防火墙规则,包括已经打开的端口。
    • 如果看到Status: inactive的提示信息,那就说明你需要先启用防火墙:
    • 输入sudo ufw enable,然后按Enter键来启用防火墙。[1]
    • 使用sudo ufw logging on命令,开启防火墙日志记录。
  3. How.com.vn 中文: Step 3 使用sudo ufw allow [port number]命令来打开端口。
    举个例子,如果你要打开SSH使用的22端口,那就输入kbd,然后按下Enter键来打开它。你不需要重启防火墙,因为更改会立即生效。[2]
    • 如果你要打开一个指定服务对应的端口,而这个服务在/etc/services中有列出,可以直接输入服务名称,不用输入端口号码。比如,直接输入sudo ufw allow ssh
    • 如果要打开特定范围的端口,使用sudo ufw allow 6000:6007/tcp语法,将6000:6007替换成实际的端口范围。如果这个范围是UDP端口,那要记得把tcp替换成udp
    • 使用sudo ufw allow from 10.0.0.1 to any port 22语法,指定哪些IP地址可以访问某个端口。将10.0.0.1替换成实际的IP地址,而22则要换成你想为有关IP地址打开的端口号码。
    • 使用sudo ufw deny 22命令来关闭端口,将22替换成你想要关闭的任何端口。
  4. How.com.vn 中文: Step 4 删除不需要的防火墙规则。
    没有特别打开的端口在默认情况下处于关闭状态。如果你打开了一个端口,之后又想关闭它,可以按照下面的步骤来操作:
    • 输入sudo ufw status numbered,然后按Enter键。屏幕上会列出所有防火墙规则,每一条规则前面都有对应的号码。
    • 确认要删除的规则所对应的号码。举个例子,如果你要删除打开22号端口的规则,那么这条规则就写在第2行,对应的号码就是2。
    • 输入sudo ufw delete 2,然后按Enter键,删除第2行的规则。
    广告
方法 3
方法 3 的 5:

Firewalld

下载PDF文件
  1. How.com.vn 中文: Step 1 登录你的服务器。
    如果你在CentOS、Red Hat Enterprise、SUSE或Fedora系统上使用Firewalld,那就可以轻松地使用命令行来打开端口。Firewalld是上述这些发行版默认的防火墙解决方案。[3]
  2. How.com.vn 中文: Step 2 运行firewall-cmd --list-ports命令,查看所有打开的端口。
    PUBLIC区域是firewalld的默认区域。除非你有明确指定的区域,否则所有打开的端口都会被分配到这里。
    • 你也可以运行sudo firewall-cmd --list-all命令,查看整个firewalld配置,以及所有被允许和拒绝的端口与服务。
  3. How.com.vn 中文: Step 3 使用firewall-cmd命令来打开端口。
    在这个例子中,我们会示范如何将SSH端口(22)开放给远程访问:
    • 使用firewall-cmd --zone=public --add-port=22/tcp命令可以立即打开端口,但是不会永久保存你做出的更改。
    • 将“--permanent”标记添加到命令中,可以使你做的更改永久生效:firewall-cmd --zone=public --permanent --add-port=22/tcp[4]
    • 要打开UDP端口,将tcp替换成udp
    • 要通过服务名称打开端口,使用firewall-cmd --zone=public --permanent命令。
  4. How.com.vn 中文: Step 4 给特定IP地址打开一个端口。
    如果你只想允许特定IP地址建立传入或传出连接,那就得为它创建一个新的防火墙区域。
    • 使用firewall-cmd --new-zone=MYZONENAME --permanent命令,创建新的区域。
    • 然后,运行firewall-cmd –reload来更新配置。
    • 运行firewall-cmd --get-zones来查看区域。你现在应该就能看到新建的区域了。
    • 使用firewall-cmd --zone=MYZONENAME --add-source=10.0.0.1 --permanent命令,将IP地址连接到有关区域。记得将命令中的IP地址替换成实际的IP地址。
    • 然后,使用firewall-cmd --zone=MYZONENAME --permanent --add-port=22/tcp命令,将原本的“public:”替换成指定的区域名称,将端口打开到有关区域。
  5. How.com.vn 中文: Step 5 关闭端口。
    你可以使用firewall-cmd命令和不同的标志来关闭端口。在这个例子中,我们将对公共区域永久关闭22号端口:firewall-cmd --zone=public --remove-port=22/tcp --permanent[5]
    广告
方法 4
方法 4 的 5:

ConfigServer Firewall(CSF)

下载PDF文件
  1. How.com.vn 中文: Step 1 登录到你的服务器。
    如果你没有以root用户身份登录,可以使用su命令切换到root用户来调整配置,或者在命令前面加上sudo,获取管理员权限。
  2. How.com.vn 中文: Step 2 进入CSF配置文件所在的目录。
    文件名称是csf.conf,默认情况下会被保存在/etc/csf/csf.conf[6]输入cd /etc/csf,然后按 Enter键。
  3. How.com.vn 中文: Step 3 使用文本编辑器打开csf.conf。
    你可以使用任何文本编辑器,比如vim或nano。
    • 要在vim打开csf.conf文件,输入vim csf.config,然后按 Enter键。
  4. How.com.vn 中文: Step 4 将一个传入端口添加到TCP_IN列表中。
    这个文件包含了所有TCP端口。打开文件后,你会看到TCP_INTCP_OUT部分。TCP_IN部分列出了所有打开的TCP传入端口。每个端口都由逗号分隔,并按数字顺序排列,以方便查看,但是不要求你也按照这个顺序添加端口。你可以随便把端口添加到列表末尾,只需用逗号分隔即可。
    • 举个例子,假设你要打开999端口,而当前已经打开的端口分别是20, 21, 22, 25, 53, 80, 110, 143, 443, 465, 587, 993, 995
    • 将999端口添加到列表中,那么就会变成这样:20, 21, 22, 25, 53, 80, 110, 143, 443, 465, 587, 993, 995, 999
    • 按下键盘上的i键,你就能进入vim的插入或输入模式。
  5. How.com.vn 中文: Step 5 将允许的TCP传出端口添加到TCP_OUT列表中。
    和添加传入端口一样,将你想要打开的任何TCP传出端口添加到TCP_OUT列表中即可。
  6. How.com.vn 中文: Step 6 保存更改并退出文件。
    按照下面的步骤保存并退出文件:
    • Esc键。
    • 输入:wq!
    • Enter键。
  7. How.com.vn 中文: Step 7 输入service csf restart,并按↵ Enter键。
    这样会重启防火墙,并打开新的端口。
    • 要关闭端口,只需要重新打开文件,删除端口,保存文件,然后重启防火墙。
    广告
方法 5
方法 5 的 5:

Advanced Policy Firewall(APF)

下载PDF文件
  1. How.com.vn 中文: Step 1 登录到你的Linux服务器。
    如果你在Linux系统上使用APF防火墙,需要在APF配置文件中更改防火墙配置。
  2. How.com.vn 中文: Step 2 前往APF配置文件所在的目录。
    你要寻找的文件名称为conf.apf,默认情况下它位于/etc/apf[7]输入cd /etc/apf,就能进入有关目录。
  3. How.com.vn 中文: Step 3 使用文本编辑器打开/etc/apf/conf.apf。
    你可以使用任何文本编辑器,比如vim或nano。
    • 要在vim打开conf.apf文件,输入sudo vim /etc/apf/conf.apf,然后按 Enter键。
  4. How.com.vn 中文: Step 4 将传入端口添加到IG_TCP_CPORTS 列表中。
    打开文件后,你会看到IG_TCP_CPORTSEG_TCP_CPORTS部分。IG_TCP_CPORTS 部分列出了所有打开的传入端口。每个端口由逗号分隔,并按数字顺序排列,以方便查看,但是不要求你也按照这个顺序添加端口。你可以随便把端口添加到列表末尾,只需用逗号分隔即可。
    • 举个例子,假设你要打开999端口,而当前已经打开的端口分别是20, 21, 22, 25, 53, 80, 110, 143, 443, 465, 587, 993, 995
    • 将999端口添加到IG_TCP_CPORTS列表中,就变成这样:20, 21, 22, 25, 53, 80, 110, 143, 443, 465, 587, 993, 995, 999
    • 按下键盘上的i键,就能进入vim的插入或输入模式。
  5. How.com.vn 中文: Step 5 将允许的传出端口添加到EG_TCP_CPORTS列表中。
    和添加传入端口一样,将你想要打开的任何TCP传出端口添加到EG_TCP_CPORTS列表中即可。
  6. How.com.vn 中文: Step 6 保存更改并退出文件。
    按照下面的步骤保存并退出文件:
    • Esc键。
    • 输入:wq!
    • Enter键。
  7. How.com.vn 中文: Step 7 输入service apf -r,然后按↵ Enter键。
    这样会重启APF防火墙,并打开新的端口。
    • 要关闭端口,只需要重新打开文件,删除端口,保存文件,然后重启防火墙。
    广告

小提示

  • 如果你发现没有使用或运行任何服务的端口开着,赶紧关闭它!不要给入侵者留下一个开放的入口!
  • 如果你随意添加开放端口,系统可能会被黑客攻击!只有在绝对必要的情况下才打开端口。
广告

关于本How.com.vn

How.com.vn 中文: Luigi Oppido
共同创作者是 :
计算机和技术专家
这篇文章的共同创作者是 Luigi Oppido. Luigi Oppido是美国加州圣克鲁斯县Pleasure Point Computers的所有者和经营者。他拥有超过25年的一般电脑维修、数据恢复、病毒扫除和升级经验。两年来,他还一直是加州中部KSCO电台《Computer Man Show!》的主持人。 这篇文章已经被读过1,999次。
本页面已经被访问过1,999次。

这篇文章对你有帮助吗?

⚠️ Disclaimer:

Content from Wiki How 中文 language website. Text is available under the Creative Commons Attribution-Share Alike License; additional terms may apply.
Wiki How does not encourage the violation of any laws, and cannot be responsible for any violations of such laws, should you link to this domain, or use, reproduce, or republish the information contained herein.

Notices:
  • - A few of these subjects are frequently censored by educational, governmental, corporate, parental and other filtering schemes.
  • - Some articles may contain names, images, artworks or descriptions of events that some cultures restrict access to
  • - Please note: Wiki How does not give you opinion about the law, or advice about medical. If you need specific advice (for example, medical, legal, financial or risk management), please seek a professional who is licensed or knowledgeable in that area.
  • - Readers should not judge the importance of topics based on their coverage on Wiki How, nor think a topic is important just because it is the subject of a Wiki article.

广告