"চ্যানেল 2: ওপেন ব্যর্থ হয়েছে" এর সাথে সংযোগগুলি প্রত্যাখাত


70

হঠাৎ করেই (পড়ুন: কোনও প্যারামিটার পরিবর্তন না করে) আমার নেটবিএসডি ভার্চুয়ালমাছাইন অদ্ভুত আচরণ শুরু করে। লক্ষণগুলি ssh টানেলিং উদ্বেগ।

আমার ল্যাপটপ থেকে আমি চালু করি:

$ ssh -L 7000:localhost:7000 user@host -N -v

তারপরে, অন্য শেলের মধ্যে:

$ irssi -c localhost -p 7000

এসএসএস ডিবাগ বলেছেন:

debug1: Connection to port 7000 forwarding to localhost port 7000 requested.
debug1: channel 2: new [direct-tcpip]
channel 2: open failed: connect failed: Connection refused
debug1: channel 2: free: direct-tcpip: listening port 7000 for localhost port 7000, connect from 127.0.0.1 port 53954, nchannels 3

আমি লোকালহোস্টের সাথেও চেষ্টা করেছি: 80 অভিন্ন ফলাফলের সাথে (রিমোট) ওয়েব সার্ভারের সাথে সংযোগ স্থাপন করার জন্য।

রিমোট হোস্ট নেটবিএসডি চালায়:

bash-4.2# uname -a
NetBSD host 5.1_STABLE NetBSD 5.1_STABLE (XEN3PAE_DOMU) #6: Fri Nov  4 16:56:31 MET 2011  root@youll-thank-me-later:/m/obj/m/src/sys/arch/i386/compile/XEN3PAE_DOMU i386

আমি কিছুটা হারিয়েছি। আমি tcpdumpরিমোট হোস্টে দৌড়ানোর চেষ্টা করেছি এবং আমি এই 'ব্যাড চক্সম' স্পষ্ট করেছিলাম:

09:25:55.823849 IP (tos 0x0, ttl 64, id 0, offset 0, flags [DF], proto TCP (6), length 67, bad cksum 0 (->3cb3)!) 127.0.0.1.54381 > 127.0.0.1.7000: P, cksum 0xfe37 (incorrect (-> 0xa801), 1622402406:1622402421(15) ack 1635127887 win 4096 <nop,nop,timestamp 5002727 5002603>

আমি ssh ডিমন পুনরায় আরম্ভ করার চেষ্টা করেছি কোনও লাভ হয়নি। আমি এখনও রিবুট করি নি - সম্ভবত এখানে কেউ অন্য ডায়াগনস্টিকস পরামর্শ দিতে পারে। আমি মনে করি এটি হয় ভার্চুয়াল নেটওয়ার্ক কার্ড ড্রাইভার হতে পারে বা অন্য কেউ আমাদের এসএসএসকে রুট করেছে।

ধারনা..?


1
সমস্যা সমাধানের জন্য, চেষ্টা করুন $ ssh -L 7000:127.0.0.1:7000 user@host -N -v -v। (আপনি ভার্বোসিটি বাড়াতে "-v" 3 বার পর্যন্ত ব্যবহার করতে পারেন।) এছাড়াও, এটি কি সম্ভব যে সম্প্রতি এসএসএস আপডেট হয়েছিল?
মাইক শেরিল 'ক্যাট রিকল'

আমি আউটপুট লগটি ইতিমধ্যে -v দিয়ে সংগ্রহ করেছি।
lorenzog

1
ভার্বোসিটি বাড়াতে আপনি তিনবার পর্যন্ত -v ব্যবহার করতে পারেন। সুতরাং আপনি ssh -L 7000... -N -v -v(দুটি ভি) এর আউটপুট বা তাকান ssh -L 7000... -N -v -v -v
মাইক শেরিল 'ক্যাট রিকল'

@ মাইকশেরিল'ক্যাটরেল 'একটি শর্টহ্যান্ড পাশাপাশি ব্যবহার করা যেতে পারে:
-ভিভিভি

উত্তর:


42

সমস্যা সমাধান:

$ ssh -L 7000:127.0.0.1:7000 user@host -N -v -v

... সম্ভবত, ' লোকালহোস্ট ' রিমোট হোস্ট পছন্দ করে নি। তবুও, রিমোটে /etc/hostsরয়েছে:

::1                     localhost localhost.
127.0.0.1               localhost localhost.

স্থানীয় নেটওয়ার্ক ইন্টারফেস যখন

lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> mtu 33184
        inet 127.0.0.1 netmask 0xff000000
        inet6 ::1 prefixlen 128
        inet6 fe80::1%lo0 prefixlen 64 scopeid 0x2

দীর্ঘশ্বাস. আমি যে 100 আরপি রেখেছি তার অনুগ্রহের জন্য এতটা :)


