歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux技術 >> 每天一個Linux命令(52)telnet命令

每天一個Linux命令(52)telnet命令

日期:2017/3/3 11:49:52   编辑:Linux技術
[b] 執行telnet指令開啟終端機階段作業,並登入遠端主機。[/b]
[b] (1)用法:[/b]
[b] 用法: telnet [參數] [主機][/b]
[b] (2)功能:[/b]
[b] 功能: telnet命令通常用來遠程登錄。[/b]
[b] 原理: Telnet服務雖然也屬於客戶機/服務器模型的服務,但它更大的意義在於實現了基於Telnet協議的遠程登錄(遠程交互式計算)。[/b]
telnet實現的遠程登錄:
分時系統允許多個用戶同時使用一台計算機,為了保證系統的安全和記帳方便,系統要求每個用戶有單獨的帳號作為登錄標識,系統還為每個用戶指定了一個口令。用戶在使用該系統之前要輸入標識和口令,這個過程被稱為'登遠程登陸是指用戶使用Telnet命令,使自己的計算機暫時成為遠程主機的一個仿真終端的過程。仿真終端等效於一個非智能的機器,它只負責把用戶輸入的每個字符傳遞給主機,再將主機輸出的每個信息回顯在屏幕上。
telnet的簡介:
Telnet協議是TCP/IP協議族中的一員,是Internet遠程登陸服務的標准協議和主要方式。它為用戶提供了在本地計算機上完成遠程主機工作的能力。在終端使用者的電腦上使用telnet程序,用它連接到服務器。終端使用者可以在telnet程序中輸入命令,這些命令會在服務器上運行,就像直接在服務器的控制台上輸入一樣。可以在本地就能控制服務器。要開始一個 telnet會話,必須輸入用戶名和密碼來登錄服務器。
  Telnet是常用的遠程控制Web服務器的方法。但是,telnet因為采用明文傳送報文,安全性不好,很多Linux服務器都不開放telnet服務,而改用更安全的ssh方式了。但仍然有很多別的系統可能采用了telnet方式來提供遠程登錄,因此弄清楚telnet客戶端的使用方式仍是很有必要的。
telnet命令還可做別的用途,比如確定遠程服務的狀態,比如確定遠程服務器的某個端口是否能訪問。
[b] (3)選項參數:[/b]
  1) -8      允許使用8位字符資料,包括輸入與輸出。
2) -a        嘗試自動登入遠端系統。
  3) -b<主機別名> 使用別名指定遠端主機名稱。
4) -c        不讀取用戶專屬目錄裡的.telnetrc文件。
5) -d        啟動排錯模式。
6) -e<脫離字符> 設置脫離字符。
7) -E        濾除脫離字符。
8) -f      此參數的效果和指定"-F"參數相同。
9) -F        使用Kerberos V5認證時,加上此參數可把本地主機的認證數據上傳到遠端主機。
10) -k<域名>    使用Kerberos認證時,加上此參數讓遠端主機采用指定的領域名,而非該主機的域名。
11) -K      不自動登入遠端主機。
12) -l<用戶名稱> 指定要登入遠端主機的用戶名稱。
13) -L        允許輸出8位字符資料。
14) -n<記錄文件> 指定文件記錄相關信息。
15) -r        使用類似rlogin指令的用戶界面。
16) -S<服務類型> 設置telnet連線所需的IP TOS信息。
17) -x        假設主機有支持數據加密的功能,就使用它。
18) -X<認證形態> 關閉指定的認證形態。
[b] (4)實例:[/b]
1)[root@localhost xinetd.d]# telnet localhost 23      連接本地的主機,端口號為23
[root@localhost xinetd.d]# telnet localhost 23
Trying ::1...
Connected to localhost.
Escape character is '^]'.

Kernel 3.10.0-229.el7.x86_64 on an x86_64
localhost login: sunjimeng
Password: 
Last login: Sat Jun 18 18:29:24 from ::ffff:192.168.142.128
[sunjimeng@localhost ~]$

