Linux 查看端口开放的简单技巧

1. 查看开放的端口

在Linux系统中,我们可以使用不同的命令来查看当前哪些端口是开放的。以下是几种常用的方法:

1.1 使用netstat命令

netstat命令是一个用来显示网络连接、路由表和网络接口信息的实用程序。我们可以使用netstat命令来查看当前所有的网络连接情况,包括已经建立的连接和监听中的端口。

netstat -tuln

上述命令会显示所有开放的TCP和UDP端口,包括它们的状态和监听地址。其中:

-t:显示TCP连接

-u:显示UDP连接

-l:只显示监听状态的端口

-n:以数字形式显示端口号

通过执行以上命令,我们可以得到一个类似如下的输出:

Active Internet connections (only servers)

Proto Recv-Q Send-Q Local Address Foreign Address State

tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN

tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN

udp 0 0 0.0.0.0:123 0.0.0.0:*

上述输出中的Local Address列显示了开放的端口和对应的IP地址。上面的例子显示了22端口和80端口是开放的。

1.2 使用ss命令

与netstat类似,ss命令也可以用来查看开放的端口。ss命令在新版本的Linux系统中已经取代了netstat命令,并且性能更好。以下是ss命令的用法:

ss -tuln

上述命令会显示所有的TCP和UDP监听端口,类似于netstat命令的输出。ss命令有以下几个常用的选项:

-t:显示TCP连接

-u:显示UDP连接

-l:只显示监听状态的端口

-n:以数字形式显示端口号

执行以上命令后,你将会得到类似以下的输出:

State       Recv-Q Send-Q       Local Address:Port          Peer Address:Port

LISTEN 0 128 *:22 *:*

LISTEN 0 128 *:80 *:*

类似于netstat命令的输出,上面的例子显示了22端口和80端口是开放的。

2. 确定端口占用的进程

除了查看开放的端口,我们还可以通过以下方法来确定哪些进程占用了特定的端口。

2.1 使用netstat命令

我们可以将netstat命令与grep命令结合使用,以便只显示某个特定端口的相关信息。以下是netstat命令结合grep命令的用法:

netstat -tuln | grep <port>

通过执行以上命令,我们可以找到占用指定端口的进程。其中,<port>是你想要查找的端口号。

2.2 使用lsof命令

lsof命令是用来列出开启某个端口的进程的详细信息。以下是lsof命令的用法:

lsof -i:<port>

运行以上命令,你将会得到类似以下的输出:

COMMAND   PID   USER   FD   TYPE DEVICE SIZE/OFF NODE NAME

sshd 1234 root 3u IPv4 12345 0t0 TCP *:22 (LISTEN)

上述输出中的PID列显示了占用指定端口的进程ID。

3. 防火墙对端口进行过滤

在Linux系统中,防火墙是一种用于保护网络安全的软件或硬件设备。它可以通过过滤某些端口的访问来提高网络的安全性。

防火墙可以使用iptables来进行配置。以下是一个配置防火墙的示例:

# 允许ssh连接(22端口)

iptables -A INPUT -p tcp --dport 22 -j ACCEPT

# 允许HTTP连接(80端口)

iptables -A INPUT -p tcp --dport 80 -j ACCEPT

# 允许HTTPS连接(443端口)

iptables -A INPUT -p tcp --dport 443 -j ACCEPT

# 默认拒绝其他连接

iptables -A INPUT -j DROP

以上示例配置了一个基本的防火墙,允许SSH、HTTP和HTTPS连接,并且拒绝所有其他连接。

使用时,可以将以上配置保存到一个脚本文件中,然后使用以下命令应用配置:

iptables-restore < filename

其中,filename是保存配置的脚本文件名。

4. 总结

本文介绍了在Linux系统中如何查看开放的端口的简单技巧。通过使用netstat命令或ss命令,我们可以轻松地查看当前开放的端口和对应的IP地址。如果需要确定占用端口的进程,可以使用netstat命令配合grep命令或者使用lsof命令。此外,我们还介绍了如何通过配置防火墙来过滤端口的访问。

在日常运维工作中,了解开放的端口并确保端口的安全是非常重要的。只有通过审查开放的端口,并限制访问这些端口的规则,我们才能够保证系统的安全性。

操作系统标签