天天一個Linux命令,今天是網絡命令中的Telnet。web
Telnet 命令一般用來遠程登陸,Telnet 程序是基於 Telnet 協議的遠程登陸客戶端程序。Telnet 協議是TCP/IP協議族中的一員,是Internet 遠程登陸服務的標準協議和主要方式。它爲用戶提供了本地計算機上完成遠程主機工做的能力。在終端使用者的電腦上使用Telnet 程序,用它鏈接到服務端。終端使用者能夠在Telnet 程序中輸入命令,這些命令會在服務器上運行,就像直接在服務器的控制檯上輸入同樣。能夠在本地就能控制服務器。要開始一個Telnet 會話,必須輸入用戶名和密碼來登陸服務器。Telnet 是經常使用的遠程控制web服務器的方法。安全
可是,Telnet 由於採用明文傳送報文,安全性很差,不少Linux 服務器都不開放Telnet 服務,而改用更安全的SSH方式了。但仍然有不少別的系統可能採用了Telnet 方式來提供遠程登陸,所以弄清楚Telnet 客戶端的使用方式還是頗有必要的。服務器
Telnet 命令還能夠做爲別的用途,好比肯定遠程服務的狀態,好比肯定遠程服務器的某個端口是否能訪問。網絡
1.命令格式:socket
Telnet [參數] [主機]tcp
2.命令功能:加密
執行Telnet 指令開啓終端機階段做業,並登入遠端主機rest
3.命令參數:server
-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 關閉指定的認證形態
4.使用實例:
實例1:遠程服務器沒法訪問
命令:
Telnet 192.168.1.1
當提示Telnet unable to connect to remote hsot 等
說明:處理這種狀況,
1)先確認IP地址是否正確
2)確認IP地址對應的主機是否已經開機
3)若是主機已經啓動,確認路由設置是否設置正確?(使用 route 命令查看)
4)若是主機已經啓動,確認主機上是否開啓了 Telnet 服務?(使用netstat 命令查看,TCP的23 端口是否有 listen 狀態的行)
5)若是主機已經啓動 Telnet 服務,確認防火牆是否放開了 23 端口的訪問?(使用 iptables-save查看)
實例2:域名沒法解析
命令:
Telnet www.baidu.com
說明:
1)確認域名是是否正確
2)確認本機的域名解析有關的設置是否正確(/etc/resolve.conf中nameserver的設置是否正確,若是沒有,可使用 nameserver 114.114.114.114/8.8.8.8)
3)確認防火牆是否開放了 USP53端口的訪問(DNS使用 UDP協議,端口 53, 使用 IPTABLES-SAVE查看)
實例3:啓動Telnet 服務
命令:
service xinetd restart
配置參數,一般的配置以下:
service telnet
{
disable = no #啓用
flags = REUSE #socket 可重用
socket_type = stream #鏈接方式爲TCP
wait = no #爲每一個請求啓動一個進程
user = root #啓動服務的用戶爲 root
server = /usr/sbin/in.telnetd #要激活的進程
log_on_failure += USERID #登陸失敗時記錄登陸用戶名
}
若是要配置容許登陸的客戶端列表,加入
only_from = 192.168.1.1 #只容許 192.168.1.1登陸
若是要配置禁止登陸的客戶端列表,加入
no_access = 192.168.1.{2,3,4} #禁止192.168.1.2/3/4登陸
若是要設置開放時段,加入
access_times = 9:00-12:00 #天天只有這個時間段開放服務
若是你有兩個IP地址,一個是私網的IP地址如192.168.1.1,一個是公網的IP地址如 192.168.1.2,若是你但願用戶只能從私網來登陸Telnet服務,那麼加入
bind = 192.168.1.1
個配置項具體的含義和語法可參考 xined 配置文件屬性說明(man xinetd.conf)
配置端口,修改 services 文件:
# vi /etc/services
找到如下兩句
Telnet 23/tcp
Telnet 23/udp
若是前面有 #字符,就去掉它,Telnet的默認端口是 23,這個端口也是黑客端口掃面的主要對象,所以最好將這個端口修改掉,修改的方法很簡單,就是將23這個數字修改掉,改爲大一點的數字,好比 61123,注意,1023如下的端口號是 Internet 保留的端口號,所以最好不要用,還應該注意不要與其它服務的端口衝突。
啓動服務:
service xinetd restart
通常狀況下是不容許 root 從遠程登陸的,能夠先用普通帳號登陸,而後再 su 切到root 用戶。