SSH का उपयोग करते हुए एक सीरियल पोर्ट से कैसे जुड़ा जाए?


86

वहाँ एक धारावाहिक टर्मिनल से कनेक्ट करने का एक तरीका है जैसे आप SSH के साथ करते हैं? इस तरह के Minicom जैसे उपकरणों की तुलना में एक सरल तरीका होना चाहिए

$ serial /dev/ttyS0 

मुझे पता है कि मैं catआउटपुट कर सकता हूं /dev/ttyS0लेकिन पोर्ट से कंसोल तक केवल एक ही रास्ता संचार संभव है। और echoबंदरगाह से बाहर बंदरगाह के लिए बस एक ही है, लेकिन चारों ओर एक ही रास्ता है।

मैं यूनिक्स / लिनक्स पर सबसे सरल संभव तरीके से सीरियल पोर्ट के साथ दो तरह के संचार का एहसास कैसे कर सकता हूं?


2
शानदार जवाब लोगों!। दुर्भाग्य से कोई भी मेरे उद्देश्य को पूरी तरह से फिट नहीं करता है जब कमोड के सीमित सेट के साथ एम्बेडेड सिस्टम के साथ काम करना। हालाँकि मुझे शेल विभाजन का उपयोग करने का एक और तरीका मिला जो मैं अपने प्रश्न के उत्तर में से एक के रूप में जोड़ता हूं।
१.१५ पर १२

जवाबों:


69

मुझे screenधारावाहिक संचार के लिए सबसे उपयोगी कार्यक्रम मिल गया है क्योंकि मैं इसे अन्य चीजों के लिए उपयोग करता हूं। यह आमतौर पर बस है screen /dev/ttyS0 <speed>, हालांकि आपके डिवाइस के लिए डिफ़ॉल्ट सेटिंग्स भिन्न हो सकती हैं। यह आपको कमांड मोड में प्रवेश करके और सत्र में कुछ भी पाइप करने की अनुमति देता है exec !! <run some program that generates output>


3
स्क्रीन के लिए +1! इसके अलावा, देखें: serverfault.com/q/81544/11086
जोश

1
यह भी देखें कि noah.org/wiki/Screen_notes#using_screen_as_a_serial_terminal और मैनुअल पेज स्टटी (1), मुझे इसके लिए अतिरिक्त विकल्प (जैसे समता) जोड़ना होगा।
लेकेनस्टाइन

3
मुझे शर्म आती है कि मैंने गलत तरीके से TX / RX: o
Lekensteyn

screenभयानक है, लेकिन मुझे नहीं लगता कि यह आसान से minicom:-)
Ciro Santilli 改造 but

1
@CiroSantilli 刘晓波 死 事件 法轮功 Screen - स्क्रीन Minicom की तुलना में सरल नहीं हो सकती है, लेकिन क्योंकि मैं पहले से ही स्क्रीन का उपयोग करता हूं, मेरे लिए यह स्क्रीन के साथ मेरे धारावाहिक सामान को करने के लिए कम जटिलता है भी पूरी तरह से मिनिकॉम की आवश्यकता को समाप्त करता है।
यति

48

पृष्ठभूमि

एक सीरियल पोर्ट पर संवाद करने के लिए आपको किसी भी कार्यक्रम की आवश्यकता क्यों है इसका मुख्य कारण यह minicomहै कि पोर्ट को एक कनेक्शन शुरू करने से पहले स्थापित करने की आवश्यकता है । यदि इसे उचित रूप से सेट नहीं किया गया था, catऔर echoआदेश आपके लिए वह नहीं करेंगे जो आपने अपेक्षित किया होगा। ध्यान दें कि जैसे ही आप कोई प्रोग्राम चलाते हैं minicom, पोर्ट minicomउपयोग की गई सेटिंग्स के साथ छोड़ दिया जाता है। आप sttyइस तरह से प्रोग्राम का उपयोग करके संचार सेटिंग्स को क्वेरी कर सकते हैं :

stty < /dev/ttyS0

