linux和端口相关的命令总结

·
2025-05-07 18:44:22

在Linux中,端口管理和网络相关操作是非常常见的任务。以下是一些常用的与端口相关的Linux命令及其简要介绍:

1. 查看端口占用情况

netstat:查看网络连接、路由表、接口统计信息等。常用于检查端口占用。

netstat -tulnp 选项:

-t: 显示TCP端口-u: 显示UDP端口-l: 只显示监听的服务-n: 以数字形式显示端口号-p 表示显示使用该端口的进程ID和程序名称

例如,要查看哪个程序占用了8080端口,可以运行:

netstat -tulnp | grep 8080

ss:ss 命令比 netstat 更加高效和现代化,用于显示套接字统计信息。

ss -tuln lsof:列出打开的文件,包括网络连接。

lsof -i :PORT_NUMBER 其中,PORT_NUMBER 是要查询的端口号。

2. 查找某个进程占用的端口

fuser:查找哪些进程占用了某个端口。 fuser -n tcp PORT_NUMBER 例子: fuser -n tcp 80

3. 打开或关闭防火墙端口

iptables:Linux系统中传统的防火墙管理工具(现代系统上已被nftables取代,但在很多旧系统中仍然使用)。

打开端口(例如80端口): iptables -A INPUT -p tcp --dport 80 -j ACCEPT 关闭端口:

iptables -D INPUT -p tcp --dport 80 -j ACCEPT firewalld:firewalld 是现代Linux系统的防火墙管理工具,取代了传统的 iptables。

打开端口: firewall-cmd --zone=public --add-port=80/tcp --permanent

firewall-cmd --reload 关闭端口: firewall-cmd --zone=public --remove-port=80/tcp --permanent

firewall-cmd --reload

4. 测试端口是否开放

telnet:检查远程主机某个端口是否打开。

telnet IP_ADDRESS PORT_NUMBER 如果端口开放,会出现连接提示;如果端口未开放,则可能显示“连接失败”或超时。

nc (Netcat):一个强大的网络工具,可以用来测试端口是否开放。

nc -zv IP_ADDRESS PORT_NUMBER nmap:用于网络扫描和端口检查的强大工具。

扫描开放的端口: nmap IP_ADDRESS 扫描指定的端口范围: nmap -p 1-1000 IP_ADDRESS

5. 端口转发

ssh 端口转发:

本地端口转发: ssh -L LOCAL_PORT:REMOTE_ADDRESS:REMOTE_PORT user@remote_host 远程端口转发: ssh -R REMOTE_PORT:LOCAL_ADDRESS:LOCAL_PORT user@remote_host

6. 修改服务的默认端口

配置文件中的端口修改可以参考不同服务的文档。例如,修改SSH服务的默认端口(通常是22):

编辑 /etc/ssh/sshd_config 文件。 sudo vim /etc/ssh/sshd_config 找到 #Port 22,取消注释并修改为需要的端口号。重启SSH服务: sudo systemctl restart sshd

7. 杀掉占用端口的进程

kill:先通过 netstat、lsof 或 fuser 查找到占用端口的进程ID (PID),然后使用 kill 命令终止该进程。 kill -9 PID

8. 监控网络连接状态

iftop:实时监控网络流量的工具,可以查看哪些端口和IP正在传输数据。 iftop

9. 持续监听某个端口的流量

tcpdump:用于抓取网络数据包,可以用于分析某个端口的数据流。 tcpdump -i INTERFACE port PORT_NUMBER

10. 查看某个端口的服务

getent:查找指定端口对应的服务名称。 getent services PORT_NUMBER

11. 查看已打开的网络连接

ss:查看系统中的活动连接。 ss -atn

以上命令涵盖了从端口占用查询、测试到防火墙配置、进程管理等各个方面的端口管理操作,常用于网络排错和服务器管理。