服务器如何配置防火墙规则开放/关闭端口?

配置服务器防火墙规则(开放/关闭端口)是服务器安全管理的基础操作,不同操作系统和防火墙工具的配置方式有所不同。以下是主流系统的详细操作指南:


一、Linux系统(iptables/firewalld/UFW)

1. iptables(传统方式)
# 查看当前规则
sudo iptables -L -n# 开放端口(如80/TCP)
sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT# 关闭端口(如3306/TCP)
sudo iptables -A INPUT -p tcp --dport 3306 -j DROP# 保存规则(CentOS/RHEL)
sudo service iptables save
# 或(Ubuntu/Debian)
sudo iptables-save > /etc/iptables.rules
2. firewalld(CentOS/RHEL 7+)
# 开放端口
sudo firewall-cmd --zone=public --add-port=80/tcp --permanent
sudo firewall-cmd --reload# 关闭端口
sudo firewall-cmd --zone=public --remove-port=3306/tcp --permanent
sudo firewall-cmd --reload# 查看已开放端口
sudo firewall-cmd --list-ports
3. UFW(Ubuntu/Debian简化工具)
# 启用UFW
sudo ufw enable# 开放端口
sudo ufw allow 22/tcp    # SSH
sudo ufw allow 80/tcp    # HTTP# 关闭端口
sudo ufw deny 3306/tcp   # MySQL# 查看规则
sudo ufw status numbered

二、Windows系统

1. 通过防火墙图形界面
  1. 打开 控制面板 > Windows Defender 防火墙 > 高级设置

  2. 选择 入站规则 > 新建规则

  3. 选择 端口 > TCP/UDP,输入端口号(如80)

  4. 选择 允许/阻止连接,设置作用域(公用/私有/域)

  5. 命名规则并保存

2. 通过PowerShell命令

powershell

# 开放端口(如80/TCP)
New-NetFirewallRule -DisplayName "Allow HTTP" -Direction Inbound -Protocol TCP -LocalPort 80 -Action Allow# 关闭端口(如3389/TCP)
Remove-NetFirewallRule -DisplayName "Remote Desktop"

三、云服务器(安全组配置)

1. 莱卡云/腾讯云/AWS
  1. 登录云控制台,进入 安全组管理

  2. 添加规则:

    • 协议类型:TCP/UDP/ICMP

    • 端口范围:单个(80)或范围(8000-9000)

    • 授权对象:0.0.0.0/0(开放公网)或指定IP

  3. 绑定到目标服务器实例

2. 快速命令示例(AWS CLI)
aws ec2 authorize-security-group-ingress \--group-id sg-xxxxxx \--protocol tcp \--port 22 \--cidr 203.0.113.0/24

四、关键注意事项

  1. 最小权限原则

    • 仅开放必要端口(如Web服务:80/443,SSH:22)。

    • 避免开放高危端口(如135-139、445、3389)。

  2. 端口伪装(安全增强)

    # 修改SSH默认端口(Linux)
    sudo sed -i 's/#Port 22/Port 2222/g' /etc/ssh/sshd_config
    sudo systemctl restart sshd
  3. 日志监控

    # 查看防火墙拦截记录(Linux)
    sudo grep DROP /var/log/syslog
  4. 多工具冲突

    • 避免同时启用iptablesfirewalld,可能导致规则混乱。


五、常用端口对照表

端口服务风险等级建议操作
22SSH改端口+IP白名单
80HTTP开放
443HTTPS必须开放
3306MySQL限制内网访问
3389RDP极高仅VPN访问

通过以上步骤,您可以灵活控制服务器端口的开放与关闭。建议首次配置后使用工具(如telnetnmap)测试端口状态:

nmap -p 80,443 your-server-ip

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

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

相关文章

基于SpringBoot+Redis实现外呼频次限制功能

针对外呼场景中的号码频次限制需求(如每3天只能呼出1000通电话),我可以提供一个基于Spring Boot和Redis的完整解决方案。 方案设计 核心思路 使用Redis的计数器过期时间机制 采用滑动窗口算法实现精确控制 通过Lua脚本保证原子性操作 实…

下一代 2D 图像设计工具「GitHub 热点速览」

长期以来,2D 设计领域似乎已是 Adobe 与 Figma 的天下,层叠的图层、熟悉的工具栏,一切都显得那么顺理成章,却也让不少设计师在创意的边界上感到了些许乏力。当我们以为设计工具的革新只能是小修小补时,开源社区再次扮演…

L58.【LeetCode题解】模拟算法习题集1(Z 字形变换、外观数列)

目录 1.Z 字形变换 方法1: 模拟 代码 提交结果 方法2:优化后的模拟 代码 提交结果 2.外观数列 方法1:模拟 代码 提交结果 方法2:打表 知识回顾 代码 1.Z 字形变换 https://leetcode.cn/problems/zigzag-conversion/ 将一个给定字符串 s 根据给定的行数 numRows &…

Flink MySQL CDC 环境配置与验证

一、MySQL 服务器配置详解 1. 启用二进制日志(Binlog) MySQL CDC 依赖二进制日志获取增量数据,需在 MySQL 配置文件(my.cnf 或 my.ini)中添加以下配置: # 启用二进制日志 log-binmysql-bin # 二进制日志…