यदि आपने इसे सही किया है; कंप्यूटर को बूट करने के बाद और minicom,संचार सेटिंग्स जैसे किसी अन्य प्रोग्राम को चलाने से पहले उनकी डिफ़ॉल्ट सेटिंग्स पर होगा। ये संभवतः आपके कनेक्शन बनाने की आवश्यकता से भिन्न हैं। इस स्थिति में, कमांड catया echoपोर्ट पर भेजना या तो कचरा पैदा करेगा या बिल्कुल काम नहीं करेगा।

उपयोग करने के बादstty फिर से चलाएँ , और आप देखेंगे कि सेटिंग्स उस प्रोग्राम पर सेट हैं जो प्रोग्राम का उपयोग कर रहा था।minicom

न्यूनतम धारावाहिक संचार

मूल रूप से, सीरियल पोर्ट के माध्यम से दो-तरफ़ा संचार करने के लिए दो चीजों की आवश्यकता होती है: 1) सीरियल पोर्ट को कॉन्फ़िगर करना, और 2) छद्म ट्टी रीड-राइट को खोलना।

सबसे बुनियादी कार्यक्रम जो मुझे पता है कि यह है picocom। आप setserialपोर्ट सेट करने के लिए एक टूल का उपयोग भी कर सकते हैं और फिर शेल से सीधे इसके साथ इंटरैक्ट कर सकते हैं।


5
picocomआपको इसे पुन: कॉन्फ़िगर किए बिना सीरियल पोर्ट से कनेक्ट करने देगा ( --noinit) और आपको सीरियल पोर्ट कॉन्फ़िगरेशन ( --noresetया उपयोग Ctrl-A/ Ctrl-Qछोड़ने के लिए picocom) को बहाल किए बिना बाहर निकलने देगा । मैंने picocomउपयोग करने में बहुत आसान पाया है minicom। जिन कारणों से मुझे पता नहीं चला है, मिनिकॉम कभी-कभी उस पोर्ट पर डेटा नहीं भेजेगा या प्राप्त नहीं करेगा जो पहले काम करता था या जिसे पिकॉक से कोई परेशानी नहीं है। यह शायद कुछ आर्कन कॉन्फ़िगरेशन विकल्प है, लेकिन जो कुछ भी मैं यह समझ नहीं पा रहा हूं (और यह व्यवहार एक से अधिक मशीनों पर हुआ है)।
माइकल बूर

Picocom के लिए +1! मैंने पाया कि मैं सही लाइन एंडिंग के बिना सीरियल डिवाइस पर कमांड्स लिखने में सक्षम नहीं था: मुझे --omap crcrlf --echoविकल्प का उपयोग करने की आवश्यकता थी
user2561747

24

यदि सिस्टम पर UUCP स्थापित है, तो आप कमांड cu , उदा

 $ cu -l /dev/ttyS0 -s 9600

उपयोग ~^Dया ~.बाहर निकलने के लिए।
इमान

24

मुझे यहां एक शेल स्क्रिप्ट का उपयोग करने का एक तरीका मिला, जो catएक पृष्ठभूमि प्रक्रिया और थोड़ी देर के लूप के रूप में रखा गया था जो उपयोगकर्ता इनपुट को पढ़ता है और echoइसे पोर्ट पर ले जाता है। मैंने इसे और सामान्य बनाने के लिए संशोधित किया और इसने मेरे उद्देश्य को पूरी तरह से फिट किया।

#!/bin/sh

# connect.sh

# Usage:
# $ connect.sh <device> <port speed>
# Example: connect.sh /dev/ttyS0 9600

# Set up device
stty -F $1 $2

# Let cat read the device $1 in the background
cat $1 &

# Capture PID of background process so it is possible to terminate it when done
bgPid=$!

# Read commands from user, send them to device $1
while read cmd
do
   echo "$cmd" 
done > $1

# Terminate background read process
kill $bgPid

1
इसके अलावा, मैंने नीचे थोड़ा संशोधित संस्करण बनाया है जो Ctrl + C और Ctrl + Z भी भेज सकता है।
फ्रिट्ज़

