Telnet 精简介绍

Telnet 精简介绍

基本概念

Telnet是一个网络协议和命令行工具,主要用于:

  • 端口连通性测试 (最常用)
  • 远程登录 (已不推荐,不安全)
  • 网络协议调试

基本语法

bash 复制代码
telnet [主机] [端口]

常用测试场景

1. 端口连通性测试

bash 复制代码
# 测试Web服务
telnet google.com 80
telnet google.com 443

# 测试SSH
telnet github.com 22

# 测试数据库
telnet localhost 3306    # MySQL
telnet localhost 5432    # PostgreSQL
telnet localhost 6379    # Redis

2. HTTP协议测试

bash 复制代码
telnet google.com 80
# 连接后输入:
GET / HTTP/1.1
Host: google.com
# 按两次回车

3. 邮件服务测试

bash 复制代码
# SMTP测试
telnet smtp.gmail.com 587
# 输入: EHLO test.com

# POP3测试  
telnet pop.gmail.com 110

退出方式

bash 复制代码
# 方法1: 在连接状态下
Ctrl + ]          # 进入telnet命令模式
quit              # 退出

# 方法2: 强制退出
Ctrl + C          # 直接断开

结果判断

  • 连接成功: 显示 "Connected to..."
  • 连接失败: 显示 "Connection refused" 或超时

在你的CLI工具中集成

python 复制代码
# 在现有代码最后添加

import subprocess
import socket
import time

class TelnetTester:
    """简单的Telnet测试器"""
    
    def test_port(self, host, port, timeout=5):
        """测试端口连通性"""
        try:
            sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
            sock.settimeout(timeout)
            result = sock.connect_ex((host, port))
            sock.close()
            
            if result == 0:
                print(f"✅ {host}:{port} 连通")
                return True
            else:
                print(f"❌ {host}:{port} 不通")
                return False
        except Exception as e:
            print(f"❌ {host}:{port} 错误: {e}")
            return False

# 在main()函数中添加telnet命令支持
def enhanced_main():
    """增强版主函数,支持telnet测试"""
    parser = create_parser()
    
    # 添加telnet子命令
    subparsers = parser._subparsers._group_actions[0]
    telnet_parser = subparsers.add_parser("telnet", help="端口连通性测试")
    telnet_parser.add_argument("host", help="目标主机")
    telnet_parser.add_argument("port", type=int, help="目标端口")
    
    args = parser.parse_args()
    
    if not args.command:
        parser.print_help()
        sys.exit(1)
    
    if args.command == "telnet":
        tester = TelnetTester()
        tester.test_port(args.host, args.port)
        return
    
    # 原有的任务管理逻辑
    task_manager = TaskManager(args.data_file)
    
    try:
        if args.command == "add":
            task_manager.add_task(args.title, args.description, args.priority)
        elif args.command == "list":
            task_manager.list_tasks(show_completed=args.all)
        elif args.command == "complete":
            task_manager.complete_task(args.task_id)
        elif args.command == "delete":
            task_manager.delete_task(args.task_id)
        elif args.command == "search":
            task_manager.search_tasks(args.keyword)
        elif args.command == "stats":
            task_manager.stats()
        else:
            print(f"❌ 未知命令: {args.command}")
            parser.print_help()
            sys.exit(1)
            
    except KeyboardInterrupt:
        print("\n\n👋 再见!")
        sys.exit(0)
    except Exception as e:
        print(f"❌ 发生错误: {e}")
        sys.exit(1)

# 修改最后的执行部分
if __name__ == "__main__":
    # 检查是否启用telnet功能
    if "--with-telnet" in sys.argv:
        sys.argv.remove("--with-telnet")
        enhanced_main()
    else:
        main()

使用示例

bash 复制代码
# 基本telnet测试
telnet google.com 80
telnet github.com 22

# 使用你的CLI工具
python demo.py --with-telnet telnet google.com 80
python demo.py --with-telnet telnet localhost 3306

# 批量测试脚本
for port in 22 80 443; do
    timeout 3 telnet google.com $port </dev/null >/dev/null 2>&1 && echo "Port $port: 开放" || echo "Port $port: 关闭"
done

注意事项

  • ⚠️ 明文传输: 不要用于传输敏感信息
  • 🔒 推荐SSH: 远程登录使用SSH代替telnet
  • 🕐 设置超时: 避免长时间等待
  • 📝 记录日志: 连接尝试会被目标服务器记录

Telnet虽然简单,但在网络测试和故障排查中非常有用!🔍

相关推荐
乾元17 小时前
把 SLA / SLO 放到网络可观测的核心:从指标到证据链的工程化路径
运维·开发语言·网络·人工智能·网络协议·架构
GanGuaGua18 小时前
计算机网络:HTTP报文
网络·网络协议·计算机网络·http
发光小北18 小时前
SG-TCP232-620(六通道串口服务器)特点与功能介绍
网络协议
老蒋新思维19 小时前
创客匠人观察:知识IP的下一站——与AI智能体共生的“人机协同”模式
大数据·人工智能·网络协议·tcp/ip·重构·创始人ip·创客匠人
Gavin在路上19 小时前
dubbo源码之一次RPC请求的生死之旅(基于Dubbo 2.7.8)
网络协议·rpc·dubbo
科技块儿1 天前
如何使用IP数据云提升网络风控、减少业务欺诈
网络·网络协议·tcp/ip
小豪GO!2 天前
HTTPS原理
网络协议·http·https
周杰伦_Jay2 天前
【GRPC 和 HTTP】设计目标和底层实现
网络·网络协议·http
汤愈韬2 天前
防火墙用户管理技术
网络协议·网络安全·huawei
木子欢儿2 天前
Prometheus Blackbox域名SSL证书监控并设置AlertManager告警
网络·网络协议·ssl·prometheus