前言
23端口是用于Telnet服务的默认端口。Telnet是一种早期的网络协议,允许用户使用一个远程终端连接到远程计算机上,以便在远程计算机上执行命令和操作。通过输入用于Telnet服务器的IP地址和端口号,用户可以在本地计算机上打开一个终端窗口,并在远程计算机上操作。
然而,由于Telnet协议在传输过程中发送的数据是未经加密的明文,很容易被黑客攻击者截获和窃取。因此,现代的操作系统推荐使用更加安全的协议,如SSH(Secure Shell)来代替Telnet协议。在此情况下,23端口就没有被使用了,一些管理员可能会禁用它,以减少系统风险。
检查23端口是否被占用
使用如下命令,查看23端口是否被占用:
lsof -i:23
netstat -tulpn | grep :23
正常情况:23端口是没有被使用的。
如下图:可以直接使用 下面 的步骤一禁用23端口。
特殊情况:不排除个别系统使用了23端口。
如下图:执行 下面的 步骤一 + 步骤二 ,禁用 + kill
查看 PID下面的所有子进程,进程树
# pstree -p PID
pstree -p 1
对比 普通的
java
程序 进程树结构
这种情况,用常规的 kill -9 PID
, 杀不掉 23端口的进程。因为 PID=1的进程是 systemd
级别的.
看看 ChatGpt 是怎么处理的?
步骤一:vim /etc/services
编辑,禁用23端口是必要的。:wq
保存修改。
如果在禁用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
提供的办法,亲测有效。
下面的文字版,按照下面步骤执行,可以禁用23端口
在这种情况下,23端口的服务是 systemd,该服务可能是其他服务的依赖项,因此禁用它可能会影响系统功能的正常运行。如果您确实想禁用该服务,则可以执行以下步骤:
- 在
/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
- 在终端中运行以下命令:
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