@ फ्रिट्ज अच्छा लगता है! इसलिए अगर मुझे यह अधिकार मिलता है, तो पृष्ठभूमि की प्रक्रिया कभी भी नहीं होगी क्योंकि $? कुछ भी सही करने के लिए विस्तार करने के लिए प्रतीत नहीं होता है?
Ihatetoregister

1
@ihatetoregister: बिल्कुल सही नहीं है। पृष्ठभूमि की प्रक्रिया को मार दिया गया है, लेकिन उन कारणों के लिए नहीं जो कोई उम्मीद कर सकता है। $?अंतिम नॉन-बैकग्राउंड कमांड (इस मामले में stty -F $1 $2) के एग्जिट कोड का विस्तार करता है, इसलिए त्रुटि नहीं होने पर यह 0 तक फैल जाता है। इस प्रकार, आखिरी पंक्ति बन जाती है kill 0जो बदले में वर्तमान शेल और उसके सभी बच्चों को मारने लगती है (यह मुझे लगता है कि इंटरैक्टिव गोले में अलग तरह से व्यवहार करता है)। सभी विवरणों के लिए निम्नलिखित विवरण देखें: unix.stackexchange.com/questions/67532/…
Fritz

1
होवरवर, आपकी स्क्रिप्ट में असली गोचर यह है कि पृष्ठभूमि प्रक्रिया केवल तभी मारी जाती है जब आप अपनी स्क्रिप्ट को समाप्त करने के लिए Ctrl + D दबाते हैं, क्योंकि यह whileलूप को साफ-सुथरा समाप्त करता है। यदि आप इसे Ctrl + C या killकमांड के साथ मारते हैं , तो यह catप्रक्रिया जीवित रहती है। यह तय करने के लिए कि शेल से बाहर निकलने trapपर आपको निष्पादित करने के लिए कमांड का उपयोग करने की आवश्यकता होगी kill $bgPid, जैसे नीचे मेरी स्क्रिप्ट नीचे है । ईमानदारी से कहूं तो मुझे भी कोई आपत्ति नहीं होगी अगर आपने मेरी पूरी स्क्रिप्ट को अपनी पोस्ट में शामिल किया। मैंने ऐसा करने की कोशिश की, लेकिन संपादन अस्वीकार कर दिया गया था।
फ्रिट्ज़

क्या आप स्पष्ट कर सकते हैं कि कनेक्ट कहां से आता है, क्योंकि यह आपके उत्तर में टिप्पणी की गई है
क्रिस हैल्क्रो

14

Http://tio.github.io आज़माएं

"tio" एक सरल TTY टर्मिनल एप्लिकेशन है, जो मूल इनपुट / आउटपुट के लिए TTY उपकरणों से आसानी से जुड़ने के लिए एक सीधी कमांडलाइन इंटरफ़ेस की सुविधा देता है।

विशिष्ट उपयोग विकल्प के बिना है। उदाहरण के लिए:

tio /dev/ttyS0

जो आमतौर पर उपयोग किए जाने वाले विकल्पों से मेल खाती है:

tio --baudrate 115200 --databits 8 --flow none --stopbits 1 --parity none /dev/ttyS0

यह सभी विकल्पों के लिए पूर्ण शेल ऑटो समापन समर्थन के साथ आता है।


3
मैं उपयोग कर रहा हूँ msys2विंडोज पर और आप स्थापित कर सकते हैं tioके साथ pacman -S tioयह डिफ़ॉल्ट रूप से उपलब्ध संकुल के बीच है, क्योंकि। screen, picocomआदि नहीं हैं। धन्यवाद!
कोहनी रॉबर्ट

12

यह स्क्रिप्ट एक अन्य उत्तर पर आधारित है , लेकिन सीरियल पोर्ट (Ctrl + Q को छोड़कर) पर सबकुछ भेजती है , न कि केवल एक आदेश का पालन करती है Enter। यह आपको दूरस्थ होस्ट पर Ctrl + C या Ctrl + Z का उपयोग करने में सक्षम बनाता है, और इंटरेक्टिव "GUI" कार्यक्रमों का उपयोग करने के लिए उपयुक्तता या alsamixer जैसे। इसे Ctrl + Q दबाकर छोड़ा जा सकता है।