1
আহ। ঠিক আছে, আমি উত্তর হিসাবে আমার মন্তব্য লিখতে বিরক্ত করব না। (এসএসএস আপনার সিস্টেমে আইপিভি 6 ঠিকানা পছন্দ করে কিনা তা দেখুন Look)
মাইক শেরিল 'ক্যাট রিকল'

ঠিক আছে আপনি -v বিকল্পটি দ্বিগুণ করার পরামর্শ দিয়েছিলেন, তবে এটি নতুন কিছু দেখায় নি .. তবে, কিছু দিন পরে আমাকে আবার আউটপুটটি দেখিয়ে সমস্যাটি চিহ্নিত করতে সহায়তা করেছে। আপনি যদি উত্তরটি লিখতে চান তবে আমি আপনাকে অনুগ্রহটি দিতে পেরে আরও বেশি খুশি।
lorenzog

1
আসলে, গুরুত্বপূর্ণ পয়েন্টটি "লোকালহোস্ট" "127.0.0.1" এর সাথে প্রতিস্থাপন করেছিল। অতিরিক্ত "-v" আর্গুমেন্টগুলি সহায়ক হতে পারে তবে আমি লক্ষ্য করেছিলাম সেগুলি সেগুলি ছিল না। ধন্যবাদ।
মাইক শেরিল 'ক্যাট রিকল'


1
আমার জন্য শীর্ষস্থানীয় যোগ করার জন্য ":" কাজ করে তাই আপনার ক্ষেত্রে কমান্ডটি দেখতে পাবেন: ssh -L: 7000: 127.0.0.1: 7000 ব্যবহারকারী @ হোস্ট
এন

21

যদিও ওপির সমস্যাটি ইতিমধ্যে সমাধান হয়ে গেছে, আমি আমার সমস্যার সমাধানটি ভাগ করে নেওয়ার সিদ্ধান্ত নিয়েছি, কারণ আমি এসএসএসের কাছ থেকে একই ত্রুটি বার্তা পেয়েছি এবং অন্যান্য সাইটগুলিতে আমি কোনও সমাধান পাইনি।

আমার ক্ষেত্রে আমাকে সেই পরিষেবাতে সংযোগ করতে হয়েছিল যা কেবলমাত্র আইভিভি 6 এ শোনে। আমি চেষ্টা করেছিলাম:

ssh -f root@192.168.0.18 -L 51005: 127.0.0.1: 51005 -N
ssh -f root@192.168.0.18 -L 51005: লোকালহোস্ট: 51005 -N

এবং কয়েকটি অন্যান্য উপায় কিন্তু এটি কার্যকর হয়নি। সংযোগের যে কোনও চেষ্টা এর http://localhost:51005ফলে ত্রুটি ঘটায়: channel 2: open failed: connect failed: Connection refused

সমাধানটি হ'ল:

ssh -f root@192.168.0.18 -L 51005: [:: 1]: 51005 -N

আইপিভি 6 ঠিকানা অবশ্যই বর্গাকার বন্ধনীতে থাকতে হবে।


1
আপনি যদি একটি ssh কনফিগারেশন ফাইল ব্যবহার করেন? উদাহরণ: "LocalForward স্থানীয় হোস্ট: 64160 192.168.1.56:3389"
meffect

আমার জন্য শীর্ষস্থানীয় যোগ করার জন্য ":" কাজ করে তাই আপনার ক্ষেত্রে কমান্ডটি দেখতে এরকম হবে: ssh -f root@192.168.0.18 -L: 51005: 127.0.0.1: 51005
-N

