温馨提示×

linux telnet如何批量用

小樊
43
2026-10-09 12:29:20
栏目: 智能运维

在 Linux 下做 telnet 批量操作,通常有三种常见场景和做法。下面按「实用性」从高到低给你说明。


一、用 expect 批量 telnet(最常用 ✅)

telnet 本身不支持脚本输入密码/交互,所以要配合 expect。

1️⃣ 安装 expect

yum install expect        # CentOS
apt install expect        # Ubuntu

2️⃣ 批量 telnet 执行命令示例

#!/usr/bin/expect

set host [lindex $argv 0]
set port [lindex $argv 1]

spawn telnet $host $port
expect "login:"
send "admin\r"
expect "Password:"
send "123456\r"
expect "#"
send "show version\r"
send "exit\r"
interact

3️⃣ 批量执行

for ip in 192.168.1.1 192.168.1.2 192.168.1.3; do
  ./telnet.sh $ip 23
done

二、用 telnet + here document(简单但不支持密码)

适合 无需登录认证 的设备(如某些内网服务)。

telnet 192.168.1.1 23 <<EOF
command1
command2
exit
EOF

❌ 缺点:遇到 login / password 会失败


三、用 nc / bash 伪装 telnet(进阶)

exec 3<>/dev/tcp/192.168.1.1/23
echo "command" >&3
cat <&3

适合 纯 TCP 协议测试,不是真正 telnet 交互。


四、推荐方案(真实运维)

✅ 不要长期用 telnet

  • 不安全(明文)
  • 难维护

✅ 推荐替代:

  • ssh + ansible(最推荐)
  • expect + ssh
  • 网络设备用 netmiko / paramiko(Python)

五、我可以帮你

如果你告诉我:

  • 是 网络设备(交换机/路由器) 还是 Linux 服务
  • 是否需要 登录密码
  • 想执行什么命令

我可以直接给你 可用脚本。

0 踩