1. 写在前面
telnet(teletype network)
利用 telnet
网络协议连接远程主机,并通过 TCP/IP 网络对其进行管理。该协议使用 23 端口建立连接,提供了一种使用 CLI 命令行管理远程系统的方法。尽管 telnet
与 SSH
类似,但两者还是有区别的,因为 SSH
使用加密技术,安全性更高。
本文主要介绍在 Linux 中使用 telnet
命令。
2. Linux 发行版安装 Telnet
根据 Linux 发行版,选择对应 telnet
安装方式。
2.1 CentOS、Fedora 和 RHEL
CentOS、Fedora 和 RHEL 使用 yum
作为软件包管理器,按照以下步骤安装:
(1)更新系统软件包库,以确保安装最新版本:
sudo yum update
(2)安装 telnet 及其正常运行所需依赖包:
sudo yum install telnet telnet-server -y
该命令将安装 telnet
、 telnet-server
两个软件包。
(3)运行 telnet 服务并启用:
systemctl start telnet.socket
systemctl enable telnet.socket
(4)设置远程主机防火墙允许 telnet 端口(默认端口为 23):
sudo firewall-cmd --permanent --add-port=23/tcp
(5)重新加载防火墙,应用更改:
sudo firewall-cmd --reload
2.2 基于 Ubuntu 和 Debian 发行版
Ubuntu 和其他基于 Debian 的发行版默认使用 apt
软件包管理器,按照以下步骤安装:
(1)更新系统软件包库:
sudo apt update
(2)安装 telnet:
sudo apt install telnetd -y
安装完成,服务自动启动。
(3)检查 telnet 是否已正确安装:
root@dev:~# sudo systemctl status inetd
-------------------------------------------------------------------------------
● inetd.service - Internet superserver
Loaded: loaded (/lib/systemd/system/inetd.service; enabled; vendor preset: enabled)
Active: active (running) since Mon 2024-01-15 23:43:55 CST; 11s ago
Docs: man:inetd(8)
Main PID: 85792 (inetd)
Tasks: 1 (limit: 19155)
Memory: 844.0K
CGroup: /system.slice/inetd.service
└─85792 /usr/sbin/inetd
Jan 15 23:43:55 dev systemd[1]: Starting Internet superserver...
Jan 15 23:43:55 dev systemd[1]: Started Internet superserver.
显示守护进程已启动并正在运行。
(4)远程主机运行防火墙,允许端口 23 接入:
root@dev2:~# sudo ufw allow 23/tcp
--------------------------------------------------------------------------------------
Rules updated
Rules updated (v6)
(5)重新加载防火墙:
sudo ufw reload
或:
sudo systemctl stop ufw
sudo systemctl start ufw
检查状态:
root@dev2:~# systemctl status ufw
--------------------------------------------------------------------------------------
● ufw.service - Uncomplicated firewall
Loaded: loaded (/lib/systemd/system/ufw.service; enabled; vendor preset: enabled)
Active: active (exited) since Mon 2024-01-15 23:49:11 CST; 58s ago
Docs: man:ufw(8)
Process: 29438 ExecStop=/lib/ufw/ufw-init stop (code=exited, status=0/SUCCESS)
Process: 29462 ExecStart=/lib/ufw/ufw-init start quiet (code=exited, status=0/SUCCESS)
Main PID: 29462 (code=exited, status=0/SUCCESS)
Jan 15 23:49:11 dev2 systemd[1]: Starting Uncomplicated firewall...
Jan 15 23:49:11 dev2 systemd[1]: Started Uncomplicated firewall.
注意:上述命令适用于 ufw
防火墙,如果使用的是其他防火墙,需按照特定程序的说明操作。
3. 如何在 Linux 中使用 telnet
使用 telnet
的一个重要前提是本地和远程主机都安装了 telnet
,并且远程主机的防火墙允许使用默认端口 23。
语法:
telnet [options] [remote_server_address] [port]
-
[options]和[port]: 可选参数;
-
[remote_server_address]: 远程主机地址;
不带选项或不指定地址的情况下运行命令,将打开 telnet
交互模式:
root@dev:~# telnet
--------------------------------------------------------------------------------------
telnet>
使用交互式 shell 连接远程主机,显示连接状态等信息。
退出 telnet
:quit
以下小节提供常用 telnet
用例。
3.1 检查端口是否打开
尽管 telnet
不是建立远程连接的安全选项,但却是检查远程主机上特定端口是否开放的好方法。通过在命令中指定端口号,检查某个端口是否正在应答任何请求,这样可查看网络中的情况以及端口是否响应。
语法:
telnet [server_address] [port]
不指定端口号,默认端口 23。
示例:
-
检查远程主机 22 端口是否开放:
root@dev:~# telnet bing.com 22
--------------------------------------------------------------------------------------
Trying 13.107.21.200...
Trying 204.79.197.200...
Trying 2620:1ec:c11::200...
telnet: Unable to connect to remote host: Network is unreachable
连接中断,意味指定端口未打开。
-
检查远程主机 80 端口是否开放:
root@dev:~# telnet bing.com 80
--------------------------------------------------------------------------------------
Trying 13.107.21.200...
Connected to bing.com.
Escape character is '^]'.
连接已建立,端口已打开。
3.2 下载网页
telnet
允许连接远程主机 80 端口,并将 HTML 源码下载到本地。
示例:
-
连接到 bing.com 的 80 端口:
root@dev:~# telnet bing.com 80
--------------------------------------------------------------------------------------
Trying 204.79.197.200...
Connected to bing.com.
Escape character is '^]'.
-
建立连接后,运行以下命令下载 HTML 网页:
GET /index.html
root@dev:~# telnet bing.com 80
--------------------------------------------------------------------------------------
Trying 204.79.197.200...
Connected to bing.com.
Escape character is '^]'.
--------------------------------------------------------------------------------------
GET /index.html
--------------------------------------------------------------------------------------
<h2>Our services aren't available right now</h2><p>We're working to restore all services as soon as possible. Please check back soon.</p>0jlmlZQAAAADsAo2T+s50TKTnLf0yrjRqU0lOMzBFREdFMDExNwBFZGdlConnection closed by foreign host.
不过这里显示远程主机不允许下载。
3.3 测试 SMTP 通信
telnet
另一个有用功能是允许用户通过命令行直接发送电子邮件来测试 SMTP 端口,前提需要一个不需要身份验证的电子邮件服务器,这是排除电子邮件客户端故障的好方法。
以下步骤使用 telnet
发送电子邮件:
(1) 通过 SMTP 端口连接服务器:
telnet [server_address] [port]
-
[server_address] 指定 SMTP 服务器地址。例如,Gmail 是
smtp.gmail.com
; -
SMTP [port] 可以是 25、465、587 等,具体取决于提供商;
(2) 用 HELO 或 EHLO 向服务器问好:
HELO [your_IP_address]
(3) 指定发件人:
MAIL FROM: <your_email_address@domain.com>
(4) 指定收件人:
RCPT TO: <recipient_address@domail.com>
(5) 指定邮件主题和正文,中间用空行隔开:
SUBJECT: This is the email subject.
""
This is the email body.
注意:大多数邮件服务器都会标记未经请求的匿名邮件,这意味着它可能最终会进入垃圾邮件文件夹。
3.4 连接远程系统
使用 telnet
进行远程连接(尽管缺乏安全性)。
telnet [remote_machine_IP]
确保在两台机器上都安装 telnet
,并设置防火墙允许 23 端口(开启或禁用ufw防火墙:sudo ufw enable/disable/reload)。
root@dev:~# sudo ufw allow 23/tcp
--------------------------------------------------------------------------------------
Rule added
Rule added (v6)
root@dev:~# sudo ufw reload
--------------------------------------------------------------------------------------
Firewall reloaded
如下,出现提示时,输入用户名和密码登录系统。登录后,即可远程操作另一台机器:
root@dev:~# telnet 10.100.0.111
--------------------------------------------------------------------------------------
Trying 10.100.0.111...
Connected to 10.100.0.111.
Escape character is '^]'.
Ubuntu 20.04.6 LTS
dev login: dev
Password:
Welcome to Ubuntu 20.04.6 LTS (GNU/Linux 5.4.0-169-generic x86_64)
* Documentation: https://help.ubuntu.com
* Management: https://landscape.canonical.com
* Support: https://ubuntu.com/advantage
... ...
建立连接后,可远程操作主机与 SSH 类似。
4 结论
本文介绍了如何在 Linux 中使用 telnet
命令。虽然该命令的安全性较差,而且不建议用于远程连接,但它的其他用途还是很有用的。
感谢您花时间阅读文章!
收藏本站不迷路!
原文始发于微信公众号(滑翔的纸飞机):如何在 Linux 中使用 telnet 命令?
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/260846.html