การปิดการเชื่อมต่อ telnet อย่างสง่างามจากโหมดเซสชันโดยไม่ต้องไปที่พรอมต์ telnet


16

การเชื่อมต่อ telnet ปกติเป็นเช่นนี้:

telnet localhost 22
ลอง 127.0.0.1 ...
เชื่อมต่อกับ localhost
ตัวละคร Escape คือ '^]'
SSH-2.0-OpenSSH_4.2
^]
telnet> ปิด
ปิดการเชื่อมต่อ

ฉันต้องการปิดมันจากเซสชัน telnet โดยไม่ต้องกด telnet โดยกด ความต้องการของฉันคือถ้าฉันกดอักขระควบคุมบางตัวจากเซสชัน telnet เองเช่น CTRL + A ดังนั้นมันจะออกจากเซสชันและปิดโดยอัตโนมัติ บางสิ่งเช่นนี้

$ telnet localhost 22
ลอง 127.0.0.1 ...
เชื่อมต่อกับ localhost
ตัวละคร Escape คือ '^]'
SSH-2.0-OpenSSH_4.2
อรรถเป็น
ปิดการเชื่อมต่อ
$

ฉันลองใช้ตัวเลือกทั้งหมดที่มีให้ที่ man page และพยายามทำการทดสอบไฟล์ $ HOME / .telnetrc แต่ไม่สามารถทำได้เพราะ telnetrc จะดำเนินการคำสั่งทั้งหมดที่เขียนด้วยโฮสต์ที่กำหนดเมื่อใดก็ตามที่ telnet ไปยังโฮสต์นั้น เสร็จแล้ว

ทุกคนสามารถช่วยฉันในเรื่องนี้ได้เช่นเดียวกับที่ทำได้


มันซับซ้อนมาก .. ทำไมคุณไม่ใช้ "exit" ??? มันเป็นเรื่องง่ายขึ้น ..

สำหรับการใช้ exit ฉันต้องมาที่ telnet prompt ก่อน ขวา. ในขณะที่ความต้องการของฉันคือการปิดการเชื่อมต่อ pr ออกจากโหมดเซสชั่นโดยไม่ต้องมาที่ telnet prompt (เช่นสำหรับการมาที่ telnet prompt ฉันต้องส่งอักขระ escape ก่อนแล้วจึงสามารถปิดหรือออก)
Kumar Alok

@ Paul: ฉันไม่ได้รับคุณ คุณช่วยบอกฉันได้ไหมว่าจะหาทางออกได้ที่ไหน
Kumar Alok

3
คุณช่วยอธิบายได้ไหมว่าทำไมถึงต้องการได้ Telnet เป็นเพียงโปรแกรมไคลเอนต์เพื่อเชื่อมต่อกับบริการบางอย่างในเครื่องบางเครื่อง หากคุณใช้พอร์ต 23 คุณเชื่อมต่อกับบริการ telnet และสามารถยุติการเข้าสู่ระบบของคุณด้วยexitแต่นี่เป็นคำสั่งเชลล์ไม่ใช่คำสั่ง telnet คุณต้องไปที่พรอมต์ telnet เพื่อยกเลิกการเชื่อมต่อหากบริการที่คุณเชื่อมต่อไม่ได้เสนอคำสั่งให้ยกเลิกการเชื่อมต่อ หากคุณต้องการลงชื่อเข้าใช้เครื่องระยะไกลผ่าน ssh ให้ใช้sshคำสั่งไม่ใช่telnet(เว้นแต่คุณต้องการทำการเข้ารหัสด้วยตนเอง)
Benjamin Bannier

คำตอบ:


33

ไม่telnetไคลเอนต์(ฉันเดาว่าคุณกำลังถามเกี่ยวกับ Linux หนึ่งตัว)รองรับได้เพียงหนึ่งอักขระยกเว้นCtrl]( ^])

หากคุณเพียงแค่ใช้telnetเพื่อทำการเชื่อมต่อ TCP โดยพลการพิจารณาใช้netcatหรือsocatแทน CtrlCเหล่านี้สามารถถูกขัดจังหวะโดยเพียงแค่กด


9
สำหรับผู้ติดตามคุณกด ctrl ค้างไว้จากนั้นกดปุ่ม "right bracket" แล้วกด Enter มันจะตอบสนองด้วยพร้อมต์ที่ชอบtelnet>และคุณสามารถพิมพ์quitและกด Enter เพื่อออกจากเซสชันของคุณ วุ้ย
rogerdpack

@rogerdpack ขอบคุณ นั่นเป็นวิธีออกจาก OSX
chhantyal

จะเกิดอะไรขึ้นถ้าฉันใช้สถานที่ที่รูปแบบแป้นพิมพ์ของพวกเขามีวงเล็บขวาภายใต้ alt- <คีย์อื่น ๆ > ctrl-alt- <ปุ่มอื่น ๆ > ไม่ทำงาน
user628418

จากนั้นคุณเปลี่ยนเค้าโครงแป้นพิมพ์หรือใช้แป้นพิมพ์บนหน้าจอ ...
user1686

-4

สิ่งที่ดีCTRL+ เก่าDหรือที่รู้จักกันว่า EOF?


1
มันจะทำงานเฉพาะในกรณีที่จัดการกับฝั่งเซิร์ฟเวอร์ของเซสชัน ซึ่งไม่เป็นความจริงโดยทั่วไป (และยังไม่เป็นจริงในการเชื่อมต่อ 22 ssh พอร์ตที่กล่าวถึง)
Andrey Regentov
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.