首页 » 生活 » 教你轻松搞定LINUX开放端口和关闭端口

教你轻松搞定LINUX开放端口和关闭端口

大莫与京 2025-10-05 1 0

扫一扫用手机浏览

文章目录 [+]

教你轻松搞定LINUX开放端口和关闭端口

大家好呀!作为一个经常和Linux打交道的小编,今天想和大家聊聊关于Linux端口管理的那点事儿。说实话,刚开始接触Linux的时候,我对端口这个概念也是一头雾水,总觉得特别高大上。但后来发现,其实掌握了几个简单的命令,就能轻松搞定端口的开放和关闭。今天我就把这些小技巧分享给大家,保证让你看完就能上手操作!

端口是什么?为什么需要管理它?

首先咱们得搞清楚什么是端口。简单来说,端口就像是计算机上的一个个小门,不同的服务通过不同的门进出。比如网页服务通常走80端口,SSH远程登录走22端口。每个端口都有一个编号,范围是从0到65535。

教你轻松搞定LINUX开放端口和关闭端口

为什么要管理端口呢?这就像你家的门一样,不能的门都开着对吧?有些门需要打开让客人进来(比如你运行的web服务),有些门则需要关上防止坏人闯入(比如那些你不需要的服务)。管理好端口,既能保证需要的服务正常运行,又能提高系统的安全性。

查看当前开放的端口

在开始开放或关闭端口之前,咱们得先知道现在系统上哪些端口是开着的。这里有个超级实用的命令:

bash

教你轻松搞定LINUX开放端口和关闭端口

sudo netstat -tuln

或者用这个更现代的命令:

bash

sudo ss -tuln

这两个命令都能列出当前正在监听的TCP和UDP端口。输出可能看起来有点复杂,但其实主要关注这几列:

1. Proto:协议类型(TCP或UDP)

2. Local Address:本地地址和端口号

3. State:状态(LISTEN表示正在监听)

如果你觉得这些信息太多,可以配合grep过滤一下:

bash

sudo ss -tuln | grep LISTEN

开放端口的方法

好了,现在咱们来说说怎么开放端口。在Linux中,开放端口通常意味着两件事:

1. 配置服务监听特定端口

2. 配置防火墙允许该端口的流量

1. 通过防火墙开放端口

大多数现代Linux发行版都使用firewalld或ufw作为防火墙工具。我更喜欢ufw,因为它超级简单易用。

使用ufw开放端口:

bash

sudo ufw allow 端口号

比如要开放80端口:

bash

sudo ufw allow 80

如果你想指定协议(TCP或UDP):

bash

sudo ufw allow 53/udp 开放53端口UDP协议

sudo ufw allow 22/tcp 开放22端口TCP协议

开放后别忘了启用ufw(如果还没启用的话):

bash

sudo ufw enable

使用firewalld开放端口:

如果你的系统用的是firewalld,命令稍微不同:

bash

sudo firewall-cmd --permanent --add-port=端口号/协议

sudo firewall-cmd --reload

例如开放8080端口TCP协议:

bash

sudo firewall-cmd --permanent --add-port=8080/tcp

sudo firewall-cmd --reload

2. 配置服务监听端口

有时候开放防火墙还不够,还需要确保有服务在监听这个端口。比如你想开放80端口跑web服务,那就得安装并配置像Apache或Nginx这样的web服务器。

以Nginx为例,安装后默认就会监听80端口。如果你需要修改监听端口,可以编辑Nginx的配置文件:

bash

sudo nano /etc/nginx/sites-available/default

找到listen指令,修改端口号,然后重启Nginx:

bash

sudo systemctl restart nginx

关闭端口的方法

有时候某些端口开着反而有安全风险,这时候就需要关闭它们。关闭端口也分两种情况:

1. 通过防火墙关闭端口

ufw关闭端口:

bash

sudo ufw deny 端口号

或者更精确地:

bash

sudo ufw delete allow 端口号

firewalld关闭端口:

bash

sudo firewall-cmd --permanent --remove-port=端口号/协议

sudo firewall-cmd --reload

2. 停止监听端口的服务

如果某个服务正在监听你想关闭的端口,仅仅通过防火墙阻止还不够,好直接停止或禁用该服务。

首先找出哪个服务在使用这个端口:

bash

sudo lsof -i :端口号

