# ubuntu14.04离线安装telnet

在 **Ubuntu 14.04** 上离线安装 Telnet（服务端），本质是：

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

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

---

# 一、需要安装的核心包

Ubuntu 14.04 Telnet 服务端通常需要：

- `telnetd`
- `xinetd`
- 可能的依赖包（libwrap0 等）

---

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

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

## 1️⃣ 建立下载目录

```bash
mkdir telnet_offline
cd telnet_offline

```

## 2️⃣ 下载所有依赖（关键命令）

```bash
apt-get install --download-only telnetd xinetd

```

下载后的包默认在：

```
/var/cache/apt/archives/

```

拷贝出来：

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

```

---

## 更干净的方法（推荐）

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

```

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

```bash
apt-get download 包名

```

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

---

# 三、拷贝到目标服务器

通过：

- scp
- U 盘
- 挂载 ISO
- 内网共享

把所有 `.deb` 文件放到：

```
/root/telnet_offline/

```

---

# 四、目标机离线安装

进入目录：

```bash
cd /root/telnet_offline

```

安装：

```bash
dpkg -i *.deb

```

如果提示依赖问题：

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

```

⚠ 注意：

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

---

# 五、启动服务

```bash
service xinetd restart

```

确认端口：

```bash
netstat -utpln | grep 23

```

---

# 六、极端离线场景（无同版本机器）

如果没有 Ubuntu 14.04 联网环境，可以：

### 方案 A：使用 Ubuntu 14.04 官方 ISO

挂载 ISO：

```bash
mount -o loop ubuntu-14.04.iso /mnt

```

然后：

```bash
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

```

安装顺序：

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

```

---

# 八、提醒（重要）

Telnet：

- 明文密码
- 无加密
- 公网绝对禁止
- 只能作为临时救援

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

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

在这种情况下：

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

---

# 更安全替代方案（强烈建议）

与其装 Telnet，不如：

```bash
/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 配置文件是否存在

执行：

```bash
ls -l /etc/xinetd.d/

```

看是否有：

```
telnet

```

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

---

# 二、手动创建 telnet xinetd 配置

创建文件：

```bash
vi /etc/xinetd.d/telnet

```

写入以下内容：

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

```

保存退出。

---

# 三、确认 in.telnetd 存在

执行：

```bash
ls -l /usr/sbin/in.telnetd

```

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

正常应该存在。

---

# 四、重启 xinetd

```bash
service xinetd restart

```

然后检查：

```bash
netstat -utpln | grep :23

```

正常应看到：

```
0.0.0.0:23 LISTEN

```

⚠ 注意：

xinetd 是“按需监听”，有时只显示在：

```bash
ss -lntp | grep 23

```

---

# 五、如果还是没有 23 端口

再检查 xinetd 是否读取配置：

```bash
grep telnet /etc/services

```

应该有：

```
telnet 23/tcp

```

然后查看日志：

```bash
tail -n 20 /var/log/syslog

```

看 xinetd 是否报错。

---

# 六、最常见原因

90% 情况是：

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

---

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

执行：

```bash
xinetd -d

```

会进入 debug 模式。

如果 telnet 服务被加载，会看到：

```
Service telnet added

```

---

# 八、补充说明

你现在 netstat 输出里没有 23：

说明：

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

---

# 九、重要提醒（你当前的场景）

你装 telnet 是为了：

> 给 ssh 重启前做备用通道

在这种情况下，我仍然建议：

## 比 telnet 更安全的方式

直接启动一个备用 ssh：

```bash
/usr/sbin/sshd -p 2222

```

然后测试：

```bash
ssh root@IP -p 2222

```

成功后再 restart 原 ssh。

这比 telnet 安全太多。

---

# 现在请你执行

```bash
ls /etc/xinetd.d/

```

把输出发我。

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