2)用真實物理機win10連接虛擬機中的centOS:
在命令窗口cmd中輸入:
C:\Users\JMSun>telnet 192.168.0.8

彈出另一個頁面:(這是在win10下的頁面,在這裡可以自由操作centos,結果類似直接使用centos的終端。)

3)用telnet實現win10連接win7:
在用我自己的win10連接別人的win7系統前,我首先將win7的防火牆關閉,打開telnet服務。然後:
C:\Users\JMSun>ping 192.168.0.5    //這是win7機的IP,在這裡先測試與它的連通性

正在 Ping 192.168.0.5 具有 32 字節的數據:
來自 192.168.0.5 的回復: 字節=32 時間=62ms TTL=128
來自 192.168.0.5 的回復: 字節=32 時間=6ms TTL=128
來自 192.168.0.5 的回復: 字節=32 時間=4ms TTL=128
來自 192.168.0.5 的回復: 字節=32 時間=2ms TTL=128

192.168.0.5 的 Ping 統計信息:
    數據包: 已發送 = 4,已接收 = 4,丟失 = 0 (0% 丟失),
往返行程的估計時間(以毫秒為單位):
    最短 = 2ms,最長 = 62ms,平均 = 18ms

C:\Users\JMSun>telnet 192.168.0.5

彈出頁面:




在這裡為了證明在登入和登出之後DOS操縱的不是同一台電腦,我用dir命令列出了它們各自目錄F下的文件,明顯不一樣:

telnet可以實現任意非附屬關系的擁有獨立IP地址的主機之間的連接。
[b] (5)其他:[/b]
1.學習此命令遇到的問題:
[b] 一.centOS7.0下的shell中出現下面的問題:[/b]
[root@localhost sunjimeng]# telnet
bash: telnet: 未找到命令...

[b] 解決方案:[/b]
1)安裝telnet-server,telnet,xinted:
[root@localhost xinetd.d]# yum install telnet-server -y
已加載插件:fastestmirror, langpacks
base                                                     | 3.6 kB     00:00     
extras                                                   | 3.4 kB     00:00     
Could not retrieve mirrorlisthttp://mirrorlist.centos.org/?release=7&arch=x86_64&repo=updates&infra=stock error was
12: Timeout onhttp://mirrorlist.centos.org/?release=7&arch=x86_64&repo=updates&infra=stock: (28, 'Operation too slow. Less than 1000 bytes/sec transferred the last 30 seconds')
updates                                                  | 3.4 kB     00:00     
updates/7/x86_64/primary_db                                                       | 4.9 MB  00:00:25     
Loading mirror speeds from cached hostfile
 * base: mirrors.yun-idc.com
 * extras: mirror.lzu.edu.cn
 * updates: mirror.lzu.edu.cn
正在解決依賴關系
--> 正在檢查事務
---> 軟件包 telnet-server.x86_64.1.0.17-59.el7 將被 安裝
--> 解決依賴關系完成

依賴關系解決

=========================================================================================================
 Package                     架構                 版本                          源                  大小
=========================================================================================================
正在安裝:
 telnet-server               x86_64               1:0.17-59.el7                 base                40 k

事務概要
=========================================================================================================
安裝  1 軟件包

總下載量:40 k
安裝大小:55 k
Downloading packages:
警告:/var/cache/yum/x86_64/7/base/packages/telnet-server-0.17-59.el7.x86_64.rpm: 頭V3 RSA/SHA256 Signature, 密鑰 ID f4a80eb5: NOKEY
telnet-server-0.17-59.el7.x86_64.rpm 的公鑰尚未安裝
telnet-server-0.17-59.el7.x86_64.rpm                                              |  40 kB  00:00:04     
從 file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7 檢索密鑰
導入 GPG key 0xF4A80EB5:
 用戶ID     : "CentOS-7 Key (CentOS 7 Official Signing Key) <[email protected]>"
 指紋       : 6341 ab27 53d7 8a78 a7c2 7bb1 24c6 a8a7 f4a8 0eb5
 軟件包     : centos-release-7-1.1503.el7.centos.2.8.x86_64 (@anaconda)
 來自       : /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  正在安裝    : 1:telnet-server-0.17-59.el7.x86_64                                                   1/1 
  驗證中      : 1:telnet-server-0.17-59.el7.x86_64                                                   1/1 

