Linux(RedHat或CentOS)下實(shí)現(xiàn)開啟telnet服務(wù)方式
一、Telnet服務(wù)介紹
Telnet協(xié)議是TCP/IP協(xié)議族中的一員,是Internet遠(yuǎn)程登錄服務(wù)的標(biāo)準(zhǔn)協(xié)議和主要方式。它為用戶提供了在本地計(jì)算機(jī)上完成遠(yuǎn)程主機(jī)工作的能力。
在終端使用者的電腦上使用telnet程序,用它連接到服務(wù)器。終端使用者可以在telnet程序中輸入命令,這些命令會(huì)在服務(wù)器上運(yùn)行,就像直接在服務(wù)器的控制臺(tái)上輸入一樣。
可以在本地就能控制服務(wù)器。要開始一個(gè)telnet會(huì)話,必須輸入用戶名和密碼來(lái)登錄服務(wù)器。Telnet是常用的遠(yuǎn)程控制Web服務(wù)器的方法。
二、開啟Telnet服務(wù)的安全隱患
雖然Telnet較為簡(jiǎn)單實(shí)用也很方便,但是在格外注重安全的現(xiàn)代網(wǎng)絡(luò)技術(shù)中,Telnet并不被重用。
原因在于Telnet是一個(gè)明文傳送協(xié)議,它將用戶的所有內(nèi)容,包括用戶名和密碼都明文在互聯(lián)網(wǎng)上傳送,具有一定的安全隱患,因此許多服務(wù)器都會(huì)選擇禁用Telnet服務(wù)。
如果我們要使用Telnet的遠(yuǎn)程登錄,使用前應(yīng)在遠(yuǎn)端服務(wù)器上檢查并設(shè)置允許Telnet服務(wù)的功能。
參考文獻(xiàn):Telnet_百度百科 (baidu.com)
三、開始Telnet服務(wù)操作方法
如果確實(shí)想用Telnet來(lái)連接服務(wù)的話,首先需要在服務(wù)器上確定是否安裝了telnet-server和xinetd(telnet服務(wù)需要依賴它來(lái)完成)。
3.1、檢查服務(wù)端telnet情況
[root@app ~]# rpm -qa|grep telnet-server [root@app ~]# rpm -qa|grep xinetd
執(zhí)行完以上命令,如果沒(méi)有輸出內(nèi)容說(shuō)明沒(méi)有安裝telnet-server和xinetd。
3.2、安裝telnet-server和xinetd的準(zhǔn)備工作
telnet-server和xinetd一般都在操作系統(tǒng)的鏡像中,可以先檢查一下,主機(jī)上是否配置好了鏡像源或是yum源。
[root@app ~]# cd /etc/yum.repos.d/ [root@app yum.repos.d]# ls CentOS76.repo repo [root@app yum.repos.d]# cat CentOS76.repo [CentOS7.6_x64] name=CentOS7.6_x64.iso baseurl=file:///mnt/iso enabled=1 gpgcheck=0 [root@app yum.repos.d]#
以上操作是對(duì)yum源的配置,如果在安裝過(guò)程中有其它的依賴包的話,可以通過(guò)yum源的配置擺脫依賴包的煩惱。
3.3、檢查yum源中的telnet-server和xinetd安裝文件是否存在
3.3.1、檢查telnet-server和xinetd
[root@app yum.repos.d]# yum list telnet-server 已加載插件:fastestmirror, langpacks Loading mirror speeds from cached hostfile 可安裝的軟件包 telnet-server.x86_64 1:0.17-64.el7 CentOS7.6_x64 [root@app yum.repos.d]# yum list xinetd 已加載插件:fastestmirror, langpacks Loading mirror speeds from cached hostfile 可安裝的軟件包 xinetd.x86_64 2:2.3.15-13.el7 CentOS7.6_x64
出現(xiàn)以上結(jié)果,說(shuō)明操作系統(tǒng)的鏡像中存在telnet-server和xinetd安裝文件,接下來(lái)就可以使用yum命令進(jìn)行安裝了。
3.4、安裝telnet-server和xinetd
安裝telnet-server:
[root@app yum.repos.d]# yum install -y telnet-server 已加載插件:fastestmirror, langpacks Loading mirror speeds from cached hostfile 正在解決依賴關(guān)系 --> 正在檢查事務(wù) ---> 軟件包 telnet-server.x86_64.1.0.17-64.el7 將被 安裝 --> 解決依賴關(guān)系完成 依賴關(guān)系解決 ================================================================================================================================================================= Package 架構(gòu) 版本 源 大小 ================================================================================================================================================================= 正在安裝: telnet-server x86_64 1:0.17-64.el7 CentOS7.6_x64 41 k 事務(wù)概要 ================================================================================================================================================================= 安裝 1 軟件包 總下載量:41 k 安裝大?。?5 k Downloading packages: Running transaction check Running transaction test Transaction test succeeded Running transaction 正在安裝 : 1:telnet-server-0.17-64.el7.x86_64 1/1 驗(yàn)證中 : 1:telnet-server-0.17-64.el7.x86_64 1/1 已安裝: telnet-server.x86_64 1:0.17-64.el7 完畢! [root@app yum.repos.d]#
安裝xinetd:
[root@app yum.repos.d]# yum install -y xinetd 已加載插件:fastestmirror, langpacks Loading mirror speeds from cached hostfile 正在解決依賴關(guān)系 --> 正在檢查事務(wù) ---> 軟件包 xinetd.x86_64.2.2.3.15-13.el7 將被 安裝 --> 解決依賴關(guān)系完成 依賴關(guān)系解決 ================================================================================================================================================================= Package 架構(gòu) 版本 源 大小 ================================================================================================================================================================= 正在安裝: xinetd x86_64 2:2.3.15-13.el7 CentOS7.6_x64 128 k 事務(wù)概要 ================================================================================================================================================================= 安裝 1 軟件包 總下載量:128 k 安裝大小:261 k Downloading packages: Running transaction check Running transaction test Transaction test succeeded Running transaction 正在安裝 : 2:xinetd-2.3.15-13.el7.x86_64 1/1 驗(yàn)證中 : 2:xinetd-2.3.15-13.el7.x86_64 1/1 已安裝: xinetd.x86_64 2:2.3.15-13.el7 完畢! [root@app yum.repos.d]#
3.4.1、檢查telnet-server和xinetd是否安裝成功
[root@app yum.repos.d]# rpm -qa|grep telnet-server telnet-server-0.17-64.el7.x86_64 [root@app yum.repos.d]# rpm -qa|grep xinetd xinetd-2.3.15-13.el7.x86_64
出現(xiàn)以上結(jié)果,說(shuō)明telnet-server和xinetd已安裝成功。
3.4.2、安裝telnet客戶端
這一步可以不用操作,安裝telnet客戶端主要的作用,是為了測(cè)試telnet服務(wù)是否可以正常使用,大家也可以用windows的telnet客戶端進(jìn)行測(cè)試,或是ssh終端工具進(jìn)行測(cè)試。
[root@app xinetd.d]# yum install -y telnet 已加載插件:fastestmirror, langpacks Loading mirror speeds from cached hostfile 正在解決依賴關(guān)系 --> 正在檢查事務(wù) ---> 軟件包 telnet.x86_64.1.0.17-64.el7 將被 安裝 --> 解決依賴關(guān)系完成 依賴關(guān)系解決 ================================================================================================================================================================= Package 架構(gòu) 版本 源 大小 ================================================================================================================================================================= 正在安裝: telnet x86_64 1:0.17-64.el7 CentOS7.6_x64 64 k 事務(wù)概要 ================================================================================================================================================================= 安裝 1 軟件包 總下載量:64 k 安裝大?。?13 k Downloading packages: Running transaction check Running transaction test Transaction test succeeded Running transaction 正在安裝 : 1:telnet-0.17-64.el7.x86_64 1/1 驗(yàn)證中 : 1:telnet-0.17-64.el7.x86_64 1/1 已安裝: telnet.x86_64 1:0.17-64.el7 完畢! [root@app xinetd.d]#
3.4.3、啟動(dòng)telnet-server和xinetd服務(wù)
啟動(dòng)telnet-server,并設(shè)為開機(jī)啟動(dòng):
[root@app xinetd.d]# systemctl start telnet.socket //啟動(dòng)telnet-server
[root@app xinetd.d]# systemctl status telnet.socket //查看telnet-server啟動(dòng)狀態(tài)
● telnet.socket - Telnet Server Activation Socket
Loaded: loaded (/usr/lib/systemd/system/telnet.socket; enabled; vendor preset: disabled)
Active: active (listening) since 日 2024-09-08 15:57:46 CST; 15s ago
Docs: man:telnetd(8)
Listen: [::]:23 (Stream)
Accepted: 0; Connected: 0
9月 08 15:57:46 app systemd[1]: Listening on Telnet Server Activation Socket.
[root@app xinetd.d]# systemctl enable telnet.socket //把telnet-server設(shè)為開機(jī)啟動(dòng)
[root@app xinetd.d]# systemctl list-unit-files telnet.socket //查看telnet-server設(shè)為開機(jī)啟動(dòng)是否成功
UNIT FILE STATE
telnet.socket enabled
1 unit files listed.
這里需要注意的是啟動(dòng)telnet-server服務(wù)的文件是telnet.socket。有些同學(xué)會(huì)認(rèn)為應(yīng)該是telnet.service這個(gè)文件,telnet-server和其它服務(wù)不太一樣,它是以超級(jí)服務(wù)進(jìn)行啟動(dòng)的。
具體介紹大家可以參考一下xinetd的介紹:xinetd_百度百科 (baidu.com)
啟動(dòng)xinetd,并設(shè)為開機(jī)啟動(dòng):
[root@app xinetd.d]# systemctl start xinetd.service //啟動(dòng)xinetd服務(wù)
[root@app xinetd.d]# systemctl status xinetd.service //查看xinetd服務(wù)啟動(dòng)狀態(tài)
● xinetd.service - Xinetd A Powerful Replacement For Inetd
Loaded: loaded (/usr/lib/systemd/system/xinetd.service; enabled; vendor preset: enabled)
Active: active (running) since 日 2024-09-08 16:03:55 CST; 9s ago
Process: 22314 ExecStart=/usr/sbin/xinetd -stayalive -pidfile /var/run/xinetd.pid $EXTRAOPTIONS (code=exited, status=0/SUCCESS)
Main PID: 22315 (xinetd)
Tasks: 1
CGroup: /system.slice/xinetd.service
└─22315 /usr/sbin/xinetd -stayalive -pidfile /var/run/xinetd.pid
9月 08 16:03:55 app xinetd[22315]: removing discard
9月 08 16:03:55 app xinetd[22315]: removing discard
9月 08 16:03:55 app xinetd[22315]: removing echo
9月 08 16:03:55 app xinetd[22315]: removing echo
9月 08 16:03:55 app xinetd[22315]: removing tcpmux
9月 08 16:03:55 app xinetd[22315]: removing time
9月 08 16:03:55 app xinetd[22315]: removing time
9月 08 16:03:55 app xinetd[22315]: xinetd Version 2.3.15 started with libwrap loadavg labeled-networking options compiled in.
9月 08 16:03:55 app xinetd[22315]: Started working: 0 available services
9月 08 16:03:55 app systemd[1]: Started Xinetd A Powerful Replacement For Inetd.
[root@app xinetd.d]# systemctl enable xinetd.service //把xinetd服務(wù)設(shè)為開機(jī)啟動(dòng)
[root@app xinetd.d]# systemctl list-unit-files xinetd.service //查看xinetd服務(wù)設(shè)為開機(jī)啟動(dòng)是否成功
UNIT FILE STATE
xinetd.service enabled
1 unit files listed.
3.5、telnet-server服務(wù)測(cè)試
[root@app xinetd.d]# telnet 192.168.10.2 23 Trying 192.168.10.2... Connected to 192.168.10.2. Escape character is '^]'. Kernel 3.10.0-957.el7.x86_64 on an x86_64 app login:
當(dāng)看到以上連接結(jié)果,說(shuō)明telnet-server和xinetd服務(wù)已經(jīng)正常工作了。下面試著輸入用戶名和密碼看是否能正常連接進(jìn)入。
[root@app xinetd.d]# telnet 192.168.10.2 23 Trying 192.168.10.2... Connected to 192.168.10.2. Escape character is '^]'. Kernel 3.10.0-957.el7.x86_64 on an x86_64 app login: root Password: Login incorrect app login:
root用戶登錄被拒絕登錄了。
這是因?yàn)閠elnet-server服務(wù)默認(rèn)情況下,RedHat和CentOS系統(tǒng)是不允許root用戶通過(guò)telnet的方式遠(yuǎn)程登陸系統(tǒng)的(這是為了安全起見(jiàn)做的默認(rèn)設(shè)定)。
如果要使用root用戶登錄系統(tǒng),需要修改/etc/securetty文件內(nèi)容,把以下內(nèi)容添加到該文件的最下方,保存即可。
pts/0 pts/1 pts/2 pts/3 pts/4
如下,這里把以上內(nèi)容添加到 /etc/securetty文件內(nèi)容的結(jié)果:
[root@app xinetd.d]# tail -5 /etc/securetty pts/0 pts/1 pts/2 pts/3 pts/4 [root@app xinetd.d]#
重啟telnet-server和xinetd服務(wù):
[root@app xinetd.d]# systemctl restart telnet.socket [root@app xinetd.d]# systemctl restart xinetd.service
再次嘗試連接telnet-server:
[root@app xinetd.d]# telnet 192.168.10.2 23 Trying 192.168.10.2... Connected to 192.168.10.2. Escape character is '^]'. Kernel 3.10.0-957.el7.x86_64 on an x86_64 app login: root Password: Last failed login: Sun Sep 8 16:11:58 CST 2024 from ::ffff:192.168.10.2 on pts/2 There was 1 failed login attempt since the last successful login. Last login: Sun Sep 8 15:23:58 from 192.168.10.1 [root@app ~]#
輸入root用戶的密碼,已經(jīng)正常連接進(jìn)來(lái)了。說(shuō)明telnet-server已經(jīng)可以正常連接使用了。
大家也可以用ssh終端工具進(jìn)行測(cè)試,以下是使用Xshell工具進(jìn)行連接的測(cè)試。