如何查看自己电脑的CUDA版本?

在搜索栏输入命令提示符 打开 输入 nvidia-smi图片中的两个是CUDA版本和显卡的信息

opencv使用 GStreamer 硬解码和 CUDA 加速的方案

在Conda环境中从源代码编译OpenCV(支持CUDA和GStreamer) 以下是完整的方案步骤,包括必要的依赖库安装过程: 1. 安装Miniconda(如果尚未安装) # 下载Miniconda安装脚本 wget https://repo.anaconda.com/m…

Java面试宝典:多线程一

1. run() vs start() 陷阱题 下面程序的运行结果 public static void main(String[] args) {Thread t = new Thread(

【CSS-14-基础样式表Base.css】如何编写高质量的Base.css:前端样式重置与基础规范指南

在前端开发中,Base.css(也称为重置样式表或基础样式表)是整个项目样式的基石。它负责消除浏览器默认样式的差异,建立统一的样式基准,为后续开发提供一致的起点。一个精心设计的Base.css能够显著提高开发效率&#xff0…

探索Python数据科学工具链NumPyPandas与Scikit-learn

NumPy:数值计算的基石 NumPy是Python中用于科学计算的核心库,它提供了一个强大的N维数组对象,以及大量的数学函数库,能够高效地进行向量和矩阵运算。对于数据科学家而言,掌握NumPy是进行数据处理和算法实现的基础。 创…

八股学习(三)---MySQL

一、MySQL中的回表是什么?我的回答:MySQL回表指的是在查询使用非聚簇索引也就是二级索引时,叶子节点只存储了索引列的值和主键Id,若要查询其他字段,就要根据主键去聚簇索引查询完整的数据。这个过程就是回表。比如用na…

NeighborGeo:基于邻居的IP地理定位(一)

NeighborGeo:基于neighbors的IP地理定位 X. Wang, D. Zhao, X. Liu, Z. Zhang, T. Zhao, NeighborGeo: IP geolocation based on neighbors, Comput. Netw. 257 (2025) 110896, Abstract IP地址定位在网络安全、电子商务、社交媒体等领域至关重要。当前主流的图神经网络方法…

MySQL 8.0:窗口函数

一、基础知识 定义 窗口函数(Window Function)对查询结果集的子集(“窗口”)进行计算,保留原始行而非聚合为单行,适合复杂分析(如排名、累积和)。 基本语法: 函数名() OV…

AI 深度学习面试题学习

1.神经网络 1.1各个激活函数的优缺点? 1.2为什么ReLU常用于神经网络的激活函数? 1.在前向传播和反向传播过程中,ReLU相比于Sigmoid等激活函数计算量小; 2.避免梯度消失问题。对于深层网络,Sigmoid函数反向传播时,很容易就会出现梯度消失问题(在Sigmoid接近饱和区时,变换…

遇到该问题:kex_exchange_identification: read: Connection reset`的解决办法

kex_exchange_identification: read: Connection reset 是一个非常常见的 SSH 连接错误。它表明在 SSH 客户端和服务器建立安全连接的初始阶段(密钥交换,Key Exchange),连接就被对方(服务器)强制关闭了。 …

(论文蒸馏)语言模型中的多模态思维链推理

(论文总结)语言模型中的多模态思维链推理 论文名称研究背景动机主要贡献研究细节两阶段框架实验结果促进收敛性摆脱人工标注错误分析与未来前景 论文名称 Multimodal Chain-of-Thought Reasoning in Language Models http://arxiv.org/abs/2302.00923 …

React Native 接入 eCharts

React Native 图表接入指南 概述 本文档详细介绍了在React Native项目中接入ECharts图表的完整步骤,包括依赖安装、组件配置、数据获取、图表渲染等各个环节。 目录 1. 环境准备2. 依赖安装3. 图表组件创建4. 数据获取Hook5. 图表配置6. 组件集成7. 国际化支持8…

基于C#的OPCServer应用开发,引用WtOPCSvr.dll

操作流程: 1.引入WtOPCSvr.dll文件 2.注册服务:使用UpdateRegistry方法注册,注意关闭应用时使用UnregisterServer取消注册。 3.初始化服务:使用InitWTOPCsvr初始化 4.使用CreateTag方法,创建标签 5.读写参数使用下面三…

Java类加载器getResource行为简单分析

今天尝试集成一个第三方SDK,在IDE里运行正常,放到服务器上却遇到了NPE,反编译一看,原来在这一行:String path Test.class.getClassLoader().getResource("").getPath(); // Test.class.getClassLoader().ge…

【CodeTop】每日练习 2025.7.4

Leetcode 1143. 最长公共子序列 动态规划解决,比较当前位置目标和实际字符串的字母,再根据不同情况计算接下来的情形。 class Solution {public int longestCommonSubsequence(String text1, String text2) {char[] t1 text1.toCharArray();char[] t2…

ES6从入门到精通:Promise与异步

Promise 基础概念Promise 是 JavaScript 中处理异步操作的一种对象,代表一个异步操作的最终完成或失败及其结果值。它有三种状态:Pending(进行中)、Fulfilled(已成功)、Rejected(已失败&#xf…