1、FTP:伺服器不支持非 ASCII 字元
出現不支持ascii碼的情況會出現中文亂碼,這個是實際的字元故障,但實際應用中還存在內其他相關的原因:容
1、實際連接錯誤的原因是ftp主/被動模式選擇錯誤,在ftp客戶端調整站點連接設置為被動連接模式即可。
2、防火牆埠限制,關閉防火牆臨時檢查使用即可。
3、FTP軟體使用的設置有問題,傳輸模式選擇二進制嘗試傳輸即可。
(1)伺服器不支持非ascii字元擴展資料:
FTP的傳輸有兩種方式:ASCII、二進制。
1、ASCII傳輸方式假定用戶正在拷貝的文件包含的簡單ASCII碼文本,如果在遠程機器上運行的不是UNIX,當文件傳輸時ftp通常會自動地調整文件的內容。
2、二進制傳輸模式
在二進制傳輸中,保存文件的位序,以便原始和拷貝的是逐位一一對應的。
2、不安全的伺服器,不支持 FTP over TLS。
建議的安全的方案vpn+ftp進行訪問。
可能是由於防火牆限制了連接,或許您可以試一下將FTP的「傳輸設置」更改為「主動」試試。
3、ftp連接不了空間伺服器,怎麼弄啊?
有一copy種可能性是,伺服器本身的ftp伺服器出現了問題。還有一種可能是你的賬號和密碼不正確,最好的方法就是,看一下伺服器發送回來的錯誤提示。然後再網上查一下這個錯誤對應的原因,
針對具體原因再去解決就好了,希望可以幫到您。
4、伺服器不支持ASCII字元怎麼解決
?
5、語言亂碼問題
漢字出現亂碼有好幾種情況,大致可分成四類:網頁、文本、文檔和文件亂碼。第一類是由於港台的繁體中文大五碼(BIG5)與大陸簡體中文(GB2312)不通用造成的;第二類是Win9X/Win2K系統(菜單、桌面、提示框)顯示亂碼,這是Win9X/Win2K注冊表中有關字體的部分設置不當引起的;第三類是各種應用程序(包括游戲)本來顯示中文的地方出現亂碼,形成原因比較復雜,有第二類的亂碼原因,也可能是軟體用到的中文動態鏈接庫被英文動態鏈接庫覆蓋造成的;最後一類是郵件亂碼。
由於樓主你沒有說清楚具體是什麼,所以只好寫長一些了,呵呵,希望樓主有耐心看完:
(一)、網頁、文本和文檔文件亂碼的消除
網頁亂碼是瀏覽器(如IE等)對HTML網頁解釋時形成的。如果在網頁的代碼中有形如:〈HTML〉〈HEAD〉〈META CONTENT=「text/html;charset=ISO-8859-1」〉〈/HEAD〉……〈/HTML〉的語句,瀏覽器在顯示此頁時,就會出現亂碼。因為瀏覽器會將此頁語種辨認為「歐洲語系」。解決的辦法是將語種「ISO-8859-1」改為GB2312,如果是繁體網頁則改為BIG5。
另一種解決辦法是不修改網頁代碼,事先為瀏覽器安裝多語言支持包(例如在安裝IE時要安裝多語言支持包),這樣在瀏覽網頁出現亂碼時,就可以在瀏覽器中選擇菜單欄下的「查看」/「編碼」/「自動選擇」/簡體中文(GB2312),如為繁體中文則選擇「查看」/「編碼」/「自動選擇」/繁體中文(BIG5),其它語言依此類推選擇相應的語系,這樣可消除網頁亂碼現象。
還有一種解決辦法是利用多內碼顯示平台來轉換內碼。常用多內碼顯示平台有:「南極星」、「四通利方」、「MagicWin 98等等。
網頁無亂碼保存的方法是:用瀏覽器打開網頁時,在「查看」/「編碼」中選擇「自動選擇」,存檔時保存類型選「web頁」,編碼選擇「UNICOD」,這樣保存過的網頁再次打開時,在瀏覽器菜單「查看」、「編碼」中不管選擇簡體中文(GB2312)、簡體中文(HZ)還是UNICODE(UTF-8)或繁體中文(BIG5),最終顯示都不會出現亂碼。
文本、文檔文件亂碼,一般是繁體中文顯示在簡體中文系統下或者相反情況造成的。只要把原本是繁體的內碼轉換為簡體內碼(或者相反),就可消除亂碼。
Word能勝任這類工作,例如要把繁體中文轉換為簡體中文,方法是:選擇要轉換內碼的文件,在彈出的對話框中,選擇「其它編碼」中的「繁體中文(BIG5)」一項,打開此文件時就不會出現亂碼。無亂碼保存方法:在保存時選擇「文件」中的「另存為」,先存為「Word文檔,存檔後打開再存為純文本等其它格式;您也可以用Word的「中文簡繁轉換」工具實現無亂碼保存,方法是在菜單欄中選擇「工具/語言/中文簡繁轉換」,內碼轉換後再保存。
除此之外,消除這類亂碼還可用內碼轉換工具,對BIG5(繁體中文)和GB2312(國標碼、簡體中文)進行相互轉換來實現。常用的內碼轉換工具有:「颶風簡繁通、「內碼轉換大師、「華語通、「兩岸通漢字內碼轉換器等等
(二)、Win9X/Win2K系統亂碼的消除
這類亂碼是由於注冊表中關於字體部分配置不正常造成的,即使您用內碼翻譯軟體如四通利方、南極星、Magic Win98、兩岸通等處理也不會消除。解決辦法是:恢復注冊表中關於字體部分設置。
如有一台Win9X/Win2K版本相同且顯示正常的機器,則可依下列步驟進行恢復:
1.在正常機器上選擇「開始」/「運行」,在對話框中鍵入「REGEDIT」,打開注冊表編輯器;
2.游標定位到「HKEY_LOCAL_MACHINE\ SYSTEM\CURRENT CONTROL SET\CONTROL\ FONTASSOC」,選擇「注冊表/導出注冊表文件」,再選擇「分支」,導出該分支注冊表信息到文件(如LI.REG)中;
3.把LI.REG文件Copy到顯示亂碼的機器上,在顯示亂碼機器上運行REGEDIT,選擇「注冊注冊表」/「導入注冊注冊表」,把LI.REG文件導入注冊表中。
如沒有Win9X/Win2K版本相同且顯示正常的機器,則需要您手工恢復字體部分注冊表項,按以下步驟:
1.在亂碼機器上打開「開始」——「運行」——REGEDIT,然後回車,打開注冊表編輯器;
2.找到「HKEY_LOCAL_MACHINE\SYSTEM\ CURRENT CONTROL SET\CONTROL\FONTASSOC」,正常情況下,會有ASSOCIATED DEFAULTFONTS、ASSOCIATED CHARSET兩個文件夾,其正確的內容為:
子目錄內容
中文Win98
中文Win98(OEM版)
中文Win2K
AASOCIATED CHARSET
ANSI(00)=「yes」
GB2312(86)=「yes」
DEN(FF)=「yes」
SYMBOL(02)=「no」
ANSI(00)=「yes」
GB2312(86)=「yes」
OEM(FF)=「yes」
SYMBOL(02)=「no」
ANSI(00)=「yes」
OEM(FF)=「yes」
SYMBOL(02)=「no」
ASSOCIATED DEFAULT
FONTS
AssocSystemFont=「simsun.ttf」
FontPackageDecorative=「宋體」
FontPackageDontcare=「宋體」
FontPackageModern=「宋體」
FontPackageRoman=「宋體」
FontPackageScript=「宋體」
FontPackageSwiss=「宋體」
同左欄
AssocSystemFont=「simsun.ttf」
FontPackage=「新宋體」
FontPackageDecorative=「新宋體」
FontPackageDontcare=「新宋體」
FontPackageModern=「新宋體」
FontPackageRoman=「新宋體」
FontPackageScript=「新宋體」
FontPackageSwiss=「新宋體」
3.當出現漢字亂碼時,上述兩個文件夾中內容就會不完整,有的沒有ASSOCIATED CHARSET文件夾或其中內容殘缺不全;有的ASSOCIATED DEFAULTFONTS下內容殘缺。只要用REGEDIT在「HKEY_LOCAL_MACHINE\SYSTEM\CURRENTCONTROLSET\ CONTROL\FONTASSOC」下,根據以上正確內容恢復即可。
(三)、應用程序(包括游戲)亂碼的消除
中文軟體菜單等顯示界面上出現亂碼,可能是由於Windows注冊表中關於字體設置的信息不正確地改變而造成的,這時候可以用上述第2點介紹的辦法去解決。
如果用上法解決不了,那就是因為軟體的中文鏈接庫被英文鏈接庫覆蓋而引起的,這種現象經常發生在用微軟開發工具例如VB、VC開發的中文軟體上,這類軟體中,菜單等顯示界面上的漢字都是受一個動態鏈接庫(DLL文件)控制,而軟體的這個動態鏈接庫一般安裝在Windows的System目錄下,如果以後安裝了某個英文軟體也使用同名的動態鏈接庫,則英文軟體的動態鏈接庫就會覆蓋WINDOWS\SYSTEM下的中文軟體的動態鏈接庫,這樣,運行中文軟體時就會調用英文的動態鏈接庫,因此出現亂碼。解決辦法是重新安裝中文軟體,恢復中文動態鏈接庫即可。
(四)、郵件亂碼的消除
1.郵件亂碼原因及其排除
郵件亂碼的形成原因很多,主要有以下幾個方面:
(1)郵件伺服器不支持8位(非ASCII碼格式)
傳輸郵件傳輸機制或郵件編碼的不同,可能造成郵件伺服器不支持8位(非ASCII碼格式)傳輸而形成郵件亂碼。例如直接發送中文或二進制等非ASCII碼格式的郵件(如中文雙位元組文件、圖片文件.jpg、可執行文件.exe或壓縮文件.zip等二進制文件)時,郵件伺服器有可能無法處理,便把信件中每個字元的第8位都過濾掉,從而造成郵件信息的失真或損壞,在收到郵件時就是一堆亂碼。
對策:在發送8位格式的文本文件時,必須事先進行編碼,將文件轉換為7位ASCII碼或更少位數的格式,然後才能保證文件的正確傳送。收件人收到7位或更少位格式的郵件後,可以再轉換為8位的格式,這樣就可避免亂碼。
(2)收發端使用的E-mail軟體和設置不同
一般E-mail軟體的「附件」功能都可以自動對信件先進行編碼,然後送出。這樣只要收信人使用的E-mail軟體(如Outlook、Netscape E-mail等)能區別信件的編碼方式,就可以自動將信件解碼。然而由於收發件人所用的E-mail軟體默認配置不同或收發件人自己定製的一些選項不同,所以在收到編碼的信件後,系統不一定能識別出信件所用的編碼方法,自然無法自動解碼,這樣就會出現亂碼。
對策:可以用Winzip+IE來解碼,方法是:把亂碼郵件的內容,拷貝到剪貼板中,然後將其粘貼到記事本中,存為文本文件(例如LI.txt),再將其後綴改為.uue(改為LI.uue),點擊此文件,會啟動Winzip,然後啟動IE,把Winzip中的001.txt文件拖到IE窗口中,就會顯示郵件原來的內容,而不會看到亂碼。
也可以根據郵件中的關鍵字元判斷編碼方法,選取合適的解碼軟體進行解碼。
郵件的編碼方式主要有:UUENCODE、Base64 encode、QP-encode、BINHEX等。
UUENCODE:這是UNIX環境下使用的編碼方式,目前已經很少用,大體格式為:
begin 644 kk.zip M1G)O;2!I;&EN+F)B3T!C(VEE+FYC='4N961U+G1W(%=E9"!.;W8@(#8@,3(ZM,SDZ,C4@,3DY-@I296-E:79E9#H@9G)O;2!F;&%B;6%I;"YF;&%B+F9U:FET……
end
特徵:亂碼前面含有「begin xxx」,後面是編碼前的原始文件名(如kk.zip),接著是已經過編碼的信件內容(如上述的亂碼部分)最後一行為「end」。
解碼辦法:可用BECKY!EUDORA等E-mail軟體,選擇編碼中相應的選項就可解碼,也可以在E-mail軟體中保存亂碼郵件,存為後綴為「.UUE」格式的文件,然後用Winzip解碼展開。解碼後就會消除亂碼。
MIME/BASE64 encode:該編碼方式將3個位元組(8位)用4個位元組(6位)表示,由於編碼後的內容是6位的,因此可避免第8位被截掉,大體格式為:
MIME-Version:1.0
Content-Type:text/plain; charset="us-ascii"
Content-Transfer-Encoding:base64
Status:R
+sXqsT6Skp OWrSKXzsN3DRLFNrmGhQQ0Kq1+sTqq6vdCx<BR>0LF6tFit07Ddw0ShRw0KD QqtuqX9p2m2RLF6p9qoz6XOIE 1Py3Jvc29mdCuiBJbnRlcm5ldCBN……
特徵:亂碼前一般有如下幾部分「信頭」:Content-Type(內容類型)、charset(字元集)和Content-Transfer-Encoding(內容傳輸亂碼方式)。
解碼辦法:用E-mail軟體,選擇編碼中Base64 選項就可解碼,解碼後會消除亂碼。
QpencodeQP:全稱「Quoted-Printable Content-Transfer-Encoding」。因為這種格式郵件的內容都是ASCII字元集中可以列印的字元,所以名稱中含有Printable。大體格式為:
=A1A=B1z=A6n=A1I=A7=DA=A6b=BA=F4=B8=F4=A4W
=B1o......
=E5==ABH=A5=F3=B0=DD=C3D=B1M=Aea=A1A......
特徵:內容通常有很多等號「=」,因此不需要看「信頭」也可以判斷是否為QP編碼。
解碼辦法:把郵件中類似A1A=B1z=A6n...的部分編碼全部復制下來,貼到一個新的純文本文件中,然後在文件頭部加入Quoted-Pintable格式的文件頭:
Contenet-Type:text/plain;Charset="GB2312"
Content-Transfer-Encoding;Quoted-Pintable
然後以「EML」為後綴保存文件,用資源管理器雙擊打開文件即可顯示正確的內容。如果還有部分漢字亂碼,可以用Winzip對存檔後的EML文件進行解壓,即可看到正確的內容。
BINHEX:這種編碼方式大體格式為:
(This file must be converted with Binhex4.0)
ssTqq6vdCx<BR>
oz6XOIE……
解碼辦法:用E-mail軟體對它解碼;也可在E-mail軟體中保存亂碼郵件,存為後綴為「.HQX」格式的文件,然後用Winzip解碼展開。
解碼後會消除亂碼。
UTIF-7/UTIF-8:它們是UNICODE的兩種轉換碼。
UTIF-7編碼方式大體格式為:
+SGmhQbF/6pm6hSafapmK69L/j0pFexb6q+sXqsT6Skp. OWrSKXzsN3DRLFNrmGhQQ0Kq1-sTqq6vdCx<BR>0LF6tFit07Ddw0ShRw0KD QqtuqX9p2m2RLF6p9qoz6XOIE 1Py3Jvc29mdCuiBJbnRlcm5ldCBN……
解碼辦法:在原E-mail頭加入以下信息:
MIME-Version:1.0
Content-Type:text/plain; charset="utf-7"
Content-Transfer-Encoding:7bit
插入後與字元留一空行,將郵件存為「EML」後綴,然後用Outlook即可解碼,消除亂碼。
UTIF-8
解碼辦法:在原E-mail頭加入以下信息:
MIME-Version:1.0
Content-Type:text/plain; charset="utf-8"
Content-Transfer-Encoding:8bit
將郵件存為「EML」後綴,然後用Outlook即可解碼,消除亂碼。
(3)操作系統語種不同
對於中文電子郵件,如果收信方所用的操作系統是英文環境而且沒有外掛中文系統或未切換為中文(如四通利方或南極星等)編碼方式,也會無法看到中文只見亂碼。所有的雙位元組字元(如中文簡/繁體的GB和BIG5碼及日文的JIS、EUC和朝鮮文的 KSC碼等)在非本語種操作系統下都會出現亂碼。同樣在中文簡體的GB碼環境下看其它雙位元組字元時也只能看到亂碼。
對策:安裝多語言支持包或使用多內碼顯示平台(如四通利方或南極星等),對收到的郵件,根據其使用的語種切換到相應的編碼方式即可消除亂碼。
2.為了避免別人收到亂碼,發信方應注意:
(1) E-mail軟體中的正確設置
使用英文E-mail軟體應設置成:
文字設定Default CHARSET:ISO 8859-1
(Latin1)
編碼方式Encoding:Quoted-Printable,不可選擇7位(因為7位不支持中文)
字碼頁Code Page(可選):936或HZ-GB-2312,
以支持整字識別郵件格式:MIME
字體:宋體
中文E-mail軟體應設置成:
文字設定Default CHARSET:簡體中文GB2312
編碼方式Encoding:Quoted-Printable郵件格式:MIME
字體:宋體
Outlook Express中應把「簡體中文(GB2312)作為默認的郵件使用語言,選擇「國際設置」/為接收的所有郵件使用默認的編碼。
(2)發送前將郵件按7位格式重新編碼
在發送8位格式的文本文件時,必須事先進行編碼,將文件轉換為7位ASCII碼或更少位數的格式,然後才能保證文件的正確傳送。收件人收到7位或更少位格式的郵件之後,可以再轉換為8位的格式,這樣就可以閱讀了。
在郵件客戶端軟體中的書寫(撰寫)選項中,設定默認自動為7位編碼。
(3)轉換成合適的內碼
在E-mail軟體的書寫(撰寫)選項中,設定默認自動為7位編碼。對用漢字系統編輯的中文郵件在發送前,最好在固定的簽字欄中註明自己所使用的漢字碼標准(如:GB2312、中文HZ、GBK);港澳台及東南亞地區郵件作者在使用BIG5碼撰寫完郵件、向內地發送前要轉換成上述三種簡體國標碼中的一種形式並在簽字欄中註明。如不轉換則可能無法閱讀,因為國內用戶使用的郵件系統有很多不支持BIG5碼。
(4)發送重要信息時先發測試信
發送重要信息時,為了確認是否無須編碼即可發送正文,應該先發送測試信。而且還應確定收件人能否對附件文件進行解碼。如果發送已經編碼的郵件,則最好添加足夠的「信頭」信息,以便收件人知道所需的解碼方法。建議對UUENCODE/UUDeview編碼方式用UUENCODING作信頭,對Mpack編碼方式用Base64 encoding作信頭。
(5)盡量利用「附件」功能發送文件
幾乎所有的郵件軟體,如Netscape、The Bat!、 Becky! 等郵件系統附加這類非標准 ASCII碼格式的文件時,附加文件通常可以自動進行「Base64」方式編碼(僅對附件部分進行編碼)。在用「附件」方式發送郵件之前,無需進行編碼;否則適得其反。因為郵件軟體能夠自動成功解碼這類「附加」文件,因此在發送中文類郵件時應該首選這種方法。
如果無法以附件方式發送文件,則必須在正文中發送中文或二進制文件如果發/收件人之間遠隔萬里,則傳送過程中,第八位將可能被截掉。這時最好先在正文中用中文給收件人發一封測試信,並了解對方能否正確收到郵件正文。如果第八位被截掉,則收件人將會看到一些亂碼,而不是上述的uu/b64/Qp等格式,而且這種信件幾乎不可恢復。
對策:在Netscape、Eudora或Pegasus Mail等你所使用的郵件系統中,選擇其首選項或選項配置中的「Quoted Printalbe」或「MIME encoding」。
(6)選擇優秀的客戶端郵件軟體
選擇優秀E-mail收發軟體可有效解決郵件亂碼。
3.為排除亂碼,收信方應注意:
查找郵件:簽字欄或正文中有無指明本郵件所使用漢字標准碼類別的英文字元;在「查看(V)」下拉菜單中選中「語言」,隨後出現的菜單中會包括本系統所能支持的全部漢字標准,在其中單擊郵件中所指明的一種。如果收到的郵件中沒有指明其所使用的漢字標准,則只可按順序單擊,直到郵件正文顯示正確為止(數個漢字標准中必有一個前面有「.」標記,此即您編輯器所用的漢字標准)。若使用的是Netscape,可在Option菜單的Document Encode中選擇相應的項目。
4.在非中文平台上中文郵件不出現亂碼方法
當對方沒有中文平台而打開您發的中文郵件時,就會出現亂碼。解決辦法有兩種:
(1)用E-mail AID之類的工具
UCWIN GOLD 1.0附帶的工具E-mail AID可把文本文件轉換為AID格式文件,大小隻比原TXT文件增加幾K。寫好中文郵件後,用文本格式存檔,然後用E-mail AID以AID格式保存,最後把此文件連同E-mail AID一起作為附件插在信中。對方收到信後,只需運行E-mail AID打開AID格式文件即可看到漢字,不管對方在何語言平台下,都不會出現亂碼。
(2)把中文郵件以圖形格式保存
用畫筆等繪圖軟體書寫中文郵件,在圖片中輸入文字,用默認的BMP格式保存,將屬性置為黑白模式(以減少BMP圖片體積),然後用Winzip把它壓縮成ZIP格式,作為附件在郵件中發送,這樣不管對方在何語言平台下,都不會出現亂碼。這種方法的缺點是生成的BMP中文郵件體積太大。
6、關於遠程登陸的問題
Telnet是進行遠程登錄的標准協議和主要方式它為用戶提供了在本地計算機上完成遠程主機工作的能力。通過使用Telnet,Internet用戶可以與全世界許多信息中心圖書館及其它信息資源聯系。Telnet遠程登錄的使用主要有兩種情況。第一種是用戶在遠程主祝上有自己的帳號(Account),即用戶擁有注冊的用戶名和口令;第二種是許多Internet主機為用戶提供了某種形式的公共Telnet信息資源,這種資源對於每一個Telnet用戶都是開放的。Telnet是使用最為簡單的Internet工具之一。
telnet /?
命令可以縮寫。支持的命令為:
c- 關閉 關閉當前連接
d- 顯示 顯示操作參數
o- 打開主機名 [埠]連接到一個主機名(默認埠 23)
q- 退出 退出 telnet
set- 設置 設置選項(要列表,請鍵入 \'set ?\')
sen- 發送 將字元串送到伺服器
st - 狀態 列印狀態信息
u- 解除設置 解除設置選項(要列表,請鍵入 \'unset ?\')
?/h- 幫助 列印幫助信息
一 摘要
二 遠程登錄
三 Telnet協議
四 Win2000的Telnet服務
五 在telnet中該做什麼
一 摘要
Telnet的應用不僅方便了我們進行遠程登錄,也給hacker們提供了又一種入侵手段和後門,但無論如何,在你盡情享受Telnet所帶給你的便捷的同時,你是否真正的了解Telnet呢?
二 遠程登錄
Telnet服務雖然也屬於客戶機/伺服器模型的服務,但它更大的意義在於實現了基於Telnet協議的遠程登錄(遠程互動式計算),那麼就讓我們來認識一下遠程登錄。
1 遠程登陸的基本概念
先來看看什麼叫登錄:分時系統允許多個用戶同時使用一台計算機,為了保證系統的安全和記帳方便,系統要求每個用戶有單獨的帳號作為登錄標識,系統還為每個用戶指定了一個口令。用戶在使用該系統之前要輸入標識和口令,這個過程被稱為\'登錄\'。
遠程登陸是指用戶使用Telnet命令,使自己的計算機暫時成為遠程主機的一個模擬終端的過程。模擬終端等效於一個非智能的機器,它只負責把用戶輸入的每個字元傳遞給主機,再將主機輸出的每個信息回顯在屏幕上。
2 遠程登陸的產生及發展
我們可以先構想一個提供遠程文字編輯的服務,這個服務的實現需要一個接受編輯文件請求和數據的伺服器以及一個發送此請求的客戶機。客戶機將建立一個從本地機到伺服器的TCP連接,當然這需要伺服器的應答,然後向伺服器發送鍵入的信息(文件編輯信息),並讀取從伺服器返回的輸出。以上便是一個標准而普通的客戶機/伺服器模型的服務。
似乎有了客戶機/伺服器模型的服務,一切遠程問題都可以解決了。然而實際並非你想像的那樣簡單,如果我們僅需要遠程編輯文件,那麼剛才所構想的服務完全可以勝任,但假如我們的要求並不是這么簡單,我們還想實現遠程用戶管理,遠程數據錄入,遠程系統維護,想實現一切可以在遠程主機上實現的操作,那麼我們將需要大量專用的伺服器程序並為每一個可計算服務都使用一個伺服器進程,隨之而來的問題是:遠程機器會很快對伺服器進程應接不暇,並淹沒在進程的海洋里(我們在這里排除最專業化的遠程機器)。
那麼有沒有辦法解決呢?當然有,我們可以用遠程登錄來解決這一切。我們允許用戶在遠地機器上建立一個登錄會話,然後通過執行命令來實現更一般的服務,就像在本地操作一樣。這樣,我們便可以訪問遠地系統上所有可用的命令,並且系統設計員不需提供多個專用地伺服器程序。
問題發展到這里好像前途一片光明了,用遠程登錄總應該解決問題了吧,但要實現遠程登陸並不簡單。不考慮網路設計的計算機系統期望用戶只從直接相連的鍵盤和顯示器上登錄,在這種機器上增加遠程登陸功能需要修改機器的操作系統,這是極其艱巨也是我們盡量避免的。因此我們應該集中力量構造遠程登陸伺服器軟體,雖然這樣也是比較困難的。為什麼說這樣做也比較困難呢?
舉個例子來說:一般,操作系統會為一些特殊按鍵分配特殊的含義,比如本地系統將\'Ctrl+C\'解釋為:\'終止當前運行的命令進程\'。但假設我們已經運行了遠程登陸伺服器軟體,\'Ctrl+C\'也有可能無法被傳送到遠地機器,如果客戶機真的將\'Ctrl+C\'傳到了遠地機器,那麼\'Ctrl+C\'這個命令有可能不能終止本地的進程,也就是說在這里很可能會產生混亂。而且這僅僅是遇到的難題之一。
但盡管有技術上的困難,系統編程人員還是設法構造了能夠應用於大多數操作系統的遠程登陸伺服器軟體,並構造了充當客戶機的應用軟體。通常,客戶機軟體取消了除一個鍵以外的所有鍵的本地解釋,並將這些本地解釋相應的轉換成遠地解釋,這就使得客戶機軟體與遠地機器的交互,就如同坐在遠程主機面前一樣,從而避免了上述所提到的混亂。而那個唯一例外的鍵,可以使用戶回到本地環境。
將遠程登陸伺服器設計為應用級軟體,還有另一個要求,那就是需要操作系統提供對偽終端(pseudo terminal)的支持。我們用偽終端描述操作系統的入口點,它允許像Telnet伺服器一樣的程序向操作系統傳送字元,並且使得字元像是來自本地鍵盤一樣。只有使用這樣的操作系統,才能將遠程登陸伺服器設計為應用級軟體(比如Telnet伺服器軟體),否則,本地操作系統和遠地系統傳送將不能識別從對方傳送過來的信息(因為它們僅能識別從本地鍵盤所鍵入的信息),遠程登陸將宣告失敗。
將遠程登陸伺服器設計為應用級軟體雖然有其顯著的優點:比將代碼嵌入操作系統更易修改和控制伺服器。但其也有效率不高的缺點(後面的內容將會給予解釋),好在用戶鍵入信息的速率不高,這種設計還是可以接受的。
3 遠程登錄的工作過程
使用Telnet協議進行遠程登陸時需要滿足以下條件:在本的計算機上必須裝有包含Telnet協議的客戶程序;必須知道遠程主機的Ip地址或域名;必須知道登錄標識與口令。
Telnet遠程登錄服務分為以下4個過程:
1)本地與遠程主機建立連接。該過程實際上是建立一個TCP連接,用戶必須知道遠程主機的Ip地址或域名;
2)將本地終端上輸入的用戶名和口令及以後輸入的任何命令或字元以NVT(Net Virtual Terminal)格式傳送到遠程主機。該過程實際上是從本地主機向遠程主機發送一個IP數據報;
3)將遠程主機輸出的NVT格式的數據轉化為本地所接受的格式送回本地終端,包括輸入命令回顯和命令執行結果;
4)最後,本地終端對遠程主機進行撤消連接。該過程是撤銷一個TCP連接。
上面的內容只是討論了遠程登陸最基本的東西,其中的復雜和編程人員的艱辛是我們難以想像的,不知道你在舒服的使用Telnet的同時,是否想到了這些!
三 Telnet協議
我們知道Telnet伺服器軟體是我們最常用的遠程登錄伺服器軟體,是一種典型的客戶機/伺服器模型的服務,它應用Telnet協議來工作。那麼,什麼是Telnet協議?它都具備哪些特點呢?
1 基本內容
Telnet協議是TCP/IP協議族中的一員,是Internet遠程登陸服務的標准協議。應用Telnet協議能夠把本地用戶所使用的計算機變成遠程主機系統的一個終端。它提供了三種基本服務:
1)Telnet定義一個網路虛擬終端為遠的系統提供一個標准介面。客戶機程序不必詳細了解遠的系統,他們只需構造使用標准介面的程序;
2)Telnet包括一個允許客戶機和伺服器協商選項的機制,而且它還提供一組標准選項;
3)Telnet對稱處理連接的兩端,即Telnet不強迫客戶機從鍵盤輸入,也不強迫客戶機在屏幕上顯示輸出。
2 適應異構
為了使多個操作系統間的Telnet交互操作成為可能,就必須詳細了解異構計算機和操作系統。比如,一些操作系統需要每行文本用ASCII回車控制符(CR)結束,另一些系統則需要使用ASCII換行符(LF),還有一些系統需要用兩個字元的序列回車-換行(CR-LF);再比如,大多數操作系統為用戶提供了一個中斷程序運行的快捷鍵,但這個快捷鍵在各個系統中有可能不同(一些系統使用CTRL+C,而另一些系統使用ESCAPE)。如果不考慮系統間的異構性,那麼在本地發出的字元或命令,傳送到遠地並被遠地系統解釋後很可能會不準確或者出現錯誤。因此,Telnet協議必須解決這個問題。
為了適應異構環境,Telnet協議定義了數據和命令在Internet上的傳輸方式,此定義被稱作網路虛擬終端NVT(Net Virtual Terminal)。它的應用過程如下:
對於發送的數據:客戶機軟體把來自用戶終端的按鍵和命令序列轉換為NVT格式,並發送到伺服器,伺服器軟體將收到的數據和命令,從NVT格式轉換為遠地系統需要的格式;
對於返回的數據:遠地伺服器將數據從遠地機器的格式轉換為NVT格式,而本地客戶機將將接收到的NVT格式數據再轉換為本地的格式。
對於NVT格式的詳細定義,有興趣的朋友可以去查找相關資料。
3 傳送遠地命令
我們知道絕大多數操作系統都提供各種快捷鍵來實現相應的控制命令,當用戶在本地終端鍵入這些快捷鍵的時候,本地系統將執行相應的控制命令,而不把這些快捷鍵作為輸入。那麼對於Telnet來說,它是用什麼來實現控制命令的遠地傳送呢?
Telnet同樣使用NVT來定義如何從客戶機將控制功能傳送到伺服器。我們知道USASCII字元集包括95個可列印字元和33個控制碼。當用戶從本地鍵入普通字元時,NVT將按照其原始含義傳送;當用戶鍵入快捷鍵(組合鍵)時,NVT將把它轉化為特殊的ASCII字元在網路上傳送,並在其到達遠地機器後轉化為相應的控制命令。將正常ASCII字元集與控制命令區分主要有兩個原因:
1)這種區分意味著Telnet具有更大的靈活性:它可在客戶機與伺服器間傳送所有可能的ASCII字元以及所有控制功能;
2)這種區分使得客戶機可以無二義性的指定信令,而不會產生控制功能與普通字元的混亂。
參考資料:www..baidu.com