#!/bin/bash

if [[ $# -lt 1 ]]; then
    echo "Usage:"
    echo "  femtocom <serial-port> [ <speed> [ <stty-options> ... ] ]"
    echo "  Example: $0 /dev/ttyS0 9600"
    echo "  Press Ctrl+Q to quit"
fi

# Exit when any command fails
set -e

# Save settings of current terminal to restore later
original_settings="$(stty -g)"

# Kill background process and restore terminal when this shell exits
trap 'set +e; kill "$bgPid"; stty "$original_settings"' EXIT

# Remove serial port from parameter list, so only stty settings remain
port="$1"; shift

# Set up serial port, append all remaining parameters from command line
stty -F "$port" raw -echo "$@"

# Set current terminal to pass through everything except Ctrl+Q
# * "quit undef susp undef" will disable Ctrl+\ and Ctrl+Z handling
# * "isig intr ^Q" will make Ctrl+Q send SIGINT to this script
stty raw -echo isig intr ^Q quit undef susp undef

# Let cat read the serial port to the screen in the background
# Capture PID of background process so it is possible to terminate it
cat "$port" & bgPid=$!

# Redirect all keyboard input to serial port
cat >"$port"

7

BTW, पोटीन पैकेज (जो लिनक्स पर चलता है) में सीरियल सपोर्ट शामिल है।


4

एक और समस्या जो हो सकती है वह यह है कि आपके उपयोगकर्ता खाते को सीरियल पोर्ट तक पहुंचने के लिए "डायलआउट" समूह पर सेट करना पड़ सकता है।

sudo usermod -a -G dialout $USER

3

पोटीन लिनक्स पर अच्छी तरह से काम करता है और विशेष रूप से धारावाहिक संचार के लिए कुछ सुविधा प्रदान करता है। इसका एक दोष यह है कि मैं सीधे हल नहीं कर पाया: पुट्टी खिड़की से कोई कॉपी-पेस्ट नहीं। विंडोज़ संस्करण में हाइलाइट करने के लिए क्लिपबोर्ड पर एक प्यारी ऑटो-कॉपी है, व्यवहार को राइट-क्लिक करने के लिए (और क्रोम और फ़ायरफ़ॉक्स दोनों के लिए एक ही व्यवहार को सक्षम करने के लिए उत्कृष्ट प्लगइन्स हैं), लेकिन लिनक्स पर, कोई कॉपी AFAIK से प्यार नहीं करता है।

यदि कॉपी की कमी एक समस्या है (यह मेरे लिए है) तो पोटीन में लॉग ऑन करें और एक मानक टर्मिनल विंडो खोलें और # tail -f putty.logमानक कोपिपास्ता कार्रवाई के लिए द्विदिश पाठ उपलब्ध है।


1
मुझे लगता है कि लिनक्स के तहत पुट्टी "क्लिपबोर्ड" (जिसे आप नियंत्रण-सी के साथ कॉपी करते हैं) पेस्ट नहीं करते हैं, लेकिन यह मध्य-माउस के साथ "प्राथमिक चयन" (जो आपने वर्तमान में किसी कार्यक्रम में चुना है) को सम्मिलित करेगा। इसी तरह आप प्राथमिक चयन को परिभाषित करने के लिए पुट्टी की स्क्रीन में पात्रों का चयन कर सकते हैं। लेकिन अगर मुझे कुछ वीएम को स्थानांतरित करने के लिए एक पोटीन स्क्रीन से पाठ चाहिए, तो मुझे क्लिपबोर्ड होने की आवश्यकता है, इसलिए मुझे मुख्य चयन से पाठ प्राप्त करने के लिए एक मध्यस्थ कार्यक्रम का उपयोग करना होगा और फिर इसे क्लिपबोर्ड पर कॉपी करना होगा।
कार्डिफ़ स्पेस मैन

3

जैसा कि पहले बताया गया है कि आप पिकॉकम ट्राई कर सकते हैं। नवीनतम रिलीज़ (2.0) का उपयोग (सुरक्षित रूप से) "टर्मिनल सर्वर" को सेट करने के लिए भी किया जा सकता है क्योंकि यह शेल कमांड इंजेक्शन की अनुमति नहीं देता है। देख:

https://github.com/npat-efault/picocom/releases


2

यह आप पर निर्भर करता है की आप क्या करना चाहते हो। क्या आप टर्मिनल से एक शेल या एप्लिटॉन को अंतःक्रियात्मक रूप से चलाना चाहते हैं, सीरियल लाइन पर किसी अन्य कंप्यूटर से कनेक्ट करना, सीरियल पोर्ट पर डिवाइस के साथ संचार को स्वचालित करना?

यदि आप द्विदिश संचार चाहते हैं तो मुझे लगता है कि आप टर्मिनल पर एक मानव के साथ कुछ इंटरैक्टिव चाहते हैं। आप सीरियल पोर्ट पर एक गेटी (1) सत्र सेट करके टर्मिनल से लॉगिन को अनुमति देने के लिए सिस्टम को कॉन्फ़िगर कर सकते हैं - गेटी टर्मिनल स्थापित करने और उस पर लॉगिन की अनुमति देने के लिए उपकरण है। इसे उचित सीरियल पोर्ट पर एक आधार पर चलाने के लिए अपनी इनटैब (5) फ़ाइल में एक प्रविष्टि रखें respawn

यदि आप एक डिवाइस से कनेक्ट करना चाहते हैं और स्वचालित दो तरह की बातचीत शुरू करते हैं, तो आप देख सकते हैं कि क्या उम्मीद आपको मिलेगी जो आप चाहते हैं। का प्रयोग करें (1) stty सही समता, बॉड दर और अन्य प्रासंगिक सेटिंग पर पोर्ट कॉन्फ़िगर करने के लिए।

यदि आप सीरियल पोर्ट पर किसी अन्य कंप्यूटर के साथ अंतःक्रियात्मक रूप से संवाद करना चाहते हैं तो आपको टर्मिनल एमुलेशन सॉफ्टवेयर की आवश्यकता होगी। यह काफी कुछ करता है - यह बंदरगाह की स्थापना करता है, एएनएसआई या अन्य टर्मिनल कमांड अनुक्रमों की व्याख्या करता है (एएनएसआई धारावाहिक टर्मिनलों द्वारा समर्थित एकमात्र मानक होने से बहुत दूर था)। कई टर्मिनल एमुलेटर फ़ाइल ट्रांसफर प्रोटोकॉल जैसे किर्मिट या ज़मोडम का भी समर्थन करते हैं।

सीरियल कम्युनिकेशंस और टर्मिनल I / O का इन्स और बहिष्कार काफी जटिल है; आप इस विषय पर जानने के लिए जितना आप चाहते हैं, उससे अधिक आप धारावाहिक हॉव्टो में पढ़ सकते हैं


1

आप पर एक नज़र रखना चाहते हो सकता है

http://serialconsole.sourceforge.net

Pro: minicom या picocom जैसी स्पष्ट सुरक्षा समस्याएं नहीं हैं (यदि आपके पास उपयोगकर्ताओं को शेल एक्सेस देने में कोई समस्या नहीं है, तो कोई समस्या नहीं है, लेकिन यदि आप टर्मिनल सर्वर सेट करना चाहते हैं तो आपके पास सबसे अधिक संभावना है ... )


1

आपको डिवाइस पर सही रीड राइट्स लिखने की जरूरत है, आप इसे देख सकते हैं:

$ls -l /dev/[serial device]

मैंने आपके द्वारा पाई गई स्क्रिप्ट पर भरोसा किया और कुछ संशोधन किए।

अब तक मैंने जिन विकास प्रणालियों का उपयोग किया है, उनके लिए उनकी आवश्यकता थी:

  • कोई भी समानता और
  • एक स्टॉप बिट

वे मान स्क्रिप्ट में डिफ़ॉल्ट हैं।

तो कनेक्ट करने के लिए, आप इसे निम्नानुसार सरल रूप से उपयोग कर सकते हैं:

./connect.sh /dev/[serial device] [baud speed]

उदाहरण:

$./connect.sh /dev/ttyUSB0 19200

स्क्रिप्ट:

#!/bin/bash

# connect.sh


#Taken from example modified by: ihatetoregister
# On stack exchange, thread:
# http://unix.stackexchange.com/questions/22545/how-to-connect-to-a-serial-port-as-simple-as-using-ssh
# Modified by Rafael Karosuo <rafaelkarosuo@gmail.com>
#   - parity enabling and amount of stop bits
#   - no execution without minimum params
#   - exit code for stty
#   - bgPid fix, used $! instead of $? to take the PID of cat proc in background.
#   - exit command to end the program
#   - CR termination and strip of NL added by READ command, in order to make $cmd\r\n format instead of \n$cmd\n


# Usage:
# $./connect.sh <device> <port speed> [# Stop bits] [parity]

# Stop bits 1|2
# Parity even | odd

# If no last two params, then default values stopbits=1, parity=disab

# Example: 
# connect.sh /dev/ttyS0 9600 1 even, this will use 1 stop bit and even parity
# connect.sh /dev/ttyS0 9600, this will take default values for parity and stopbit


#Check if at least port and baud params provided
if [ -z "$1" ] || [ -z "$2" ]; then
    printf "\nusage: ./connect.sh <device> <port speed> [# Stop bits 1|2] [parity even|odd]\n\tNeed to provide at least port and baud speed parameters.\n\texample:connect.sh /dev/ttyS0 9600\n\n"
    exit 1;
else
    case "$3"   in
        2) stopb="cstopb";;
        *) stopb="-cstopb";;
    esac

    if [ "$4" = "even" ]; then
        par="-parodd"
    elif [ "$4" = "odd" ]; then
        par="parodd"
    else
        par="-parity"
    fi
    printf "\nThen stty -F $1 $2 $stopb $par\n";
fi

# Set up device
stty -F "$1" "$2" "$stopb" "$par" -icrnl

# Check if error ocurred
if [ "$?" -ne 0 ]; then
    printf "\n\nError ocurred, stty exited $?\n\n"
    exit 1;
fi

# Let cat read the device $1 in the background
cat -v "$1" &

# Capture PID of background process so it is possible to terminate it when done
bgPid="$!"

# Read commands from user, send them to device $1
while [ "$cmd" != "exit" ]
do
   read cmd
   echo -e "\x08$cmd\x0D" > "$1" #strip off the \n that read puts and adds \r for windows like LF

done

# Terminate background read process
kill "$bgPid"

पुनश्च: आपको यह जानना होगा कि आपके रिसीवर सिस्टम का उपयोग किस तरह की लाइन फीड के रूप में किया जा रहा है क्योंकि यह निर्धारित करेगा कि आपको मेरे मामले में कमांड भेजने की आवश्यकता होगी, जिसमें मुझे एलएफ जैसी विंडोज की जरूरत है, इसका मतलब है कि मुझे भेजने की आवश्यकता है

command\r

ASCII के लिए मान:

  • LF: 0Ah, लाइन फ़ीड "\ n"
  • सीआर: 0 डीएच, कैरिज रिटर्न "\ r"
  • बीएस: 08 एच, बैक स्पेस "<-"

1
(1)  #!/bin/shअनदेखा किया जाता है यदि यह फ़ाइल की पहली पंक्ति नहीं है। (२) गंभीरता से? आप उपयोग कर रहे हैं 1निर्दिष्ट करने के लिए भी समता और 2निर्दिष्ट करने के लिए अजीब ? (3) यह " अनिवार्य " या "सहायता" संदेश के लिए पारंपरिक है जो सभी मापदंडों का दस्तावेज है , न कि केवल अनिवार्य लोगों का। (4) आप हमेशा अपने खोल वैरिएबल संदर्भ को उद्धृत करना चाहिए (जैसे, "$1", "$2", "$3", "$4", "$stopb", "$par", "$bgPid", और यहां तक कि "$?"और "$!") जब तक आप नहीं करने के लिए एक अच्छा कारण है, और आप यकीन है कि आप जानते हैं कि आप क्या कर रहे हैं।
स्कॉट

1

जैसा कि यहाँ पहले ही उल्लेख नहीं किया गया है, मैं इसका भी उल्लेख करता हूँ socat- https://stackoverflow.com/questions/2899180/how-can-i-use-com-and-usb-ports-within-cygwin में अधिक जानकारी :

socat `tty`,raw,echo=0 /dev/ttyS15,raw,echo=0,setsid,sane