已安裝:
  telnet-server.x86_64 1:0.17-59.el7                                                                     

完畢!

[root@localhost etc]# yum install xinetd -y
已加載插件:fastestmirror, langpacks
Loading mirror speeds from cached hostfile
 * base: mirrors.yun-idc.com
 * extras: mirrors.sina.cn
 * updates: mirrors.cug.edu.cn
正在解決依賴關系
--> 正在檢查事務
---> 軟件包 xinetd.x86_64.2.2.3.15-12.el7 將被 安裝
--> 解決依賴關系完成

依賴關系解決

=========================================================================================================
 Package               架構                  版本                              源                   大小
=========================================================================================================
正在安裝:
 xinetd                x86_64                2:2.3.15-12.el7                   base                128 k

事務概要
=========================================================================================================
安裝  1 軟件包

總下載量:128 k
安裝大小:261 k
Downloading packages:
xinetd-2.3.15-12.el7.x86_64.rpm                                                   | 128 kB  00:00:00     
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  正在安裝    : 2:xinetd-2.3.15-12.el7.x86_64                                                        1/1 
  驗證中      : 2:xinetd-2.3.15-12.el7.x86_64                                                        1/1 

已安裝:
  xinetd.x86_64 2:2.3.15-12.el7                                                                          

完畢!

[root@localhost etc]# yum install telnet
已加載插件:fastestmirror, langpacks
Loading mirror speeds from cached hostfile
 * base: mirrors.yun-idc.com
 * extras: mirrors.sina.cn
 * updates: mirrors.cug.edu.cn
正在解決依賴關系
--> 正在檢查事務
---> 軟件包 telnet.x86_64.1.0.17-59.el7 將被 安裝
--> 解決依賴關系完成

依賴關系解決

================================================================================
 Package          架構             版本                    源              大小
================================================================================
正在安裝:
 telnet           x86_64           1:0.17-59.el7           base            63 k

事務概要
================================================================================
安裝  1 軟件包

總下載量:63 k
安裝大小:113 k
Is this ok [y/d/N]: y
Downloading packages:
telnet-0.17-59.el7.x86_64.rpm                              |  63 kB   00:00     
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  正在安裝    : 1:telnet-0.17-59.el7.x86_64                                 1/1 
  驗證中      : 1:telnet-0.17-59.el7.x86_64                                 1/1 

已安裝:
  telnet.x86_64 1:0.17-59.el7                                                   

完畢!

2)將xinetd、telnet服務加入開機自啟動:
[root@localhost etc]# systemctl enable xinetd.service
[root@localhost etc]# systemctl enable telnet.socket
ln -s '/usr/lib/systemd/system/telnet.socket' '/etc/systemd/system/sockets.target.wants/telnet.socket'

3)啟動這兩個服務:
[root@localhost etc]# systemctl start telnet.socket
[root@localhost etc]# systemctl start xinetd

