在 Debian 上遇到 telnet 被拒绝(Connection refused),一般不是“被防火墙拦了”那么简单,Connection refused 通常意味着目标端口根本没有服务在监听。下面按最常见原因一步步排查。
telnet 目标IP 端口
例如:
telnet 192.168.1.100 23
如果是 23 端口(telnet 服务本身),那要先明确一件事:
Debian 默认不安装 telnet server,而且不推荐用 telnet(明文传输)
在目标机上执行:
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
很多人误用 telnet 测试端口,比如:
telnet 192.168.1.100 22 # SSH
telnet 192.168.1.100 80 # HTTP
如果是这样:
查看监听:
ss -lntp
例如 MySQL:
bind-address = 127.0.0.1
那么:
解决:
0.0.0.0⚠️ 注意:
查看:
sudo iptables -L -n
如果是 REJECT,放行端口:
sudo iptables -A INPUT -p tcp --dport 23 -j ACCEPT
例如 telnet 依赖 inetd:
systemctl status inetd
ssh user@ip
nc -vz ip port
| 现象 | 原因 |
|---|---|
| Connection refused | 端口无服务 |
| Timeout | 防火墙 / 网络不通 |
| 本机能连,远程不能 | 监听地址 / 防火墙 |
如果你愿意,可以告诉我:
cat /etc/debian_version)telnet 的 IP + 端口我可以直接帮你定位是哪一步的问题。