ssh工具也可以正常連接了。
知識(shí)擴(kuò)展
如果大家使用的是RedHat或CentOS操作系統(tǒng)的版本是7.0以下的,安裝完xinetd和telnet-server后,后面的操作稍微有點(diǎn)不一樣,7.0以下的版本是通過(guò)修改/etc/xinetd.d/telnet配置文件來(lái)實(shí)現(xiàn)的。
如下:
# vi /etc/xinetd.d/telnet // 把disable中的yes改成no
service telnet
{
flags = REUSE
socket_type = stream
wait = no
user = root
server = /usr/sbin/in.telnetd
log_on_failure += USERID
disable = yes
}
service telnet
{
flags = REUSE
socket_type = stream
wait = no
user = root
server = /usr/sbin/in.telnetd
log_on_failure += USERID
disable = no
}
# /etc/init.d/xinetd reload //重新加載xinetd服務(wù)。其中是否能讓root用戶登錄的方法和3.5小節(jié)點(diǎn)中,給/etc/securetty配置文件中添加內(nèi)容的操作一樣,添加完成之后執(zhí)行 /etc/init.d/xinetd reload,讓其重新加載xinetd服務(wù)即可。
注:以上方法操作都沒(méi)有問(wèn)題,但是在連接telnet-server的23端口時(shí),一直連接不上,有可能是主機(jī)的防火墻阻止了23端口的連接,大家可以把防火墻關(guān)閉,或是放開23端口即可。
大家可以參照下面方法通過(guò)防火墻放開23端口。
RedHat和CentOS 系統(tǒng)版本是7.0的,默認(rèn)采用 firewalld 防火墻。6.0采用iptables防火墻,下面分別簡(jiǎn)單的介紹一下操作方法。
以下是7.0版本的操作方法:
查詢防火墻是否開啟了 23 端口:
[root@app xinetd.d]# firewall-cmd --query-port=23/tcp no
執(zhí)行結(jié)果為“no” 表示未開啟,通過(guò)以下命令開啟 23 端口:
[root@app xinetd.d]# firewall-cmd --zone=public --add-port=23/tcp --permanent //永久(--permanent)開啟23端口 success //開啟成功 [root@app xinetd.d]# firewall-cmd --complete-reload // 重載防火墻配置,使變更生效 success //重載成功 [root@app xinetd.d]# firewall-cmd --query-port=23/tcp // 查詢開啟狀態(tài) yes //開啟
或是直接使用以下命令關(guān)閉防火墻:
[root@app ~]# systemctl stop firewalld.service //停止防火墻
[root@app ~]# systemctl status firewalld.service //查看防火墻運(yùn)行狀態(tài)
● firewalld.service - firewalld - dynamic firewall daemon
Loaded: loaded (/usr/lib/systemd/system/firewalld.service; disabled; vendor preset: enabled)
Active: inactive (dead)
Docs: man:firewalld(1)
9月 08 16:48:18 app systemd[1]: Starting firewalld - dynamic firewall daemon...
9月 08 16:48:18 app systemd[1]: Started firewalld - dynamic firewall daemon.
9月 08 16:48:23 app systemd[1]: Stopping firewalld - dynamic firewall daemon...
9月 08 16:48:24 app systemd[1]: Stopped firewalld - dynamic firewall daemon.
[root@app ~]# systemctl disable firewalld.service //關(guān)閉防火墻開始啟動(dòng)
6.0版本的操作如下:
- 停止防火墻:service iptables stop
- 查看防火墻狀態(tài):service iptables status
- 禁止開機(jī)啟動(dòng):chkconfig iptables off
- 查看開機(jī)啟動(dòng)狀態(tài):chkconfig --list iptables
- 放開訪問(wèn)端口:iptables -I INPUT -p tcp --dport 23 -j ACCEPT
注:使用iptables這種方式放開端口的操作,不會(huì)寫入配置文件 /etc/sysconfig/iptables 中,重啟系統(tǒng)會(huì)失效(重啟防火墻服務(wù)也會(huì)失效)
可以再執(zhí)行一次保存命令,將通過(guò)命令添加的開放端口保存到配置中:service iptables save
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Linux下刪除亂碼文件和目錄的實(shí)現(xiàn)方式
這篇文章主要介紹了Linux下刪除亂碼文件和目錄的實(shí)現(xiàn)方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2025-07-07
linux環(huán)境下卸載oracle 11g的過(guò)程
這篇文章主要介紹了linux環(huán)境下卸載oracle 11g的過(guò)程,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2019-07-07
在Linux系統(tǒng)中查看目錄大小的方法小結(jié)
在 Linux 系統(tǒng)中,管理文件和目錄的磁盤空間使用情況是日常維護(hù)的一部分,特別是在數(shù)據(jù)密集型的應(yīng)用場(chǎng)景中,了解各個(gè)目錄和文件的大小至關(guān)重要,du(disk usage)命令是一個(gè)強(qiáng)大的工具,可以幫助我們獲取目錄及其子目錄的大小信息,需要的朋友可以參考下2024-11-11
解決make: *** [Makefile:719: ext/openssl/openss
在Ubuntu系統(tǒng)上編譯安裝PHP7.4.33時(shí)遇到OpenSSL庫(kù)文件缺失的錯(cuò)誤,因?yàn)閁buntu22.04的默認(rèn)OpenSSL版本與PHP不兼容,解決方法是安裝低版本的openssl包,并在編譯PHP時(shí)指定openssl路徑2024-12-12
Windows上訪問(wèn)(掛載)linux的共享文件夾
這篇文章主要介紹了Windows上訪問(wèn)(掛載)linux的共享文件夾的方法,文中有詳細(xì)的代碼示例供大家參考,需要的朋友可以參考下2007-02-02
Linux命令學(xué)習(xí)總結(jié):詳解reboot命令
這篇文章主要介紹了Linux命令學(xué)習(xí)總結(jié):詳解reboot命令,這個(gè)指令使用起來(lái)非常簡(jiǎn)單,有興趣的可以了解一下。2016-11-11
淺談linux下的一些常用函數(shù)的總結(jié)(必看篇)
下面小編就為大家?guī)?lái)一篇淺談linux下的一些常用函數(shù)的總結(jié)(必看篇)。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2016-10-10

