三二互联专业提供速度最快最稳定的美国服务器、香港服务器。中美直连,亚洲优化![ 代理登陆 ] [ 付款方式 ] [ 找回密码 ][ 电子协议责任书 ]
硬件资源保障

采用高配品牌服务器

主流强悍CPU配置

确保服务高速稳定运行

中美直连线路

中美直连亚洲优化

采用中国CN2骨干网络

保证速度飞快稳定高效

如何关闭服务器上不需要的端口?

美国、香港服务器

如何关闭服务器上不需要的端口?

01-16   来源:

 关闭服务器不需要端口的完整方法(Linux/Windows 通用,可落地)

关闭无用端口的核心逻辑是 「先找到端口对应的服务 → 停止服务并禁用自启 → 防火墙封堵端口」,避免只封防火墙但服务仍在监听的无效操作,以下是分系统的实操步骤。
一、Linux 系统(Ubuntu 24.04 为主,通用所有发行版)
步骤 1:先定位端口对应的服务 / 进程(关键前提)
关闭端口前,必须明确哪个服务 / 进程占用了该端口,避免误关核心业务。
bash
运行
# 方法1:用 ss 命令(推荐,高效)
sudo ss -tulnp | grep ":端口号"
# 示例:查找 6379 端口对应的进程
sudo ss -tulnp | grep ":6379"
 
# 方法2:用 lsof 命令(精准按端口查询)
sudo lsof -i:端口号
# 示例:查找 21 端口(FTP)
sudo lsof -i:21
输出解读:比如查到 6379 端口对应进程 redis-server,PID 为 1234。
步骤 2:停止并禁用对应的服务(彻底关闭端口监听)
这是根本方法—— 服务停止后,端口会自动解除监听,比单纯防火墙封堵更彻底。
情况 1:端口对应系统服务(如 Redis、FTP、Nginx)
用 systemctl 管理(适用于大部分系统服务):
bash
运行
# 1. 停止服务(立即关闭端口监听)
sudo systemctl stop 服务名
# 示例:停止 Redis 服务(对应 6379 端口)
sudo systemctl stop redis-server
 
# 2. 禁用服务自启(防止服务器重启后端口重新开放)
sudo systemctl disable 服务名
# 示例:禁用 Redis 自启
sudo systemctl disable redis-server
 
# 3. 验证服务状态(确保已停止)
sudo systemctl status 服务名
情况 2:端口对应临时进程 / 非系统服务(如自定义脚本、临时程序)
直接杀死进程,再排查进程的启动来源(如定时任务、开机脚本):
bash
运行
# 1. 强制杀死进程(PID 替换为步骤1查到的进程号)
sudo kill -9 进程PID
# 示例:杀死 PID 为 1234 的进程
sudo kill -9 1234
 
# 2. 排查进程启动来源(防止再次启动)
# 查看定时任务
crontab -l
# 查看开机自启脚本
ls /etc/rc.local /etc/init.d/
步骤 3:防火墙封堵端口(双重保险,防止误启服务)
即使服务已停止,也建议在防火墙中封堵端口,形成双重防护。
方案 1:用 ufw 防火墙(Ubuntu 推荐,简单)
bash
运行
# 封堵指定端口(TCP+UDP,按需调整)
sudo ufw deny 端口号/tcp
sudo ufw deny 端口号/udp
 
# 示例:封堵 6379 端口
sudo ufw deny 6379/tcp
 
# 查看规则,验证封堵状态
sudo ufw status numbered
方案 2:用 iptables 防火墙(进阶,通用所有 Linux)
bash
运行
# 封堵指定 TCP 端口(拒绝所有入站请求)
sudo iptables -A INPUT -p tcp --dport 端口号 -j DROP
# 封堵指定 UDP 端口
sudo iptables -A INPUT -p udp --dport 端口号 -j DROP
 
# 示例:封堵 21 端口(FTP)
sudo iptables -A INPUT -p tcp --dport 21 -j DROP
 
