温馨提示×

debian telnet被拒绝咋办

小樊
33
2026-10-16 08:32:33
栏目: 智能运维

在 Debian 上遇到 telnet 被拒绝(Connection refused),一般不是“被防火墙拦了”那么简单,Connection refused 通常意味着目标端口根本没有服务在监听。下面按最常见原因一步步排查。


一、先确认你连的是什么

telnet 目标IP 端口

例如:

telnet 192.168.1.100 23

如果是 23 端口(telnet 服务本身),那要先明确一件事:

Debian 默认不安装 telnet server,而且不推荐用 telnet(明文传输)


二、常见原因与解决办法

1️⃣ 目标机没装 / 没开 telnet 服务(最常见)

检查是否监听 23 端口

在目标机上执行:

ss -lntp | grep :23
# 或
netstat -lntp | grep :23

如果没有任何输出 → 没有 telnet 服务在运行

安装(不推荐,仅测试用)

sudo apt update
sudo apt install telnetd
sudo systemctl enable inetd
sudo systemctl start inetd

然后再看:

ss -lntp | grep :23

2️⃣ 你其实想连的是别的服务(SSH / HTTP 等)

很多人误用 telnet 测试端口,比如:

telnet 192.168.1.100 22   # SSH
telnet 192.168.1.100 80   # HTTP

如果是这样:

  • 22 被拒 → SSH 没开
  • 80 被拒 → Web 服务没起

查看监听:

ss -lntp

3️⃣ 服务监听在 127.0.0.1,不是 0.0.0.0

例如 MySQL:

bind-address = 127.0.0.1

那么:

  • 本机 telnet 127.0.0.1 3306 ✅
  • 远程 telnet IP 3306 ❌(refused)

解决:

  • 改配置监听 0.0.0.0
  • 或只在本地访问

4️⃣ 防火墙(较少导致 refused)

⚠️ 注意:

  • iptables / nftables DROP → 超时
  • REJECT → Connection refused

查看:

sudo iptables -L -n

如果是 REJECT,放行端口:

sudo iptables -A INPUT -p tcp --dport 23 -j ACCEPT

5️⃣ systemd 服务没起

例如 telnet 依赖 inetd:

systemctl status inetd

三、强烈建议的替代方案

✅ 用 SSH 代替 telnet(安全)

ssh user@ip

✅ 测试端口用 nc / ssh

nc -vz ip port

四、快速判断流程(总结)

现象 原因
Connection refused 端口无服务
Timeout 防火墙 / 网络不通
本机能连,远程不能 监听地址 / 防火墙

如果你愿意,可以告诉我:

  • Debian 版本(cat /etc/debian_version)
  • 你 telnet 的 IP + 端口
  • 是本机还是远程

我可以直接帮你定位是哪一步的问题。

0 踩