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虽然简单,但在网络测试和故障排查中非常有用!🔍

相关推荐
Shell运维手记4 小时前
ARP 协议超详细讲解(适合网工考试 / 运维理解)
运维·网络·网络协议·智能路由器
ShineWinsu6 小时前
对于Linux:HTTP中cookie、session的解析
linux·网络·c++·网络协议·http·cookie·session
huainingning6 小时前
华三瘦AP切换为胖AP并配置无线功能
运维·网络·网络协议·tcp/ip
跨境技工小黎10 小时前
4G/5G 移动代理实战:什么时候必须用移动 IP?
网络协议·tcp/ip·5g
米尔的可达鸭10 小时前
UDP 通信深度实验:从 Windows FastPath 到 ICMP 端口不可达的完整排查
windows·websocket·网络协议·rust·udp·wireshark·tcpdump
gwf2161 天前
RoCEv2无损网络配置实战:PFC与ECN深度调优
网络·网络协议·tcp/ip·udp·tcpdump
q567315231 天前
人工智能训练数据采集:稳定代理IP高并发方案全解析
人工智能·爬虫·网络协议·tcp/ip·代理模式·代理ip
云栖梦泽在1 天前
稳如狗网络工具箱:IP、DNS、WebRTC、测速、连通性和全球延迟检测工具简明介绍
网络·网络协议·tcp/ip·网络安全·性能优化·webrtc
她说可以呀1 天前
WebSocket 和 SSE 简单使用及区别
网络·websocket·网络协议
tiantianuser1 天前
NVME-oF IP 设计11 : 控制面与数据面干什么用?
网络协议·rdma·高速传输·roce v2·nvme of