# 保存规则(Ubuntu 24.04)
sudo iptables-save > /etc/iptables/rules.v4
步骤 4:验证端口是否已关闭
bash
运行
# 检查端口是否还在监听
sudo ss -tulnp | grep ":端口号"
# 若无输出,说明端口已关闭
二、Windows Server 系统
步骤 1:定位端口对应的进程(管理员权限运行 CMD/PowerShell)
cmd
# 方法1:用 netstat 查找端口+PID
netstat -ano | findstr ":端口号"
# 示例:查找 3389 端口(远程桌面)
netstat -ano | findstr ":3389"
 
# 方法2:用 PowerShell 查看详细信息
Get-NetTCPConnection -LocalPort 端口号 | Select-Object LocalAddress,LocalPort,State,OwningProcess
输出解读:比如查到 3389 端口对应的 PID 为 1234。
步骤 2:停止端口对应的服务 / 进程
情况 1:端口对应系统服务(如 RDP、IIS)
运行 services.msc 打开服务管理器。
找到对应的服务(如 Remote Desktop Services 对应 3389 端口)。
右键 → 停止 → 右键 → 属性 → 启动类型改为 禁用。
情况 2:端口对应临时进程
运行 taskmgr 打开任务管理器。
切换到 详细信息 标签 → 按 PID 找到对应进程。
右键 → 结束任务 → 确认结束。
排查进程启动来源(如开机启动项、任务计划程序)。
步骤 3:高级防火墙封堵端口(双重保险)
打开 Windows Defender 高级防火墙 → 高级设置。
点击 入站规则 → 新建规则。
规则类型选 端口 → 选择 TCP/UDP → 输入要封堵的端口号。
动作选 阻止连接 → 应用到 域 / 专用 / 公网 所有配置文件。
命名规则(如 Block Port 6379)→ 完成。
步骤 4:验证端口是否关闭
cmd
netstat -ano | findstr ":端口号"
# 无输出则表示端口已关闭
三、关键注意事项(避坑指南)
先停服务,再封防火墙:只封防火墙但服务仍在监听,端口实际还是开放的(本地可访问),只是外部无法连接。
区分「监听地址」:
若端口监听地址是 127.0.0.1:端口号(仅本地访问),且无本地程序使用,可直接停止服务,无需防火墙封堵。
若监听地址是 0.0.0.0:端口号(所有网卡开放),必须双重防护。
避免误关核心端口:如 22(SSH)、80/443(Web),操作前确认端口用途。
批量关闭无用端口:先执行 sudo ss -tulnp 列出所有监听端口,筛选出非业务端口(如 135、139、445 等默认端口),批量处理。
四、高频场景示例
场景 1:关闭 Linux 服务器的 Redis 6379 端口
bash
运行
# 1. 定位进程
sudo ss -tulnp | grep ":6379"
# 2. 停止并禁用服务
sudo systemctl stop redis-server
sudo systemctl disable redis-server
# 3. 防火墙封堵
sudo ufw deny 6379/tcp
# 4. 验证
sudo ss -tulnp | grep ":6379"
场景 2:关闭 Windows 服务器的 135 端口(无用 RPC 端口)
管理员 CMD 执行 netstat -ano | findstr ":135",找到 PID。
运行 services.msc,找到对应服务 Remote Procedure Call (RPC) → 确认是否非必要(若业务不依赖,可禁用)。
新建高级防火墙入站规则,封堵 135 端口。

三二互联专业提供香港VPS,美国VPS主机,香港云服务器租用等业务香港美国到大陆CN2 GIA速度最快

上一篇:如何在Windows系统中关闭不需要的端口? 下一篇:如何加强服务器的网络层安全性?

美国GIA服务器三二互联版权所有 WWW.250.cc 2008-2015 All Rights Reserved
三二互联 - 专业的美国C3服务器、香港vps、抗DOOS流量清洗、云备份系统、网站加速系统、美国GIA服务器和香港云服务器产品提供商
三二互联24小时在线工单系统为您提供全面、专业、周到的技术支持与服务
咨询热线:400-679-9994(免长话费)