[b] 二.我用win10的電腦和虛擬機中的centOS7.0想實現他們之間的通信,但是出現幾個問題:[/b]
1)centOS虛擬機無法ping到物理機win10:
解決方法:關閉win10的防火牆;
2)centOS虛擬機能ping到物理機,物理機win10卻無法ping到centOS虛擬機:
解決方法:將虛擬機的網絡配置由NAT模式轉向橋接模式。這裡還涉及到橋接模式下的網絡配置問題,以後討論。
(NAT模式下主機與虛機之間不能互相ping通,因為虛擬機是靠主機的真實IP來訪問互聯網的,而橋接模式下虛擬機有自己獨立的動態IP地址。)
3)centOS能夠用telnet連接自身,卻無法連接物理機win10:
解決方法:由於在win10系統中telnet的服務端被刪去了(不安全性),只保留了客戶端,所以要想達到目的,必須重新下載telnet.server程序並安裝配置。在win10的打開或關閉windows功能裡啟動telnet客戶端程序。並同時啟動服務端(如果是win7系統則直接在windows功能選項中打開就行。)。
這裡存在一個細節:如果你的win10賬戶不是本地賬戶而是Microsoft網絡賬戶,則無法連接。需要新建一個本地賬戶:包括用戶名,密碼,和域名(domain name)。其中domain name不需要輸入,默認為空。
而且在centOS連接到win10後會出現亂碼問題,這個問題以後解決。(centOS采用UFT編碼方式,而win10采用GB2312編碼方式。)
4)centOS能夠用telnet連接物理機win10,物理機卻無法連接centOS,提示:



這是由於centOS並沒有開放23的端口,我們需要用防火牆開啟telnet的服務,並且開放指定端口:



在服務選項卡中開啟telnet服務:



並且在端口選項卡中開啟23號端口:

這裡使用圖形界面,也可以使用文本界面,後面會專門介紹一次Linux的防火牆。
2.去除telnet服務的開機自啟功能:(為了安全著想)
[root@localhost sunjimeng]# systemctl disable telnet.socket
rm '/etc/systemd/system/sockets.target.wants/telnet.socket'
[root@localhost sunjimeng]# systemctl disable xinetd.service
rm '/etc/systemd/system/multi-user.target.wants/xinetd.service'

3.用netstat查看當前已經建立的tcp連接:
[root@localhost sunjimeng]# netstat -t
Active Internet connections (w/o servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State      
tcp        0      0 192.168.142.128:42193   192.168.142.128:telnet  ESTABLISHED
tcp6       0      0 192.168.142.128:telnet  192.168.142.128:42193   ESTABLISHED

4.什麼是xinetd?
xinetd(extended internet daemon)是新一代的網絡守護進程服務程序,又叫超級Internet服務器,常用來管理多種輕量級Internet服務。
xinetd提供類似於inetd+tcp_wrapper的功能,但是更加強大和安全。
xinetd是一個daemon程序,所有結尾帶d的程序都是daemon程序,也就是守護程序.
系統默認使用xinetd的服務可以分為如下幾類。

① 標准Internet服務:telnet、ftp。
② 信息服務:finger、netstat、systat。
③ 郵件服務:imap、imaps、pop2、pop3、pops。
④ RPC服務:rquotad、rstatd、rusersd、sprayd、walld。
⑤ BSD服務:comsat、exec、login、ntalk、shell、talk。
⑥ 內部服務:chargen、daytime、echo、servers、services、time。
⑦ 安全服務:irc。
⑧ 其他服務:name、tftp、uucp。

具體可以使用xinetd的服務在/etc/services文件中指出。
啟動和關閉xinetd服務:
service xinetd start
service xinetd stop
service xinetd restart

5.Telnet 客戶端命常用命令:
open : 使用 openhostname 可以建立到主機的 Telnet 連接。
close : 使用命令 close 命令可以關閉現有的 Telnet 連接。
display : 使用 display 命令可以查看 Telnet 客戶端的當前設置。
send : 使用 send 命令可以向 Telnet 服務器發送命令。支持以下命令:
ao : 放棄輸出命令。
ayt : “Are you there”命令。
esc : 發送當前的轉義字符。
ip : 中斷進程命令。
synch : 執行 Telnet 同步操作。
brk : 發送信號。
 上表所列命令以外的其他命令都將以字符串的形式發送至 Telnet 服務器。例如,sendabcd 將發送字符串 abcd 至 Telnet 服務器,這樣,Telnet 會話窗口中將出現該字符串。
quit :使用 quit 命令可以退出 Telnet 客戶端。
Copyright © Linux教程網 All Rights Reserved