然后根据输出停止相应服务。比如发现是Apache在使用80端口:

bash

sudo systemctl stop apache2

如果你想永久禁用这个服务:

bash

sudo systemctl disable apache2

常用端口一览表

为了帮助大家更好地理解,我整理了一个常见端口及其用途的

- - - - -
端口号 协议 常见服务 建议
TCP SSH 必要但应限制访问IP
TCP HTTP Web服务器需要
TCP HTTPS 安全Web服务器需要
TCP FTP 不安全,建议用SFTP替代
TCP MySQL 数据库端口,应限制访问

安全小贴士

在管理端口时,安全永远是位的。这里分享几个小技巧:

1. 小化开放原则:只开放真正需要的端口,其他关闭。

2. 定期检查:时不时用netstat或ss命令检查一下哪些端口是开放的。

3. 更改默认端口:比如SSH默认22端口,可以改成其他高端口号,减少被扫描攻击的风险。

4. 使用fail2ban:这个工具可以自动封禁多次尝试失败的IP,保护你的服务。

5. 防火墙日志:开启防火墙日志,定期检查异常连接尝试。

常见问题解决

在实际操作中,可能会遇到一些小这里列举几个常见情况:

端口已经开放,但还是无法访问?

1. 检查服务是否真的在监听:sudo ss -tuln | grep 端口号

2. 检查防火墙规则:sudo ufw status 或 sudo firewall-cmd --list-all

3. 检查云服务商的安全组规则(如果是云服务器)

想用的端口被占用了怎么办?

先用sudo lsof -i :端口号找出是哪个进程占用了端口,然后:

1. 如果是必要服务,考虑换个端口

2. 如果不是必要服务,可以停止它

修改了防火墙规则但不生效?

记得firewalld修改后要--reload,ufw修改后可能需要sudo ufw disable然后sudo ufw enable。

实际案例分享

让我分享一个我自己的经历。有一次我需要在一台服务器上部署一个Node.js应用,想用3000端口。按照步骤:

1. 先检查3000端口是否可用:

bash

sudo ss -tuln | grep 3000

发现没有被占用。

2. 启动Node.js应用监听3000端口。

3. 开放防火墙:

bash

sudo ufw allow 3000/tcp

sudo ufw enable

4. 从另一台机器测试连接:

bash

telnet 服务器IP 3000

发现连接失败!

经过排查,发现是云服务商的安全组没有放行3000端口。在云控制台添加安全组规则后,一切正常了。这个小插曲告诉我,不仅要关注系统本身的防火墙,还要注意云平台的安全设置。

自动化脚本小技巧

如果你经常需要管理端口,可以写些小脚本简化工作。比如创建一个开放端口的脚本open_port.sh:

bash

!/bin/bash

if [ -z "$1" ]; then

echo "Usage: $0 端口号 [协议]"

exit 1

fi

PORT=$1

PROTOCOL=${2:-tcp}

echo "开放 $PORT/$PROTOCOL 端口"

sudo ufw allow $PORT/$PROTOCOL

sudo ufw reload

echo "当前防火墙状态:"

sudo ufw status

记得给脚本执行权限:chmod +x open_port.sh,然后就可以这样使用:

bash

./open_port.sh 8080

./open_port.sh 53 udp

类似的,你也可以创建一个关闭端口的脚本。

结语

看,Linux端口管理其实并不难对吧?只要掌握几个基本命令,理解端口和服务的关系,再加上防火墙的配置,你就能轻松掌控服务器的门户了。记住,安全无小事,开放端口时要谨慎,定期检查不必要的开放端口。

你在管理Linux端口时遇到过什么有趣的问题吗?或者有什么特别实用的技巧想分享给大家?欢迎在评论区聊聊你的经验!

相关文章

黄花鱼的营养价值高适合哪些人群食用

黄花鱼的营养价值高适合哪些人群食用 大家好呀!今天咱们来聊聊黄花鱼这个美味又营养的海鲜,作为一个经常在菜市场转悠的小编,我可太了解...

生活 2025-10-05 0 0

咖啡机怎么用常见问题解答一学就会

咖啡机怎么用常见问题解答一学就会 大家好呀!作为一个每天靠咖啡续命的"咖啡星人",今天想和大家聊聊咖啡机的使用说实话,次面对咖啡机...

生活 2025-10-05 1 0