关闭和打开8080端口,核心是管理监听8080端口的服务或进程。8080端口常见于本地Web服务、接口预览、开发环境应用、中间件服务和容器应用。打开端口时,让服务监听8080;关闭端口时,让服务停止监听8080。Windows、Linux、macOS都可以按“查看端口状态、确认服务、执行停止或启动、验证结果”的流程完成。服务器环境还可以配合防火墙放行规则,让需要的访问路径保持清晰。
一、先理解端口状态
- • 8080端口是一个网络端口标识,真正决定它是否可用的是应用服务。
- • 打开8080端口:应用服务开始监听8080端口,本地或外部访问可连接到该端口。
- • 关闭8080端口:应用服务停止监听8080端口,端口状态会变为未监听。
- • 防火墙放行:让访问8080端口的规则处于启用状态,常用于服务器部署。
二、通用操作流程
- 1、查看8080端口当前状态。
- 2、找到使用8080端口的服务或进程名称。
- 3、关闭端口时,停止对应服务或容器。
- 4、打开端口时,启动对应服务或容器,并按需启动防火墙放行。
- 5、再次查看8080端口状态,确认操作完成。
三、Windows方法
1. 查看8080端口状态
在命令提示符中执行:
```text
netstat -ano | findstr :8080
```
如果看到类似结果,说明8080端口已有服务在监听。最后一列的PID,就是对应的进程编号。
2. 查看进程名称
把上一步看到的PID替换到命令中,例如PID为1234:
```text
tasklist | findstr 1234
```
即可看到对应的程序名称。
3. 通过服务管理关闭和打开端口
如果8080端口对应的是Windows服务,例如Tomcat、Nginx、Java应用等,可以打开“服务”管理器,找到对应服务,选择停止或启动。
也可以使用命令:
```text
net stop ServiceName
net start ServiceName
```
把`ServiceName`替换为真实服务名称。
4. 防火墙放行8080端口
在Windows高级防火墙设置中,可以新增入站规则:
- • 规则类型:端口
- • 协议:TCP
- • 本地端口:8080
- • 操作:允许连接
需要保持端口打开时,启用该规则。需要关闭端口对外访问时,把该规则切换为停用状态。
四、Linux方法
1. 查看8080端口状态
常用命令:
```text
ss -lntp | grep 8080
```
或者:
```text
lsof -i :8080
```
输出中能看到进程ID、服务名称和监听端口。
2. 使用systemd关闭和打开服务
如果8080端口由systemd服务管理,例如tomcat、nginx、node-app:
关闭端口对应服务:
```text
sudo systemctl stop service_name
```
打开端口对应服务:
```text
sudo systemctl start service_name
```
查看服务状态:
```text
sudo systemctl status service_name
```
如果希望服务在系统启动后继续可用:
```text
sudo systemctl enable service_name
```
3. 使用Docker关闭和打开端口
如果8080端口由容器使用:
查看容器:
```text
docker ps
```
关闭容器:
```text
docker stop container_name
```
打开容器:
```text
docker start container_name
```
4. 防火墙放行8080端口
CentOS、RHEL、AlmaLinux、Rocky Linux等常见系统:
打开放行:
```text
sudo firewall-cmd --add-port=8080/tcp --permanent
sudo firewall-cmd --reload
```
关闭放行:
```text
sudo firewall-cmd --remove-port=8080/tcp --permanent
sudo firewall-cmd --reload
```
Ubuntu服务器使用ufw时:
打开放行:
```text
sudo ufw allow 8080/tcp
```
关闭放行:
```text
sudo ufw delete allow 8080/tcp
```
五、macOS方法
1. 查看8080端口状态
在终端中执行:
```text
lsof -iTCP:8080 -sTCP:LISTEN -n -P
```
如果看到进程名称和PID,说明8080端口正在被服务使用。
2. 使用Homebrew服务管理
如果本地服务由Homebrew维护:
关闭服务:
```text
brew services stop service_name
```
打开服务:
```text
brew services start service_name
```
3. 本地项目方式
如果8080端口由本地开发项目使用,可以在运行项目的终端中按`Ctrl+C`结束当前运行。需要打开时,再重新运行项目启动命令,例如:
```text
npm run start
python app.py
uvicorn main:app --port 8080
```
六、常见应用示例
1. Tomcat
Tomcat常见端口就是8080。
关闭:
```text
shutdown.sh
```
打开:
```text
startup.sh
```
端口配置通常在:
```text
conf/server.xml
```
关键配置项:
```text
```
2. Nginx
Nginx可以在配置文件中监听8080端口:
```text
server {
listen 8080;
server_name localhost;
}
```
修改后执行:
```text
sudo nginx -s reload
```
3. Node.js应用
代码中监听8080端口:
```js
app.listen(8080, () => {
console.log( 服务已启动,端口8080 );
});
```
启动命令示例:
```text
PORT=8080 npm run start
```
4. Python Uvicorn应用
```text
uvicorn main:app --port 8080
```
需要关闭时,在启动它的终端中按`Ctrl+C`。需要重新打开时,再运行同一条启动命令。
5. Spring Boot应用
在配置文件中设置:
```properties
server.port=8080
```
或者:
```yaml
server:
port: 8080
```
关闭应用时,停止对应Java进程或对应服务。打开应用时,启动对应Java进程或对应服务。
七、快速对照表
| 场景 | 查看8080端口 | 关闭端口 | 打开端口 | |
|---|---|---|---|---|
| Windows服务 | `netstat -ano | findstr :8080` | `net stop ServiceName` | `net start ServiceName` |
| Linux systemd服务 | `ss -lntp | grep 8080` | `sudo systemctl stop service_name` | `sudo systemctl start service_name` |
| Docker容器 | `docker ps` | `docker stop container_name` | `docker start container_name` | |
| macOS Homebrew服务 | `lsof -iTCP:8080 -sTCP:LISTEN` | `brew services stop service_name` | `brew services start service_name` | |
| Nginx | `ss -lntp | grep 8080` | `sudo systemctl stop nginx` | `sudo systemctl start nginx` |
| Tomcat | `ss -lntp | grep 8080` | `shutdown.sh` | `startup.sh` |
八、完成后的检查
1. Windows检查
再次执行:
```text
netstat -ano | findstr :8080
```
看到监听结果,说明8080端口已打开。查看不到监听结果,说明8080端口处于关闭状态。
2. Linux检查
再次执行:
```text
ss -lntp | grep 8080
```
看到服务名称和监听状态,说明8080端口已打开。查看不到结果,说明8080端口处于关闭状态。
3. macOS检查
再次执行:
```text
lsof -iTCP:8080 -sTCP:LISTEN -n -P
```
看到进程名,说明8080端口已打开。查看不到结果,说明8080端口处于关闭状态。
4. 服务器环境检查
查看防火墙规则,确认8080端口放行状态和需要保持一致。
九、使用建议
- • 本地开发常用8080端口,可按项目配置文件修改端口。
- • 服务器部署时,使用有管理权限的账户操作服务与防火墙规则。
- • 多服务环境里,保持端口、服务名称、部署路径清晰,便于后续维护。
- • 记录常用停止和启动命令,方便项目交接。
免责声明:以上内容仅作为网络运维知识分享,适用于有授权的开发和运维场景,请以所在环境的操作规范和授权为准。


