Mac OS X'te ters Telnet nasıl kurulur


7

Mac OS X 10.9.5'te (Mavericks) ters bir Telnet (COM için Telnet) kurmaya çalışıyorum. Mac seri bir cihaza bağlı. Ekranı kullanarak Mac’ten seri cihaza erişmekte hiç sorunum yok:

screen /dev/cu.USBserial

Ancak, aygıta Telnet aracılığıyla uzaktan erişmek istiyorum.

Netcat'ı kullanmayı denedim ( nc ) ve sınırlı başarıya sahip. Kullandığım komut:

nc -l 9999 > /dev/cu.USBserial < /dev/cu.USBserial

Sonra cihaza Telnet yapabilirim. Ancak, iki nedenden dolayı çalışmıyor:

  1. Etkileşimli kullanıcı arayüzü için, giriş ben çarpıncaya kadar esas olarak satır tamponlanır. dönüş .
  2. Bütün girdilerim bana tekrar yansıyor. Gerçek hayatta, cihaz giriş karakterimi yansıtıyor olmalı.

Bunu yapmanın doğru yolu nedir?


Uzaktan ile uzaktan ne kastediyorsunuz? Bir LAN içinde veya dışında bir WAN'dan LAN'a veya ters Telnet'e mi demek istiyorsunuz?
JakeGould

@JakeGould, gerçekten önemli değil. Başka bir terminal sekmesine kadar veya dünyanın diğer ucuna kadar olabilir. Mesele ağ bağlantısı değil, seri ve ters telnet arasında köprü kurmaktır.
some user

Yanıtlar:


4

En basit yöntem:

  1. telnet (veya daha doğrusu ssh ) Mac'inize
  2. yazın screen /dev/cu.USBserial komuta

Şimdi, mac'unuza doğrudan com port'a bağlamak veya başkalarının bunu yapmasına izin vermek istemiyorsanız, işte size bir yol:

  1. Mac'inizde özel bir kullanıcı oluşturun. Buna "comport" diyelim ve bu kullanıcı olarak giriş yapalım.
  2. Bu kullanıcı için bir bağlantı komut dosyası oluşturun. Adlı bir dosya oluşturun /Users/comport/log2com.sh ve bu satırları içine yerleştirin:

    #!/bin/bash
    /usr/bin/screen -R /dev/cu.USBserial
    
  3. Komutun terminalinizde bu komutu çalıştırarak çalıştırılmasına izin verin:

    chmod +x /Users/comport/log2com.sh
    
  4. Son olarak, bu betiği, kullanıcının giriş kabuğu olarak ayarlayın. Bunun için, Sistem Tercihleri ​​& gt; Kullanıcılar ve Gruplar, kullanıcılar listesinde, kullanıcıya sağ tıklayın ve "Gelişmiş Seçenek" seçeneğini seçin. Sonra "kabuk" alanına, yazın /Users/comport/log2com.shve Tamam'ı tıklatın.

Bu kadar. Şimdi telnet yapabilirsiniz (tavsiye ederim ssh!) Mac'inizdeki bu girişe doğrudan ekrana geçmek için.

Çıkmak için ekran biçiminde yapmanız gerektiğini unutmayın (genellikle Ctrl + bir , sonra :quit Dönüş ).

Bunu OSX 10.10.5'te test etti. İşe yarayıp yaramadığını bana bildir.


3
@kenorb güzel düzenleme için teşekkürler!
CuriousFab

Çok ilginç bir çözüm. Ancak, çözüm benim için biraz fazla hack. Örneğin, yeni bir kullanıcı gereklidir. Ve Mac'ime telnet girişini etkinleştirmem gerekiyor (unutmayın, ters Telnet'e ihtiyacım var). Ekrandan çıkmazsam: çıkın ama ondan ayrıldım. Bir sonraki giriş başarısız olacak. Ve son olarak, en az değil, ekrandan kabuğa erişmek mümkün ve çok büyük bir güvenlik riski haline geliyor (telnet'in etkinleştirilmesine ek olarak). Aradığım çözüm netcat / socat'ın cihaza erişiminde (uygun) bir şekilde yatıyor.
some user

Bazı birkaç açıklama: 1) Aslında yeni bir kullanıcı gerekli: kutunuza telnet veya ssh göndermek için bir giriş yapmanız gerekiyor. Doğrudan com port'ta oturum açmak istiyorsanız, com'a bağlanmak için bu ters telnet'e tahsis edilmiş bir giriş kullanmanız gerekir. Özel bir giriş yapmadan bunu nasıl yapmayı umduğunu anlamıyorum. 2) Bir ekran oturumundan çıktıktan sonra ayrıldıktan sonra tekrar giriş yapabilmek için, -R Cevaptaki seçenek. 3) Ben bir ekran uzmanı değilim ama bir kabuğu açamadım. & Lt; kbd & gt; Ctrl ve m / kbd & gt; ıt kbd & gt; A '/ kbd & gt; daha sonra c / kbd; Bu oturum açma kabuğu olmadığı için yeni bir ekran açamıyor.
CuriousFab

ters telnet sadece bir telnet portu arasında, örneğin 4321 arasında bir konsola bağlanan bir sunucudur; bir modem Giriş isteğe bağlıdır. Bir kullanıcı hesabı gerekli değildir. Nc örneğime bakabilirsiniz.
some user

TAMAM. Amacını anlıyorum. Tamponlama sorunu için nc tabanlı bir yaklaşımla, içinde bir çözüm bulabilirsiniz. bu gönderi . Ayrıca, GNU’ya bir bakabilirsiniz. netcat, uygun Demlemek ve kullanımı expect. İyi şanslar ve bu şekilde çalışmayı başarırsanız bize bildirin. ;)
CuriousFab

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.