SSH 터널을 통해 KVM 콘솔을 사용하려고 하는데 연결 거부 Java 오류가 발생합니다. 내가 하고 있는 일은 다음과 같습니다.
내 Macbook에서는 다음 명령을 사용하여 점프 호스트를 통해 원격 서버에 대한 SSH 터널을 설정합니다.
ssh -L 1234:TARGET_SERVER:443 jumphost.foo.com
다음으로 다음을 통해 원격 서버의 GUI에 연결했습니다.https://127.0.0.1:1234
모두 괜찮습니다. 서버에 로그인하고 Java KVM 콘솔 버튼을 클릭하면 브라우저가 Viewer.jnlp 애플릿을 다운로드합니다. jnlp 파일의 모든 HTTPS 참조 목록https://127.0.0.1:443이 jnlp 파일을 실행하면 Java가 오류를 반환합니다.
응용 프로그램을 시작할 수 없습니다
그래서 VI를 사용하여 파일에 들어가서 모든 포트 443 설정을 포트 1234로 변경했습니다. 이제 모든 것이 인용됩니다https://127.0.0.1:1234. 그런 다음 JNLP 파일을 다시 실행하고(javaws를 사용하여) 몇 가지 결과를 얻었습니다. 이에 대해 제가 가장 먼저 받은 것은연결을 신뢰할 수 없습니다. 계속해야 합니까?? 나는 계속하기로 결정했습니다. 다음으로 KVM 애플리케이션을 다운로드하고 다음 메시지는 다음과 같습니다.이 어플리케이션을 실행하길 원합니까? 그래서 나는 달리기를 선택했다.
여기서 Java가 실패하고 Java 콘솔 로그에 "연결이 거부되었습니다"라고 효과적으로 표시됩니다. 문제가 SSH 터널과 관련이 있을 수 있다고 생각하는데, 문제를 해결하려면 어떻게 해야 하는지 모르겠습니다. 터널을 사용하여 Jumphost를 통해 Java JNLP를 실행해야 하며 오프라인이고 IPMI 연결을 통해서만 액세스할 수 있는 원격 서버에 액세스하기 위한 솔루션도 알아야 합니다.
Java 콘솔 로그:
--Java Web Start 11.191.2.12 x86_64
Using JRE version 1.8.0_191-b12 Java HotSpot(TM) 64-Bit Server VM
User home directory = /my/homedir
----------------------------------------------------
c: clear console window
f: finalize objects on finalization queue
g: garbage collect
h: display this help message
m: print memory usage
o: trigger logging
p: reload proxy configuration
q: hide console
r: reload policy configuration
s: dump system and deployment properties
t: dump thread list
v: dump thread stack
0-5: set trace level to <n>
----------------------------------------------------
Missing Application-Name manifest attribute for: https://127.0.0.1:1234/software/avctNuova.jar.pack.gz
MAC OS X
KVM/VM Client Version: 5.04.02 (Build 192)
replace numpad
replace numpad
** Max Size: W = 1920 H = 976
** Window Pref Size: W = 1024 H = 812
** Max Size: W = 1920 H = 976
** Window Pref Size: W = 1024 H = 812
JNLPClassLoader: Finding library libVMAPI_DLL.dylib
JNLPClassLoader: Finding library libjawt.dylib
JNLPClassLoader: Finding library libavctKVMIO.dylib
Try again with the reduced mode protocol list
Already tried the reduced mode protocol list, quitting
java.net.ConnectException: Connection refused (Connection refused)
at java.net.PlainSocketImpl.socketConnect(Native Method)
at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
at java.net.Socket.connect(Socket.java:589)
at java.net.Socket.connect(Socket.java:538)
at java.net.Socket.<init>(Socket.java:434)
at java.net.Socket.<init>(Socket.java:211)
at com.avocent.protocol.apcp.ProtocolAPCP.createBasicSocket(Unknown Source)
at com.avocent.protocol.apcp.ProtocolAPCP.getAvspSocket(Unknown Source)
at com.avocent.protocol.apcp.ProtocolAPCP.getAvspPrimarySocket(Unknown Source)
at com.avocent.protocol.avsp.AvspKvmSession.connectToPort(Unknown Source)
at com.avocent.protocol.avsp.AvspKvmSession.connectToPort(Unknown Source)
at com.avocent.api.viewer.RPAPIClientViewer.sendConnectRequestToServer(Unknown Source)
at com.avocent.api.viewer.RPAPIClientViewer.openViewerClient(Unknown Source)
at com.avocent.app.kvm.DefaultViewerMainController.startSession(Unknown Source)
at com.avocent.app.kvm.DefaultViewerMainController.startApp(Unknown Source)
at com.avocent.nuova.kvm.CiscoViewerMainController.startApp(Unknown Source)
at com.avocent.nuova.kvm.Main.runApp(Unknown Source)
at com.avocent.nuova.kvm.Main.main(Unknown Source)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at com.sun.javaws.Launcher.executeApplication(Unknown Source)
at com.sun.javaws.Launcher.executeMainClass(Unknown Source)
at com.sun.javaws.Launcher.doLaunchApp(Unknown Source)
at com.sun.javaws.Launcher.run(Unknown Source)
at java.lang.Thread.run(Thread.java:748)
CoreSessionListener : connection failed
in CoreSessionListner : fireOnSessionStateChanged
KVM session state SESSION_FAILED
답변1
JRE/JDK 경로에 있는 java.security 파일에 이 호스트에 대한 예외를 추가해야 할 수도 있습니다. 프록시를 통하거나 체인에 자체 서명되었거나 루트가 아닌 신뢰할 수 있는 인증서가 있는 경우(또는 https 대신 http를 통해 액세스하는 경우) Java에 이를 수행할 수 있음을 알려야 합니다. .