如何通过Telnet连接虚拟机
在虚拟化技术日益普及的今天,许多开发者和系统管理员需要在虚拟机(VM)中进行网络配置、服务测试或远程管理,Telnet作为一种经典的远程协议,因其简单易用而被广泛用于基础的网络连接测试,本文将详细介绍如何通过Telnet连接虚拟机,涵盖环境准备、配置步骤、常见问题及安全注意事项,帮助读者顺利完成远程连接。

环境准备:确保虚拟机与宿主机网络互通
在尝试Telnet连接之前,需确保虚拟机与宿主机(或同一局域网内的其他设备)之间网络通信正常,以下是关键步骤:
-
虚拟机网络模式选择
虚拟机软件(如VMware、VirtualBox)通常提供多种网络模式,建议选择“桥接模式”(Bridged Mode),该模式下,虚拟机会直接连接到物理网络,获取与宿主机同网段的IP地址,便于其他设备访问,若选择“NAT模式”,需确保端口转发规则已配置。 -
获取虚拟机IP地址
在虚拟机操作系统中打开终端(Windows为CMD,Linux为Shell),执行ipconfig(Windows)或ifconfig/ip addr(Linux)命令,记录虚拟机的IP地址,Linux系统中输出可能为inet 192.168.1.100/24,则168.1.100即为目标IP。 -
检查宿主机防火墙设置
宿主机和虚拟机的防火墙可能会阻止Telnet连接,暂时关闭防火墙或添加入站规则以允许Telnet流量(默认端口23),Windows用户可通过“高级安全Windows防火墙”配置,Linux用户则使用iptables或firewalld。
虚拟机端Telnet服务安装与配置
大多数现代操作系统默认未安装Telnet服务,需手动启用。
-
Windows虚拟机
- 打开“控制面板”→“程序”→“启用或关闭Windows功能”。
- 勾选“Telnet客户端”和“Telnet服务器”,点击“确定”安装。
- 安装后,通过“服务”管理器启动“Telnet”服务,并设置“启动类型”为“自动”。
-
Linux虚拟机(以Ubuntu为例)

- 更新软件包列表:
sudo apt update - 安装Telnet服务器:
sudo apt install telnetd -y - 启动并设置开机自启:
sudo systemctl start telnetd&&sudo systemctl enable telnetd - 检查服务状态:
sudo systemctl status telnetd
- 更新软件包列表:
-
验证服务监听状态
在虚拟机中执行netstat -tuln | grep 23(Linux)或netstat -an | findstr 23(Windows),确认端口23处于LISTENING状态。
宿主机端通过Telnet连接虚拟机
完成上述配置后,即可从宿主机或其他设备发起连接。
-
Windows宿主机
- 打开CMD或PowerShell,输入命令:
telnet [虚拟机IP] [端口号]
示例:telnet 192.168.1.100 23 - 若连接成功,将显示登录界面(需输入虚拟机用户名和密码),若失败,检查网络连通性(
ping [虚拟机IP])及防火墙设置。
- 打开CMD或PowerShell,输入命令:
-
Linux/macOS宿主机
- 打开终端,执行相同命令:
telnet 192.168.1.100 23 - 部分系统可能未预装Telnet客户端,可通过包管理器安装(如Linux:
sudo apt install telnet)。
- 打开终端,执行相同命令:
-
使用图形化工具(可选)
若偏好图形界面,可尝试PuTTY、Tera Term等工具,在“协议”中选择“Telnet”,输入IP和端口后连接。
常见问题与解决方案
-
“连接超时”错误
- 原因:虚拟机未开启Telnet服务、防火墙拦截或网络不通。
- 解决:
- 确认虚拟机服务运行状态(
systemctl status telnetd)。 - 检查宿主机和虚拟机防火墙规则。
- 使用
ping测试网络连通性,若ping不通,检查虚拟机网络模式或IP配置。
- 确认虚拟机服务运行状态(
-
“拒绝连接”错误

- 原因:端口未开放或服务未绑定IP。
- 解决:
- Linux虚拟机编辑
/etc/inetd.conf或/etc/xinetd.d/telnet,确保disable = no; - Windows虚拟机检查“Telnet服务器”属性中的IP绑定设置。
- Linux虚拟机编辑
-
连接后无法输入字符
- 原因:终端编码不匹配或权限问题。
- 解决:尝试在Telnet命令后添加
/ locale(Windows)或调整终端编码设置。
安全注意事项
Telnet协议以明文传输数据,存在安全隐患,因此在生产环境中需谨慎使用:
-
限制访问IP
通过防火墙规则仅允许特定IP地址访问Telnet端口,- Linux:
sudo iptables -A INPUT -p tcp --dport 23 -s [允许的IP] -j ACCEPT - Windows:在防火墙高级安全中创建“入站规则”,指定源IP。
- Linux:
-
替换为更安全的协议
若涉及敏感操作,建议使用SSH(Secure Shell)替代Telnet,SSH提供加密传输和更强的身份验证,Linux系统可通过sudo apt install openssh-server安装SSH服务。 -
定期更新与审计
保持虚拟机操作系统和Telnet服务补丁最新,定期检查登录日志(如Linux的/var/log/auth.log),监控异常访问。

















