Linux命令之telnet


telnet [-8EFKLacdfrx] [-X authtype] [-b hostalias] [-e escapechar] [-k realm] [-l user] [-n tracefile] [host [port]]

  telnet命令用於遠程登錄主機,對遠程主機進行管理。telnet因為采用明文傳送報文,安全性不好,許多Linux服務器都不開放telnet服務,而改用更安全的ssh方式。但任然有許多別的系統可能采用了telnet方式來通過遠程登錄,因此弄清楚telnet客戶端的使用方式仍是很有必要的。

  如果在沒有host參數的情況下調用telnet,它將進入命令模式,由其提示符(telnet>)指示。在此模式下,它接受並執行下面列出的命令(請使用“man –a telnet”查看)。如果使用參數調用它,它將使用這些參數執行open命令。

  如果主機名解析到多個IP地址,則telnet會嘗試與每個地址建立連接,直到其中一個地址成功或直到不再有地址為止。

(1).常用選項

-8 允許使用8位字符資料。包括輸入輸出
-a 嘗試自動登錄。
-b hostalias(主機別名) 使用別名指定遠端主機名稱。
-c 禁用讀取用戶的.telnetrc文件
-d 啟動Debug模式
-e escapechar(脫離字符) 設置脫離字符(是逃逸字符,跳過的意思?)
-E 濾除脫離字符
-f使用Kerberos V5認證時,允許將本地憑證抓發到遠程系統
-F 使用Kerberos V5認證時,允許將本地憑證抓發到遠程系統,包括已經轉發到本地環境的任何憑證
-k realm(域名) 如果正在使用Kerberos身份驗證,則請求telnet讓遠程主機獲取指定的域名realm而不是遠程主機的域名。
-K 不自動登錄遠程主機
-l user(用戶名) 指定遠程登錄的用戶名
-L 允許輸出8位字符資料。
-n tracefile(跟蹤文件) 指定跟蹤文件記錄跟蹤信息.
-r 指定與rlogin類似的用戶界面。逃逸字符設置為~,可通過-e選項修改
-x 如果有數據流加密,則打開
-X atype(認證形態) 禁用atype類型的身份驗證

(2).實例

測試一下連接本地主機,端口號為23

[xf@xuexi ~]$ telnet localhost 23
Trying ::1...
Connected to localhost.
Escape character is '^]'.

Kernel 3.10.0-862.11.6.el7.x86_64 on an x86_64
xuexi login: root
Password:
Login incorrect

xuexi login: xf
Password:
Last login: Thu Sep 27 13:52:50 on :0

用Windows系統連接CentOS。注意添加23端口詳細請看(5). CentOS防火牆添加端口

telnet 192.168.128.223 23

之后會出現如下圖的登錄界面

用CentOS系統連接Windows系統,如下(虛擬機需要使用橋接模式,有亂碼是因為centOS采用UFT編碼方式,而win10采用GB2312編碼方式)

[xf@xuexi ~]$ telnet 192.168.128.137
Trying 192.168.128.137...
Connected to 192.168.128.137.
Escape character is '^]'.
Welcome to Microsoft Telnet Service 

login: administrator
password: 

*===============================================================
Microsoft Telnet Server.
*===============================================================
C:\Users\Administrator>

(3).telnet環境安裝

很多Linux已經沒有telnet服務,所以需要自己安裝

1)安裝telnet-server,telnet,xinted:

yum install -y telnet-server
yum install -y xinted
yum install -y telnet

2)將xinetd、telnet服務加入開機啟動項:

CentOS7如下

systemctl enable xinetd.service
systemctl enable telnet.socket

CentOS6.8如下

chkconfig xinetd on
chkconfig telnet on

3)啟動服務

CentOS7如下

systemctl start telnet.socket
systemctl start xinetd

CentOS6.8如下

vim /etc/xinetd.d/telnet 將其中disable的值改為no
service xinted restart

4)測試完后為安全考慮請關閉相應服務的自啟功能

CentOS7如下

systemctl disable xinetd.service
syetemctl disable telnet.socket

CentOS6.8如下

chkconfig xinetd off
chkconfig telnet off

(4).Windows中telnet環境部署

控制面板-->程序-->打開或關閉Windows功能-->勾選Telnet服務器和Telnet客戶端-->等待完成

部分系統還需要前往服務中打開telnet服務

(5).CentOS防火牆添加端口

CentOS6.8使用vim /etc/sysconfig/iptables命令修改配置文件,如下

# Firewall configuration written by system-config-firewall 
# Manual customization of this file is not recommended.
*filter :INPUT ACCEPT [0:0] :FORWARD ACCEPT [0:0] :OUTPUT ACCEPT [0:0]
-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 23 -j ACCEPT
-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -j REJECT --reject-with icmp-host-prohibited COMMIT

最后使用命令service iptables restart命令重啟

CentOS7使用vim /etc/firewalld/zones/public.xml命令修改配置文件,如下

xml version="1.0" encoding="utf-8"?>
<zone>
  <short>Public</short>
  <description>For use in public areas. You do not trust the other computers on networks to not harm your computer. Only selected incoming connections are accepted.</description>
  <service name="ssh"/>
  <service name="dhcpv6-client"/>
  <port protocol="tcp" port="23"/>
</zone>

最后使用firewall-cmd --complete-reload命令或systemctl restart firewalld重啟。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM