0

0

Linux端口管理怎么做_netstat与ss实战解析【教程】

舞夢輝影

舞夢輝影

发布时间:2026-01-03 12:00:47

|

601人浏览过

|

来源于php中文网

原创

Linux端口管理推荐用ss命令(如sudo ss -tulnp | grep :8080),兼容场景可用netstat,精准定位用lsof,终止进程用kill,还需排查TIME_WAIT、防火墙及Docker等边界情况。

linux端口管理怎么做_netstat与ss实战解析【教程】

如果您在Linux系统中需要确认某个端口是否被占用、识别监听服务或释放冲突端口,则可能是由于进程绑定端口未释放或服务配置异常所致。以下是针对端口管理的多种实战方法:

一、使用ss命令查看并管理端口(推荐首选)

ss(socket statistics)是现代Linux内核原生支持的高效工具,直接读取内核套接字信息,响应快、资源占用低,适用于所有主流发行版且默认预装。其输出结构清晰,支持精细过滤,适合快速定位监听状态与关联进程。

1、执行基础监听端口查询:sudo ss -tuln

2、检查特定端口(如8080)是否被监听:sudo ss -tuln | grep :8080

3、显示端口对应进程名与PID(需root权限):sudo ss -tulnp | grep :8080

4、区分IPv4与IPv6监听地址:观察Local Address列中*:*(IPv4通配)或[::]:*(IPv6通配),同一端口可同时绑定在127.0.0.1和0.0.0.0上,不构成冲突

二、使用netstat命令进行兼容性排查(旧系统适用)

netstat属于net-tools套件,虽已逐步被ss取代,但在部分遗留环境或教学场景中仍具参考价值。其参数逻辑与ss高度一致,但启动较慢,且多数新发行版(如Ubuntu 22.04+、CentOS 8+)默认未安装,需手动补全依赖。

1、安装net-tools:sudo apt install net-tools(Debian/Ubuntu)或sudo yum install net-tools(RHEL/CentOS)

2、列出全部监听端口(数字格式):sudo netstat -tuln

3、筛选目标端口(如3306):sudo netstat -tuln | grep :3306

4、显示进程详情:sudo netstat -tulnp | grep :3306,若输出中PID/Program name列为“-”,说明当前用户权限不足,必须加sudo执行

三、使用lsof按端口反查进程(精准定位来源)

lsof(list open files)将网络端口视为特殊文件类型,能绕过协议抽象层,直接通过文件描述符映射到进程,特别适用于识别非标准监听行为(如容器代理、systemd socket激活服务),结果直观易读。

1、安装lsof(如未预装):sudo apt install lsof

Motiff
Motiff

Motiff是由猿辅导旗下的一款界面设计工具,定位为“AI时代设计工具”

下载

2、查询指定端口(如443)占用者:sudo lsof -i :443

3、仅输出PID便于后续操作:sudo lsof -t -i :443

4、结合xargs批量终止:sudo lsof -t :8080 | xargs kill -9,执行前务必确认COMMAND列进程非关键系统服务(如systemd、dbus、sshd)

四、终止占用端口的进程(释放资源)

当确认端口被非必要进程占用时,可通过信号机制终止该进程以释放端口。不同信号语义不同,应依据进程响应情况选择温和或强制方式,避免引发服务中断或数据丢失。

1、获取PID后发起标准终止请求:sudo kill PID

2、若进程无响应或僵死,使用SIGKILL强制终止:sudo kill -9 PID

3、验证端口是否释放:再次运行sudo ss -tuln | grep :端口号,若无任何输出,表明端口已空闲;若仍显示LISTEN,则需检查是否为子进程、守护进程重启或防火墙拦截

五、辅助诊断与边界情形处理

某些端口看似“无法查到占用”,但服务启动仍报“Address already in use”,可能源于TIME_WAIT残留、socket激活延迟、容器网络隔离或防火墙策略干扰。此时需扩展排查维度,避免仅依赖单一命令得出结论。

1、检查TCP连接TIME_WAIT状态:ss -tan state time-wait | grep :端口号

2、查看firewalld开放端口列表:sudo firewall-cmd --list-ports

3、检查iptables NAT规则是否映射至本地端口:sudo iptables -t nat -L -n -v

4、确认是否为Docker容器占用:docker ps --format "table {{.ID}}\t{{.Names}}\t{{.Ports}}" | grep 端口号,容器内部端口需进入容器后执行ss -tuln,宿主机视角仅见docker-proxy进程

相关专题

更多
format在python中的用法
format在python中的用法

Python中的format是一种字符串格式化方法,用于将变量或值插入到字符串中的占位符位置。通过format方法,我们可以动态地构建字符串,使其包含不同值。php中文网给大家带来了相关的教程以及文章,欢迎大家前来阅读学习。

617

2023.07.31

python中的format是什么意思
python中的format是什么意思

python中的format是一种字符串格式化方法,用于将变量或值插入到字符串中的占位符位置。通过format方法,我们可以动态地构建字符串,使其包含不同值。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

427

2024.06.27

堆和栈的区别
堆和栈的区别

堆和栈的区别:1、内存分配方式不同;2、大小不同;3、数据访问方式不同;4、数据的生命周期。本专题为大家提供堆和栈的区别的相关的文章、下载、课程内容,供大家免费下载体验。

375

2023.07.18

堆和栈区别
堆和栈区别

堆(Heap)和栈(Stack)是计算机中两种常见的内存分配机制。它们在内存管理的方式、分配方式以及使用场景上有很大的区别。本文将详细介绍堆和栈的特点、区别以及各自的使用场景。php中文网给大家带来了相关的教程以及文章欢迎大家前来学习阅读。

564

2023.08.10

k8s和docker区别
k8s和docker区别

k8s和docker区别有抽象层次不同、管理范围不同、功能不同、应用程序生命周期管理不同、缩放能力不同、高可用性等等区别。本专题为大家提供k8s和docker区别相关的各种文章、以及下载和课程。

249

2023.07.24

docker进入容器的方法有哪些
docker进入容器的方法有哪些

docker进入容器的方法:1. Docker exec;2. Docker attach;3. Docker run --interactive --tty;4. Docker ps -a;5. 使用 Docker Compose。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

492

2024.04.08

docker容器无法访问外部网络怎么办
docker容器无法访问外部网络怎么办

docker 容器无法访问外部网络的原因和解决方法:配置 nat 端口映射以将容器端口映射到主机端口。根据主机兼容性选择正确的网络驱动(如 host 或 overlay)。允许容器端口通过主机的防火墙。配置容器的正确 dns 服务器。选择正确的容器网络模式。排除主机网络问题,如防火墙或连接问题。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

396

2024.04.08

docker镜像有什么用
docker镜像有什么用

docker 镜像是预构建的软件组件,用途广泛,包括:应用程序部署:简化部署,提高移植性。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

433

2024.04.08

php源码安装教程大全
php源码安装教程大全

本专题整合了php源码安装教程,阅读专题下面的文章了解更多详细内容。

177

2025.12.31

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
PostgreSQL 教程
PostgreSQL 教程

共48课时 | 6.5万人学习

Git 教程
Git 教程

共21课时 | 2.4万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号