Linux 禁用23端口

禁用23端口

前言

23端口是用于Telnet服务的默认端口。Telnet是一种早期的网络协议,允许用户使用一个远程终端连接到远程计算机上,以便在远程计算机上执行命令和操作。通过输入用于Telnet服务器的IP地址和端口号,用户可以在本地计算机上打开一个终端窗口,并在远程计算机上操作。

然而,由于Telnet协议在传输过程中发送的数据是未经加密的明文,很容易被黑客攻击者截获和窃取。因此,现代的操作系统推荐使用更加安全的协议,如SSH(Secure Shell)来代替Telnet协议。在此情况下,23端口就没有被使用了,一些管理员可能会禁用它,以减少系统风险。

检查23端口是否被占用

使用如下命令,查看23端口是否被占用:

lsof -i:23
netstat -tulpn | grep :23

正常情况:23端口是没有被使用的。

如下图:可以直接使用 下面 的步骤一禁用23端口。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-0gMzs4EH-1684839966713)(img/Linux服务器禁用23端口.assets/image-20230523184117527.png)]

特殊情况:不排除个别系统使用了23端口。

如下图:执行 下面的 步骤一 + 步骤二禁用 + kill

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-awiw5Yro-1684839966716)(img/Linux服务器禁用23端口.assets/image-20230523184304348.png)]

查看 PID下面的所有子进程,进程树

# pstree -p  PID  
pstree -p 1

进程树状图1

对比 普通的 java程序 进程树结构

进程树状图2

这种情况,用常规的 kill -9 PID, 杀不掉 23端口的进程。因为 PID=1的进程是 systemd级别的.

看看 ChatGpt 是怎么处理的?

解决1

步骤一:vim /etc/services 编辑,禁用23端口是必要的。:wq保存修改。

禁用23端口

如果在禁用23端口后执行 systemctl restart networking 命令时报错 Failed to restart networking.service: Unit not found,那么有可能您正在使用的Linux发行版已经切换到了另一种网络管理工具,例如 Systemd-Networkd 或 NetworkManager,并且不再使用 networking 服务。

在这种情况下,您应该使用相应的命令来重启网络服务。例如,如果您正在使用 NetworkManager,则需要使用以下命令:

sudo systemctl restart NetworkManager

如果您正在使用 Systemd-Networkd,则需要使用以下命令:

sudo systemctl restart systemd-networkd

如果您不确定正在使用哪种网络管理工具,请在终端中运行以下命令进行检查:

systemctl status NetworkManager

systemctl status systemd-networkd

以上命令将显示当前系统中是否正在运行该服务。如果其中有一个被运行,则表示您的系统正在使用相应的网络管理工具。

步骤一,已经禁掉了23端口,可以cmd 使用 telnet ip:23检查是否能连上。但是23端口正在被占用的情况下,还需要手动停止23端口,停止23端口的占用,看步骤二

步骤二:禁用 systemd 在23端口上运行的服务

kill -9 PID杀不掉systemd占用的23端口 ,如下是 chatGpt提供的办法,亲测有效。

ChatGPT 步骤2-1

ChatGPT 步骤2-2

下面的文字版,按照下面步骤执行,可以禁用23端口

在这种情况下,23端口的服务是 systemd,该服务可能是其他服务的依赖项,因此禁用它可能会影响系统功能的正常运行。如果您确实想禁用该服务,则可以执行以下步骤:

  1. /etc/systemd/system 目录下创建一个新的 systemd 单元文件(例如 disable-systemd-telnet.service),并添加以下内容:
[Unit]
Description=Disable telnet service on systemd

[Service]
Type=oneshot
ExecStart=/bin/true
ExecStartPost=-/usr/bin/systemctl disable telnet.socket
ExecStartPost=-/usr/bin/systemctl stop telnet.socket
ExecStartPost=-/usr/bin/systemctl disable telnet@tty.service
ExecStartPost=-/usr/bin/systemctl stop telnet@tty.service

[Install]
WantedBy=multi-user.target
  1. 在终端中运行以下命令:
sudo systemctl daemon-reload
sudo systemctl enable disable-systemd-telnet.service
sudo systemctl start disable-systemd-telnet.service

这将创建一个新的系统服务,负责停止和禁用在系统上使用23端口的所有服务,然后启用和启动该服务以进行操作。

在禁用该服务之前,建议您仔细考虑影响和替代方案。禁用服务可能会导致系统某些功能无法正常工作。如果您不确定该服务是否可以安全地禁用,请考虑咨询相关领域的专业人士以获取帮助。

再用 lsof -i :23或者 sudo netstat -tulpn | grep :23测试,23端口是否已经不被占用了。执行命令没有信息显示,说明kill 23端口成功。

如果 后悔了,想启用23端口,怎么办?执行如下命令,停止 禁用23端口

sudo systemctl stop disable-systemd-telnet.service
  • 3
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值