Skip to main content

ubuntu14.04离线安装telnet

Ubuntu 14.04 上离线安装 Telnet(服务端),本质是:

在有网络的机器下载 .deb 依赖包 → 拷贝到目标机 → 本地安装

下面给你标准可执行流程。


一、需要安装的核心包

Ubuntu 14.04 Telnet 服务端通常需要:

  • telnetd

  • xinetd

  • 可能的依赖包(libwrap0 等)


二、有网机器上下载离线包

假设一台同版本 Ubuntu 14.04 可联网。

1️⃣ 建立下载目录

mkdir telnet_offline
cd telnet_offline

2️⃣ 下载所有依赖(关键命令)

apt-get install --download-only telnetd xinetd

下载后的包默认在:

/var/cache/apt/archives/

拷贝出来:

cp /var/cache/apt/archives/*.deb ~/telnet_offline/

更干净的方法(推荐)

apt-get download telnetd xinetd
apt-cache depends telnetd xinetd

然后把依赖包也逐个下载:

apt-get download 包名

但 14.04 比较老,直接用 --download-only 更简单。


三、拷贝到目标服务器

通过:

  • scp

  • U 盘

  • 挂载 ISO

  • 内网共享

把所有 .deb 文件放到:

/root/telnet_offline/

四、目标机离线安装

进入目录:

cd /root/telnet_offline

安装:

dpkg -i *.deb

如果提示依赖问题:

dpkg -i *.deb
apt-get -f install

⚠ 注意:

apt-get -f install 不能联网,否则会报错。
在完全离线情况下,只要依赖包齐全,dpkg 即可成功。


五、启动服务

service xinetd restart

确认端口:

netstat -utpln | grep 23

六、极端离线场景(无同版本机器)

如果没有 Ubuntu 14.04 联网环境,可以:

方案 A:使用 Ubuntu 14.04 官方 ISO

挂载 ISO:

mount -o loop ubuntu-14.04.iso /mnt

然后:

dpkg -i /mnt/pool/main/t/telnetd/*.deb

方案 B:直接手动下载(旧源地址)

Ubuntu 14.04 属于 old-releases:

http://old-releases.ubuntu.com/ubuntu/pool/main/t/telnetd/

用浏览器下载对应版本的:

  • telnetd_xxx.deb

  • xinetd_xxx.deb

  • libwrap0_xxx.deb


七、最小依赖组合(经验值)

Ubuntu 14.04 通常只需:

libwrap0
xinetd
telnetd

安装顺序:

dpkg -i libwrap0*.deb
dpkg -i xinetd*.deb
dpkg -i telnetd*.deb

八、提醒(重要)

Telnet:

  • 明文密码

  • 无加密

  • 公网绝对禁止

  • 只能作为临时救援

你现在的真实目的应该是:

在重启 ssh 之前准备一个备用通道

在这种情况下:

✔ 安装
✔ 测试可登录
✔ 重启 ssh
✔ ssh 正常后立即删除 telnet


更安全替代方案(强烈建议)

与其装 Telnet,不如:

/usr/sbin/sshd -p 2222

启动第二个 SSH 实例

这比 Telnet 安全 100 倍。


你的安装是成功的,但 telnet 服务并没有被 xinetd 启用,所以没有监听 23 端口。

从你输出看:

  • xinetd 已运行

  • telnetd 已安装

  • xinetd 没有加载 telnet 服务配置

  • 所以 23 不监听

这是 Ubuntu 14.04 的一个典型问题:
telnetd 安装后不会自动在 /etc/xinetd.d/ 生成 telnet 配置。


一、确认 telnet 配置文件是否存在

执行:

ls -l /etc/xinetd.d/

看是否有:

telnet

如果没有这个文件 → 必须手动创建。


二、手动创建 telnet xinetd 配置

创建文件:

vi /etc/xinetd.d/telnet

写入以下内容:

service telnet
{
    disable         = no
    flags           = REUSE
    socket_type     = stream
    wait            = no
    user            = root
    server          = /usr/sbin/in.telnetd
    log_on_failure  += USERID
}

保存退出。


三、确认 in.telnetd 存在

执行:

ls -l /usr/sbin/in.telnetd

如果不存在,说明 telnetd 包异常。

正常应该存在。


四、重启 xinetd

service xinetd restart

然后检查:

netstat -utpln | grep :23

正常应看到:

0.0.0.0:23 LISTEN

⚠ 注意:

xinetd 是“按需监听”,有时只显示在:

ss -lntp | grep 23

五、如果还是没有 23 端口

再检查 xinetd 是否读取配置:

grep telnet /etc/services

应该有:

telnet 23/tcp

然后查看日志:

tail -n 20 /var/log/syslog

看 xinetd 是否报错。


六、最常见原因

90% 情况是:

/etc/xinetd.d/telnet 不存在
或者 disable = yes


七、确认 xinetd 是否真的加载了 telnet

执行:

xinetd -d

会进入 debug 模式。

如果 telnet 服务被加载,会看到:

Service telnet added

八、补充说明

你现在 netstat 输出里没有 23:

说明:

✔ telnetd 安装成功
✔ xinetd 在运行
❌ 但 telnet 服务未启用


九、重要提醒(你当前的场景)

你装 telnet 是为了:

给 ssh 重启前做备用通道

在这种情况下,我仍然建议:

比 telnet 更安全的方式

直接启动一个备用 ssh:

/usr/sbin/sshd -p 2222

然后测试:

ssh root@IP -p 2222

成功后再 restart 原 ssh。

这比 telnet 安全太多。


现在请你执行

ls /etc/xinetd.d/

把输出发我。

我可以 10 秒内判断问题点。