一、什么是Telnet:
對於Telnet的認識,不同的人持有不同的觀點,可以把Telnet當成一種通信協議,但是對於入侵者而言,Telnet只是一種遠程登錄的工具。
一旦入侵者與遠程主機建立了Telnet連接,入侵者便可以使用目標主機上的軟、硬件資源,而入侵者的本地機只相當於一個只有鍵盤和顯示器的終端而已。
telnet命令用於登錄遠程主機,對遠程主機進行管理。telnet因為采用明文傳送報文,安全性不好,很多Linux服務器都不開放telnet服務,而改用更安全的ssh方式了。
但仍然有很多別的系統可能采用了telnet方式來提供遠程登錄,因此弄清楚telnet客戶端的使用方式仍是很有必要的。
為什么需要telnet?
telnet就是查看某個端口是否可訪問。我們在搞開發的時候,經常要用的端口就是 8080。那么你可以啟動服務器,用telnet 去查看這個端口是否可用。
Telnet協議是TCP/IP協議家族中的一員,是Internet遠程登陸服務的標准協議和主要方式。它為用戶提供了在本地計算機上完成遠程主機工作的能力。
在終端使用者的電腦上使用telnet程序,用它連接到服務器。終端使用者可以在telnet程序中輸入命令,這些命令會在服務器上運行,就像直接在服務器的控制台上輸入一樣。
可以在本地就能控制服務器。要開始一個telnet會話,必須輸入用戶名和密碼來登錄服務器。Telnet是常用的遠程控制Web服務器的方法。
二、深入理解
1.檢查是否安裝telnet
rpm -qa | grep telnet telnet-0.17-48.el6.x86_64 telnet-server-0.17-48.el6.x86_64 //telnet 是掛在 xinetd 底下的,所以同時查看是否安裝了xinetd服務 rpm -qa | grep xinetd xinetd-2.3.14-39.el6_4.x86_64 //兩者都沒有的安裝的話,yum安裝以下服務 yum install xinetd telnet telnet-server -y
2.配置telnet
//設置開機啟動 #chkconfig telnet on //修改配置文件 vi /etc/xinetd.d/telnet //將”disable= yes”改成” disable=no”
3.激活服務
由於telnet服務也是由xinetd守護的,所以安裝完telnet-server,要啟動telnet服務就必須重啟xinetd服務
service xinetd restart 或者/etc/rc.d/init.d/xinetd restart
systemctl restart xinetd.service
4.iptables防火牆會阻止telnet,所以需要在iptables允許,用如下命令
//當你啟動telnet服務后,你可以用netstat -tunlp命令來查看telnet服務所使用的端口,可以發現有23。使用下面命令開啟這些端口: iptables -I INPUT -p tcp --dport 23 -jACCEPT iptables -I INPUT -p udp --dport 23 -jACCEPT service iptables save //保存 service iptables restart //重啟防火牆 //或者來點狠的!!關閉防火牆! service iptables stop
5.使用telnet常用命令
//格式: telnet ip prot telnet 192.168.127.130 6379
6。其他常用的telnet命令功能描述:
Usage: telnet [-4] [-6] [-8] [-E] [-L] [-S tos] [-a] [-c] [-d] [-e char] [-l user] [-n tracefile] [-b hostalias ] [-r] [host-name [port]]
close 關閉當前連接 logout 強制退出遠程用戶並關閉連接 display 顯示當前操作的參數 mode 試圖進入命令行方式或字符方式 open 連接到某一站點 quit 退出 set 設置當前操作的參數 unset 復位當前操作參數 status 打印狀態信息 toggle 對操作參數進行開關轉換 slc 改變特殊字符的狀態 auth 打開/關閉確認功能z掛起 telnetsend 發送特殊字符 telnetenviron 更改環境變量?顯示幫助信息 選項 -8:允許使用8位字符資料,包括輸入與輸出; -a:嘗試自動登入遠端系統; -b<主機別名>:使用別名指定遠端主機名稱; -c:不讀取用戶專屬目錄里的.telnetrc文件; -d:啟動排錯模式; -e<脫離字符>:設置脫離字符; -E:濾除脫離字符; -f:此參數的效果和指定"-F"參數相同; -F:使用Kerberos V5認證時,加上此參數可把本地主機的認證數據上傳到遠端主機; -k<域名>:使用Kerberos認證時,加上此參數讓遠端主機采用指定的領域名,而非該主機的域名; -K:不自動登入遠端主機; -l<用戶名稱>:指定要登入遠端主機的用戶名稱; -L:允許輸出8位字符資料; -n<記錄文件>:指定文件記錄相關信息; -r:使用類似rlogin指令的用戶界面; -S<服務類型>:設置telnet連線所需的ip TOS信息; -x:假設主機有支持數據加密的功能,就使用它; -X<認證形態>:關閉指定的認證形態。
7、測試
[root@d002 ~]# netstat -tnl Active Internet connections (only servers) Proto Recv-Q Send-Q Local Address Foreign Address State tcp 0 0 0.0.0.0:23 0.0.0.0:* LISTEN tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN tcp6 0 0 :::22 :::* LISTEN tcp6 0 0 ::1:25 :::* LISTEN
我們先來查看TCP的23端口是否開啟正常
[root@localhost ~]#netstat -tnl |grep 23
tcp 0 0 0.0.0.0:23 0.0.0.0:* LISTEN
如果上面的一行存在就說明服務已經運行了。如果netstat命令沒有返回內容,我們就只好繼續進行更深入的配置了。
8.錯誤解決
//如果使用telnet命令有以下提示: -bash: telnet: command not found //請檢查是否缺少安裝telnet包 //安裝: yum install -y telnet
9.退出telnet命令
后來找到了正確的命令 ctrl+] ,然后在telnet 命令行輸入 quit 就可以退出了