2012-04-02 10 views
6

मैं अपनी मैकबुक पर जेकनसोल चला रहा हूं और ec2 पर लिनक्स टर्मिनल से कनेक्ट करने का प्रयास कर रहा हूं जिसमें ग्राफिक्स नहीं हैं (केवल कमांड लाइन एक्सेस)।ईसी 2 से कनेक्ट करने के लिए मैं जंकसोल का उपयोग कैसे करूं?

मैं इस तरह मेरे कोड चलाएँ:

java -jar program.jar -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=9005 
-Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.remote.ssl=false 

मैं here कि वहाँ EC2 के द्वारा एक्सेस करने में कोई समस्या थी पढ़ा (के बाद मैं कनेक्ट होने में समस्या थी) और समाधान 'java.rmi.server.hostname to the public hostname of the instance'

लग रहा था मैं यह कैसे करने के लिए थोड़ा उलझन में हूँ। मैं दो बातें की कोशिश की है, एक मेरी कोड में सीधे डाल करने के लिए (शून्य स्थिर मुख्य अनुभाग में):

System.setProperty("java.rmi.server.hostname" , "external_EC2_address"); //in my real code I have the correct address here 

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

कोई विचार यह कैसे करता है?

अद्यतन: यह दिखाएगा कि मैं जावा में कितना हरा हूं, मुझे एक कदम आगे है (अभी भी काम नहीं करता है) लेकिन मुझे जावा -जर filename.jar डालने का एहसास हुआ और फिर विकल्पों ने मुझे वही नहीं दिया कमांड के अंत में मेरा -jar डालने के परिणाम। मैंने कोशिश की और कार्यक्रम कनेक्ट करने का प्रयास करता है और फिर कनेक्शन विफल रहता है (इससे पहले कि यह सिर्फ लॉगिन स्क्रीन पर ही कहता है)।

उत्तर

2

सेट होस्ट नाम संपत्ति वीएम से पहले शुरू होता है:

java -Dcom.sun.management.jmxremote \ 
    -Dcom.sun.management.jmxremote.port=9005 \ 
    -Dcom.sun.management.jmxremote.authenticate=false \ 
    -Dcom.sun.management.remote.ssl=false \ 
    -Djava.rmi.server.hostname=the.public.ip \ 
    -jar program.jar 

अपनी सुरक्षा समूह के लिए प्रासंगिक नियमों जोड़ें।

अंत में, सुनिश्चित करें कि iptables बंद है, क्योंकि यह कारण हो सकता है कि आपको बाहरी दुनिया से कनेक्शन नहीं मिल रहा है। रूट के रूप में (या सूडो का उपयोग ...):

# service iptables stop 
+0

उत्तर के लिए धन्यवाद। मैंने जो लिखा वह मैंने किया और अभी भी वही त्रुटि मिली। –

1

आपको अपने उदाहरण के लिए security group में जेएमएक्स रिमोट पोर्ट (ऊपर दिए गए अपने उदाहरण के अनुसार 9005) खोलने की आवश्यकता है।

+0

मैंने पहले ही यह किया है। बस सुरक्षित पक्ष पर रहने के लिए मैंने 0 - 65535 खोला। –

+0

एकमात्र अन्य चीज जो मैं ऊपर से नहीं बता सकता वह यह है कि क्या आपने java.rmi.server.hostname को अपने इंस्टेंस के सार्वजनिक होस्टनाम में सेट किया है (यह आमतौर पर प्रारूप में कुछ है जैसे ec2-xxx-yyy-zzz-aaa.compute -1.amazonaws.com, जहां xxx-yyy-zzz-aaa सार्वजनिक आईपी पता है)। यदि आपने पहले ही ऐसा किया है, तो मुझे खेद है, क्षमा करें। –

+0

आपका अधिकार मैं कनेक्ट करने के लिए सार्वजनिक होस्टनाम का उपयोग कर रहा था (जो मैं एसएसएच के लिए उपयोग करता हूं) ec2-xxx। मुझे एक आईपी पता मिला और इसे एक शॉट दिया और अभी भी एक ही समस्या है। –

संबंधित मुद्दे