当前位置: 首页 > news >正文

Telnet、ftp详解

目录

一、Telnet 详解

1. 什么是 Telnet?

2. Telnet 的使用方法(以 Linux 为例)

(1)准备工作

(2)远程登录操作

(3)常见问题

二、FTP 详解

1. 什么是 FTP?

2. FTP 的使用方法(以 Linux 为例)

(1)准备工作

(2)文件传输操作

(3)示例:上传和下载文件

(4)常见问题

三、总结


一、Telnet 详解

1. 什么是 Telnet?

Telnet 是一种远程终端协议,全称为 Telecommunication Network,诞生于早期互联网时代。它允许用户通过网络在本地终端上远程登录到另一台主机(如服务器、路由器),并直接执行命令进行操作,相当于 “远程控制” 目标设备的终端。

核心特点

  • 基于 TCP 协议,默认使用 23 端口 通信。
  • 所有数据(包括用户名、密码、命令内容)均以明文形式传输,安全性极低。
  • 仅支持字符界面操作,无图形化功能。
2. Telnet 的使用方法(以 Linux 为例)
(1)准备工作
  • 目标服务器需安装并启动 Telnet 服务(以 CentOS 为例):

    # 安装服务端
    yum install -y telnet-server xinetd# 启动服务(xinetd 是 Telnet 的管理服务)
    systemctl start xinetd
    systemctl start telnet.socket  # 部分系统需要# 设置开机自启
    systemctl enable xinetd
    systemctl enable telnet.socket# 开放 23 端口(防火墙)
    firewall-cmd --add-port=23/tcp --permanent
    firewall-cmd --reload#临时关闭SELinux
    setenforce 0
  • 本地主机需安装 Telnet 客户端

    # CentOS/RHEL
    yum install -y telnet# Ubuntu/Debian
    apt install -y telnet
    