9

আমি প্রথমে এটি চেষ্টা করব।

$ ssh -L 7000:127.0.0.1:7000 user@host -N -v -v

ভার্বোসিটি বাড়াতে আপনি 3 বার পর্যন্ত "-v" ব্যবহার করতে পারেন।

আমি মনে করি যদি কোনও ফায়ারওয়াল port০০০ পোর্ট বন্ধ করে দেয় তবে এই ত্রুটি বার্তাটি উত্থাপিত হতে পারে তবে আপনি ইতিমধ্যে এটি বাতিল করে দিয়েছিলেন। (যদি পরবর্তী পাঠকরা এটিকে বাতিল না করে থাকেন তবে এর ফলাফল দেখুন netstat --numeric-ports))

আমি মনে করি আমি সম্ভবত এই ত্রুটি বার্তাটি অনেক আগে দেখেছি, যখন এসএসএস প্রথম আপডেটের পরে আইপিভি 6 অ্যাড্রেস সম্পর্কে সচেতন হয়েছিল। আমি যে আমার ভুল হতে পারে। আপনি যদি পরীক্ষার মতো মনে করেন, আপনি আইপিভি 6 লুপব্যাক ঠিকানা "0: 0: 0: 0: 0: 0: 0: 1" (বা ":: 1") চেষ্টা করতে পারেন।


3

"... সম্ভবত, 'লোকালহোস্ট' রিমোট হোস্ট পছন্দ করে নি Yet তবুও, দূরবর্তী / ইত্যাদি / হোস্টগুলিতে রয়েছে:"

আপনি যদি ক্লায়েন্টের উপর ssh চালাচ্ছিলেন তবে 'লোকালহোস্ট' আপনার ক্লায়েন্ট পছন্দ করেন নি। দূরবর্তী / etc / hosts ফাইলটি দূরবর্তী সংযোগ করার জন্য হয় আউট না ইনকামিং সংযোগ।


1
এটা আমার কাছেও বিভ্রান্তিকর ছিল। আপনি যখন আপনার লোকালম্যাশনে লোকালহোস্ট টাইপ করেন, তখন এটি স্থানীয়ভাবে সমাধান হয়ে যায়
আহমেদভ

3

এসএসএস টানেলের মাধ্যমে অন্য সার্ভারে মাইএসকিএল সংযোগ করার চেষ্টা করার সময় আমি এই একই ত্রুটির মুখোমুখি হয়েছি। আমি দেখতে পেয়েছি যে টার্গেট সার্ভারে /etc/my.cnf- এ বাইন্ড-ঠিকানা প্যারামিটারটি অভ্যন্তরীণ পরিবর্তে আমার বাহ্যিক আইপি (দ্বৈত এনআইসি সার্ভার) এ আবদ্ধ ছিল, যার জন্য আমার কোনও ব্যবহার ছিল না।

যখন আমি বাইন্ড-ঠিকানা = 127.0.0.1 সেট করি, আমি নিম্নলিখিতভাবে আমার এসএস টানেলটি সফলভাবে ব্যবহার করতে পারি:

ssh -N -f -L 3307:127.0.0.1:3306 user@server.name

mysql -h 127.0.0.1 --port=3307 --protocol=TCP -uusername -ppassword

এটি আমার পক্ষেও কাজ করেছিল। আপনি কেবলমাত্র একটি ঠিকানার সাথে মাইএসকিউএল বাঁধতে পারেন।
leeand00

3

লোকালহোস্টের পরিবর্তে একটি পূর্ণ ডোমেন নাম দিয়ে বন্দরগুলি ফরোয়ার্ড করার সময় আমি এই ত্রুটির মুখোমুখি হয়েছি :

ssh -L 5900:host.name.com:5900 x11vnc

বন্দরটি কেবলমাত্র লোকালহোস্টের জন্য খোলা ছিল, সুতরাং সম্পূর্ণরূপে যোগ্য নামের সাথে সংযোগ গ্রহণ করতে, আমাকে একটি বাধ্যতামূলক পোর্টের বিবরণ যুক্ত করতে হয়েছিল:

