在 Debian 上“限制 telnet 访问”通常有几层含义,下面按常见场景给你说明做法(含强烈不建议使用 telnet 的前提说明)。
telnet 是明文协议,极其不安全,生产环境强烈建议用 SSH 替代。
如果只是为了兼容老设备:
telnetd(inetd 方式)Debian 传统 telnet 服务由 openbsd-inetd + telnetd 提供。
查看是否安装:
dpkg -l | grep -E 'telnetd|inetd'
如果你不需要 telnet:
sudo systemctl stop inetd
sudo systemctl disable inetd
或彻底卸载:
sudo apt remove telnetd openbsd-inetd
编辑:
sudo nano /etc/hosts.deny
加入:
telnetd: ALL
再编辑:
sudo nano /etc/hosts.allow
允许指定 IP:
telnetd: 192.168.1.100
telnetd: 10.0.0.0/24
这依赖
tcp_wrappers,openbsd-inetd支持。
sudo iptables -A INPUT -p tcp --dport 23 -s 192.168.1.0/24 -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 23 -j DROP
查看:
sudo iptables -L -n
编辑:
sudo nano /etc/inetd.conf
原行类似:
telnet stream tcp nowait root /usr/sbin/tcpd /usr/sbin/in.telnetd
改为只监听内网 IP(示例 192.168.1.10):
192.168.1.10:telnet stream tcp nowait root /usr/sbin/tcpd /usr/sbin/in.telnetd
重启:
sudo systemctl restart openbsd-inetd
sudo systemctl stop telnet.socket
sudo systemctl disable telnet.socket
从不允许的机器测试:
telnet <debian_ip>
应被拒绝或超时。
✅ 最佳做法:不用 telnet,用 SSH
✅ 必须用时:内网 + IP 白名单 + 防火墙
如果你能告诉我:
我可以给你更精确的配置方案。