telnet的安裝配置及xinetd的討論


一、Telnet安裝與啟動

telnet由於是不安全的明文傳輸所以基本被ssh取代了,尤其是在Linux上;不過還是可能會用到,且啟停方式還有些不同所以還是有必要說明一下。

rpm -qa | grep telnet           #查看是否安裝
yum install -y telnet              #裝客戶端,可選
yum install -y telnet-server   #安裝服務端
yum install -y xinetd              #超級守護進程,一般已安裝
service telnetd start           #想像中的但實際不可行的停止方式
service telnetd stop            #想像中的但實際不可行的停止方式

正確啟動操作如下:

第一步,打開/etc/xinetd.d/telnet,將其中的disable值由yes改為no。

第二步,重啟xinetd。

service xinetd restart

正確關閉操作如下:

將disable值由no改為yes,再重啟xinetd即可。

其實此時telnet服務並未馬上關閉,之前telnet的會話還是可以使用,只是由於無人通知連接到來所以不能新連入而已;會話全部退出后進程也確實關閉。

 

二、關於為什么需要xinetd的討論

對於ssh等諸多服務我們都習慣用service來直接啟停,從使角度這也是很方便的;但對於telnet與眾不同的啟動方式讓人迷惑:我們要啟動telnet為什么要通過啟動另一個程序來啟動呢?

還是telnet的服務名(實際是腳本名)叫xinetd?telnet就是telnet另起一個風馬牛不相及的名字,程序員有病吧?

 

事情得從Linux的程序運行說起,我們會注意到經常我們在一個終端執行命令,如果終端被關閉無論命令是否已完成都會被中止,也就是說Linux中普通命令要依賴於終端而生存的。

對於一向服務比如http,如果終端退出就中止這個不可接受的;而要一個終端一直在那登錄着也是不現實的。

解決這個問題就要使服務的進程變為與終端無關的守護進程(也因此常常把守護進程用作服務的意思)

守護進程的實現又有兩種方式:一是自身變為守護進程,一是拖管於xinetd超級守護進程

自身變為守護程,即進程一直駐在內存等待客戶端請求;httpd等正是這種方式(d正是daemon,守護進程模式的意思)。

拖管於xinetd超級守護進程,即一般是休眠狀態xinetd檢測到其監聽的端口有客戶端請求到來之后再去通知喚醒他;telnet正是這種方式。

所有的服務都可以拖管於xinetd方式;但使用這種方式的服務正越來越少,以致我們都不了解這是什么東西。

這有兩個原因,一是對於httpd這種頻繁請求的服務,頻繁喚醒並不見得比自身為守護進程節省資源。

二是現在的資源並不像以前那樣緊缺,使用方便易懂(在這是啟停)的優先級已然要高於節省資源的優先級。


免責聲明!

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



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