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

相关推荐
VVVVWeiYee2 小时前
IP v 6
网络·网络协议·tcp/ip
abccbatqw8 小时前
websocket建立连接过程
网络·websocket·网络协议
mit6.82411 小时前
[p2p-Magnet] 队列与处理器 | DHT路由表
网络·网络协议·p2p
一只小鱼儿吖13 小时前
代理IP数量与IP池规模需求:分析与选择策略
网络·网络协议·tcp/ip
翱翔的猪脑花16 小时前
赋能你的应用:英超实时数据接入终极指南(API vs. WebSocket)
网络·websocket·网络协议
歪歪10016 小时前
t-sql和sql的有哪些区别和联系
大数据·数据库·后端·sql·网络协议·mysql·架构
wuyang-ligerj1 天前
BGP路由协议(一):基本概念
运维·网络·网络协议·智能路由器
陈天cjq1 天前
WebSocket 技术详解:协议原理、握手到生产落地的一站式实践
网络·websocket·网络协议
卓码软件测评1 天前
【第三方网站运行环境测试:服务器配置(如Nginx/Apache)的WEB安全测试重点】
运维·服务器·前端·网络协议·nginx·web安全·apache
蜗牛沐雨1 天前
HTTP 范围请求:为什么你的下载可以“断点续传”?
网络·网络协议·http