ssh -L *:5900:host.name.com:5900 x11vnc

যা যে কোনও জায়গা থেকে সংযোগের অনুমতি দেবে (সুতরাং এটি নিরাপদ নয়, খুব কম ব্যবহার করুন)।


2

আমার জন্য শীর্ষস্থানীয় ":" যুক্ত করে কাজ করার জন্য আপনার ক্ষেত্রে কমান্ডটি দেখতে এই রকম হবে:

ssh -L :7000:localhost:7000 user@host -N -v

অনেক বেশি সময় কেটে গেছে এবং আমি ফিরে গিয়ে চেক করতে পারি না, তবে এটি দুর্দান্ত দেখাচ্ছে।
lorenzog

1

???

চ্যানেল 2: উন্মুক্ত ব্যর্থ: সংযোগ ব্যর্থ হয়েছে: সংযোগ অস্বীকার করেছে

user@hostবন্দর 7000 শোনা কিছু নেই, যে সহজ এবং যে সব।


1
এটা সত্যি না. হোস্টে একটি পরিষেবা চলছে: 7000। আমি অন্যান্য পরিষেবাদি দিয়ে চেষ্টা করেছি।
lorenzog

2
না, তবে এটি কেবল সংযুক্ত হয়ে ঝুলবে।
রিকিয়া

4
@ রিকিয়া: আসলে, এটি সত্য নয়। বন্দরটি আবদ্ধ না হলে সংযোগটি অস্বীকার করা হবে। ভুল অভ্যন্তরীণ বন্দর ব্যবহার করার মাধ্যমে আমি এই ত্রুটিটি পেয়েছি (যেখানে কোনও পরিষেবা চলছে না), ভুলটি সংশোধন করার পরে ত্রুটিটি চলে গেছে। পোয়েজ ঠিক আছে যে বন্দরে যদি কিছু না শুনছে তবে এটি ত্রুটির কারণ হবে।
erb

1

আমি একই ত্রুটি বার্তা পেয়েছি:

চ্যানেল 3: ওপেন ব্যর্থ হয়েছে: সংযোগ ব্যর্থ হয়েছে: সংযোগ অস্বীকার করেছে

এবং কারণটি ছিল মানুষের ত্রুটি - আমি যেটি নির্দিষ্ট করেছি তার থেকে আমি দূরবর্তী হোস্টের একটি পৃথক বন্দর অ্যাক্সেস করার চেষ্টা করছি।

কেবল ভেবেছি আমি এটি ভাগ করব, যদিও সম্ভবত আপনার বেশিরভাগই এই ত্রুটিটি অনুভব করছেন reason


আমার ক্ষেত্রে: এটি ঠিক আমি করছিলাম is এ জাতীয় মূর্খ ভুল তবে আমাকে বন্দরটি পরীক্ষা করতে এই উত্তরটি নিয়েছে। ডোহ।
কেন শার্প

1

আমার জন্য, আমি চেষ্টা করছিলাম ssh -L <port>:<remote server IP>:<port> <login>@<remote server IP>যখন আমার করা উচিত ছিল ssh -L <port>:127.0.0.1:<port> <login>@<remote server IP>

আমি আশা করি এটা কারো সাহায্যে লাগবে!


1

বিকল্প ব্যাখ্যাটি আমার ক্ষেত্রে, আপনার এটি টাইপ করা ভুল।

user@host ~ $ ssh -vvvNL 4444:127.0.0.0.1:4444
...
channel 2: open failed: connect failed: Name or service not known

এখানে যা ঘটে তা হ'ল আইপি ঠিকানায় একাধিক শূন্য থাকে, সুতরাং এটি কোনও বৈধ ঠিকানা নয়। সুতরাং ssh এটিকে এর পরিবর্তে ডোমেন নাম হিসাবে বিবেচনা করে যা এটি সমাধান করতে পারে না। ওহো!

পিএস: আমি এটি পরিপূরক করি যাতে একই লক্ষণগুলির সমস্যা সমাধানের সময় আমাদের সম্ভাব্য সমস্যার ব্যাপক তালিকা থাকে।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.