(2)远程登录操作
  1. 连接目标服务器
    在本地终端输入:

    telnet 目标服务器IP或域名
    
     

    示例:telnet 192.168.66.8(连接 IP 为 192.168.66.8 的服务器)。

  2. 身份验证

    • 提示 login: 时,输入目标服务器的用户名(如 root 或普通用户)。
    • 提示 Password: 时,输入对应密码(输入时无显示,输完回车即可)。
  3. 远程操作
    登录成功后,会显示目标服务器的命令提示符(如 [root@remote ~]#),此时可直接执行命令:

    • 查看文件:ls /home
    • 创建目录:mkdir test
    • 查看系统信息:uname -a
  4. 退出登录
    输入 exit 或 logout 即可断开连接:

    exit
    
(3)常见问题
  • 连接失败提示 Connection refused:检查目标服务器是否启动 Telnet 服务,或防火墙是否拦截 23 端口。
  • 登录失败提示 Login incorrect:确认用户名密码正确,或目标服务器是否允许该用户通过 Telnet 登录(部分系统默认禁止 root 直接登录)。

二、FTP 详解

1. 什么是 FTP?

FTP 是文件传输协议(File Transfer Protocol)的缩写,专门用于在客户端和服务器之间传输文件(上传、下载),并支持目录管理(如创建、删除目录)、文件重命名等操作。

核心特点

  • 基于 TCP 协议,使用两个连接
    • 控制连接:通过 21 端口传输命令(如登录、上传请求)。
    • 数据连接:临时端口传输文件数据(主动模式用 20 端口,被动模式用随机端口)。
  • 默认明文传输,安全性低(账号密码和文件内容可被窃听)。
  • 支持匿名登录(无需账号密码,权限受限)和用户登录(需系统账号)。
2. FTP 的使用方法(以 Linux 为例)
(1)准备工作
  • 目标服务器需安装并配置 FTP 服务(以 vsftpd 为例):

    # 安装 vsftpd
    yum install -y vsftpd配置/etc/vsftpd/vsftpd.conf
    # 允许本地用户登录(若原文件没有则添加)
    local_enable=YES
    # 允许上传
    write_enable=YES
    # 权限掩码
    local_umask=022
    # 禁止匿名登录
    anonymous_enable=NO
    # 禁锢用户到家目录
    chroot_local_user=YES
    # 允许禁锢目录可写(仅 vsftpd >= 3.0.0 支持)
    allow_writeable_chroot=YES
    # 监听IPv4
    listen=YES
    # 关闭IPv6
    listen_ipv6=NO
    # 日志路径
    xferlog_file=/var/log/vsftpd.log# 启动服务并设置开机自启
    systemctl start vsftpd
    systemctl enable vsftpd# 开放 21 端口(防火墙)
    firewall-cmd --add-port=21/tcp --permanent
    firewall-cmd --reload#临时关闭SELinux
    setenforce 0
  • 本地主机需安装 FTP 客户端

    # CentOS/RHEL
    yum install -y ftp# Ubuntu/Debian
    apt install -y ftp
    
(2)文件传输操作
  1. 连接 FTP 服务器
    在本地终端输入:

    ftp 目标服务器IP或域名
    
     

    示例:ftp 192.168.10.12(连接 IP 为 192.168.10.12 的 FTP 服务器)。

  2. 身份验证

    • 提示 Name (服务器IP:当前用户): 时,输入 FTP 用户名(如 zhangsan;匿名登录输入 anonymous)。
    • 提示 Password: 时,输入对应密码(匿名登录直接回车或输入邮箱)。
  3. FTP 交互模式常用命令
    登录成功后显示 ftp> 提示符,可执行以下操作:

    命令功能说明示例
    ls列出远程服务器当前目录的文件 / 目录ls
    cd 目录名切换远程服务器的目录cd /var/www/html
    lcd 本地目录切换本地主机的目录(指定上传 / 下载路径)lcd /home/myfiles
    get 远程文件下载远程文件到本地当前目录get report.txt
    put 本地文件上传本地文件到远程当前目录put photo.jpg
    mget 文件名*批量下载(支持通配符)mget *.pdf
    mput 文件名*批量上传(支持通配符)mput *.txt
    mkdir 目录名在远程服务器创建目录mkdir backups
    delete 文件名删除远程服务器的文件delete old.txt
    binary切换到二进制模式(传输图片 / 压缩包等)binary
    pwd显示远程服务器当前目录路径pwd
    quit 或 bye退出 FTP 连接quit
(3)示例:上传和下载文件
# 连接服务器
ftp 192.168.10.12# 登录(输入用户名 zhangsan 和密码)
Name (192.168.10.12:root): zhangsan
Password: ********# 切换到二进制模式(传输图片)
ftp> binary# 上传本地文件(本地路径 /home/photo.jpg → 远程当前目录)
ftp> put /home/photo.jpg# 下载远程文件(远程路径 report.pdf → 本地当前目录)
ftp> get report.pdf# 退出
ftp> quit
(4)常见问题
  • 连接失败:检查 vsftpd 服务是否启动,防火墙是否开放 21 端口。
  • 无法上传:确认 vsftpd.conf 中 write_enable=YES(允许写入),且远程目录权限正确(如 chmod 775 /var/www/html)。
  • 文件损坏:传输二进制文件时未切换 binary 模式,需先执行 binary 命令。

三、总结

协议核心用途端口安全性现代替代方案
Telnet远程终端控制23明文传输(低)SSH(22 端口,加密)
FTP文件传输21/20明文传输(低)SFTP/FTPS(加密)

注意:Telnet 和 FTP 因安全性问题,仅建议在测试环境使用,生产环境需用加密协议替代(如 SSH 替代 Telnet,SFTP 替代 FTP)。

http://www.dtcms.com/a/343233.html

相关文章:

  • 教育场景下禁用html5播放器拖动进度条的例子
  • python 项目编号 2025821 有关于中英文数据的收集、处理
  • mac的m3芯片通过Homebrew安装git
  • ES_分词
  • 2025-08-21 Python进阶9——__main__与lambda
  • Harbor私有仓库实战配置
  • FLUX-Text模型完全配置指南:从环境搭建到故障排除
  • 用例完备性1:用例模板
  • 数据结构-HashMap
  • Kubernetes“城市规划”指南:告别资源拥堵与预算超支,打造高效云原生都市
  • Typora 快速使用入门:15分钟掌握高效写作
  • 锅炉铸造件三维扫描尺寸及形位公差检测技术方案-中科米堆CASAIM
  • ⸢ 啟 ⸥ ⤳ 为什么要开这个专栏?
  • Ubuntu Server 系统安装 Docker
  • uni-app:实现文本框的自动换行
  • SpringBoot + Vue实现批量导入导出功能的标准方案
  • k8sday13数据存储(1.5/2)
  • 基于Matlab多技术融合的红外图像增强方法研究
  • C++---滑动窗口平滑数据
  • 瑞派亚宠展专访 | 以数智化重塑就医体验,共筑宠物健康新生态
  • 区块链存证操作
  • echarts关系图(Vue3)节点背景图连线设置
  • 2025.7.19卡码刷题-回溯算法-组合
  • IOS购买订阅通知信息解析说明Java
  • 设计模式3-模板方法模式
  • 爬虫基础学习-项目实践:每次请求,跟换不同的user-agent
  • 茶饮业内卷破局,从人力管理入手
  • iOS 手势与控件事件冲突解决清单
  • 一本通1342:【例4-1】最短路径问题
  • 【Docker基础】Docker-Compose核心配置文件深度解析:从YAML语法到高级配置