linux 命令开放端口

本文介绍如何在 CentOS 系统中通过 firewall-cmd 命令添加端口、重新载入配置以及重启防火墙服务。具体步骤包括使用 --permanent 参数使设置永久生效,确保更改不会因系统重启而丢失。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1 、添加端口

firewall-cmd --zone=public --add-port=80/tcp --permanent  
 --permanent永久生效,没有此参数重启后失效

2、重新载入

firewall-cmd --reload

3、重启防火墙

systemctl restart firewalld.service
<think>我们使用`netstat`和`ss`命令来查看Linux系统上开放端口。这两个命令都可以提供网络连接、路由表、接口统计等信息。其中,`ss`命令是`netstat`的替代品,它能够显示更详细的TCP状态信息,并且在处理大量连接时速度更快。###1.使用`netstat`命令`netstat`(networkstatistics)是一个命令行工具,用于显示网络连接(传入和传出)、路由表、接口统计等。查看所有开放端口(监听和非监听的都显示):```bashnetstat-a```查看所有正在监听的TCP端口:```bashnetstat-ltn```-`-l`:仅显示监听状态的套接字。-`-t`:仅显示TCP连接。-`-n`:以数字形式显示地址和端口号(而不是尝试解析主机名、服务名)。查看所有正在监听的UDP端口:```bashnetstat-lun```查看所有正在监听的TCP和UDP端口:```bashnetstat-ltun```###2.使用`ss`命令`ss`(socketstatistics)是一个用来调查套接字的工具。它比`netstat`更快,并且提供了更多的信息。查看所有开放端口(监听和非监听的都显示):```bashss-a```查看所有正在监听的TCP端口:```bashss-ltn```-`-l`:显示监听状态的套接字。-`-t`:TCP套接字。-`-n`:不解析服务名称。查看所有正在监听的UDP端口:```bashss-lun```查看所有正在监听的TCP和UDP端口:```bashss-ltun```###3.使用`lsof`命令`lsof`(listopenfiles)可以列出当前系统打开的文件。在Linux中,一切皆文件,包括网络连接。查看所有打开的网络端口(包括监听和非监听的):```bashlsof-i```查看所有监听的TCP和UDP端口:```bashlsof-i-sTCP:LISTEN```###4.使用`nmap`扫描本地端口`nmap`是一个网络探测和安全审核工具。它可以用来扫描本地主机上的开放端口。扫描本地主机:```bashnmaplocalhost```扫描特定IP地址的主机:```bashnmap127.0.0.1```###总结以上命令中,`netstat`和`ss`是最常用的。`ss`是推荐使用的工具,因为它更快速且信息更详细。###示例:使用ss查看监听端口```bashss-ltn```输出可能如下:```StateRecv-QSend-QLocalAddress:PortPeerAddress:PortLISTEN01280.0.0.0:220.0.0.0:*LISTEN01000.0.0.0:250.0.0.0:*LISTEN0128[::]:22[::]:*LISTEN0100[::]:25[::]:*```这表示系统正在监听22端口(SSH)和25端口(SMTP)的IPv4和IPv6连接。###注意:-这些命令通常需要root权限才能显示所有端口信息。如果以普通用户运行,可能看不到某些端口。-如果系统没有安装这些命令,可以使用包管理器安装(如`apt`、`yum`等)。###§§相关问题§§:1.如何查看Linux系统上特定端口(例如80端口)是否被占用?2.如何查看某个进程(例如nginx)占用的端口?3.如何查看所有网络接口的统计信息?4.如何实时监控网络连接和端口状态?</think>### Linux查看开放端口命令Linux系统中,查看开放端口常用的命令有 **`netstat`**、**`ss`** 和 **`lsof`**。以下是详细使用方法: --- #### 1. **`netstat` 命令**(传统工具,部分新系统需手动安装) ```bash # 查看所有监听端口(TCP/UDP) sudo netstat -tuln # 解释参数: # -t: 显示TCP端口 # -u: 显示UDP端口 # -l: 仅显示监听状态的端口 # -n: 以数字形式显示端口(不解析服务名) # -p: 显示关联进程(需sudo) ``` **示例输出:** ``` Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1234/sshd tcp6 0 0 :::80 :::* LISTEN 5678/nginx ``` --- #### 2. **`ss` 命令**(`netstat`的现代替代,性能更高) ```bash # 查看所有监听端口 sudo ss -tuln # 参数同netstat: # -t: TCP, -u: UDP, -l: 监听, -n: 数字端口 # -p: 显示进程(需sudo) ``` **优势:** 执行速度更快,输出更简洁。 --- #### 3. **`lsof` 命令**(通过进程视角查看) ```bash # 查看所有监听端口 sudo lsof -i -P -n | grep LISTEN # 参数解释: # -i: 显示网络连接 # -P: 禁用端口名解析(显示数字端口) # -n: 禁用主机名解析(显示IP) ``` **示例输出:** ``` sshd 1234 root 3u IPv4 0xffff 0t0 TCP *:22 (LISTEN) nginx 5678 root 6u IPv6 0xeeee 0t0 TCP *:80 (LISTEN) ``` --- ### 常见场景示例 1. **检查特定端口(如80)是否开放**: ```bash sudo ss -tln | grep ':80' ``` 2. **查看进程占用的端口**(如Nginx): ```bash sudo lsof -p $(pgrep nginx) -nP -i ``` 3. **同时显示进程名和端口**: ```bash sudo netstat -tulnp ``` --- ### 注意事项 1. 需要 **`root`权限**(`sudo`)查看所有端口和进程信息。 2. 若命令不存在: - 安装`net-tools`包(含`netstat`):`sudo apt install net-tools` - 安装`lsof`:`sudo apt install lsof` --- ### 选择建议 - **推荐使用`ss`**:效率高,默认预装在现代Linux发行版。 - **调试进程用`lsof`**:查看具体进程的端口占用。 - **兼容性用`netstat`**:旧系统支持更好。 --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值