या

socat - /dev/ttyS15,raw,echo=0,setsid,sane

(हालाँकि, विंडोज पर MSYS2 के तहत चलने के बाद मुझे इसे रोकने की समस्या थी )


1

मुझे आश्चर्य है कि किसी ने भी ser2net का उल्लेख क्यों नहीं किया ।

उदाहरण /etc/ser2net.conf:

3000:telnet:600:/dev/ttyUSB0:115200 8DATABITS NONE 1STOPBIT
3001:telnet:600:/dev/ttyUSB1:115200 8DATABITS NONE 1STOPBIT
3002:telnet:600:/dev/ttyUSB2:115200 8DATABITS NONE 1STOPBIT
3003:telnet:600:/dev/ttyUSB3:115200 8DATABITS NONE 1STOPBIT

आप सीरियल पोर्ट से उतना आसान कनेक्ट कर सकते हैं:

telnet localhost 3000

या दूर से:

telnet <ip> 3000

या यहां तक ​​कि अपने राउटर पर पोर्ट अग्रेषण सेट करें और इसे इंटरनेट पर उजागर करें, ताकि आप इसे कहीं से भी कनेक्ट कर सकें (चलो सुरक्षा मुद्दों को छोड़ दें, मैं लचीलेपन के बारे में बात कर रहा हूं)।


0

एक और आसान विकल्प यह है कि -Xझंडे के साथ मशीन को ssh पर पहुँचाएँ और पोटीन या gtkterm जैसे प्रोग्राम को चलाएं।

इसलिए:

$ ssh -X <user>@<machine_address>

$ sudo apt-get install gtkterm (if not installed already)

$ gtkterm

इसे आपके क्लाइंट पीसी पर ग्राफिकल इंटरफ़ेस लॉन्च करना चाहिए और वहां से आप सीरियल पोर्ट को एक्सेस कर सकते हैं जैसे कि आप होस्ट में होंगे।

अस्वीकरण: केवल ubuntu मशीनों के साथ यह कोशिश की। मैं अनुमान लगा रहा हूं कि यह ग्राफिक इंटरफेस के बिना मशीनों के साथ काम नहीं करेगा।

Ssh मैनुअल से:

-एक्स

X11 अग्रेषण सक्षम करता है। इसे कॉन्फ़िगरेशन फ़ाइल में प्रति-होस्ट के आधार पर भी निर्दिष्ट किया जा सकता है। X11 अग्रेषण को सावधानी से सक्षम किया जाना चाहिए। दूरस्थ होस्ट (उपयोगकर्ता के एक्स प्राधिकरण डेटाबेस के लिए) पर फ़ाइल अनुमतियों को बायपास करने की क्षमता वाले उपयोगकर्ता अग्रेषित कनेक्शन के माध्यम से स्थानीय X11 डिस्प्ले का उपयोग कर सकते हैं। एक हमलावर इसके बाद कीस्ट्रोक निगरानी जैसी गतिविधियों को करने में सक्षम हो सकता है। इस कारण से, X11 अग्रेषण डिफ़ॉल्ट रूप से X11 SECURITY एक्सटेंशन प्रतिबंधों के अधीन है। कृपया ssh -Y विकल्प और अधिक जानकारी के लिए ssh_config (5) में ForwardX11Trusted निर्देश देखें।

-Y

X11 अग्रेषण पर भरोसा करता है। विश्वसनीय X11 अग्रेषण X11 सुरक्षा विस्तार नियंत्रण के अधीन नहीं हैं।

इसलिए -Yअगर सुरक्षा एक समस्या है तो इसका इस्तेमाल करें ।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.