[英]Connection refused when trying to connect to ActiveMQ Artemis deployed on Openshift
[英]Connection refused when trying to connect with an external IP
我一直在從事一個小的服務器/客戶端項目,但是遇到一個小問題,這阻礙了我的進步。
我想我把程序(客戶端和服務器)的核心定為釘子,並設法使用localhost
連接這兩個程序,但是當我嘗試通過外部IP連接時,我得到了一個例外:
java.net.ConnectException: Connection refused
java.net.PlainSocketImpl.socketConnect(Native Method)
java.net.PlainSocketImpl.doConnect(PlainSocketImpl.java:351)
java.net.PlainSocketImpl.connectToAddress(PlainSocketImpl.java:213)
java.net.PlainSocketImpl.connect(PlainSocketImpl.java:200)
java.net.SocksSocketImpl.connect(SocksSocketImpl.java:432)
java.net.Socket.connect(Socket.java:529)
java.net.Socket.connect(Socket.java:478)
java.net.Socket.<init>(Socket.java:375)
java.net.Socket.<init>(Socket.java:218)
networking.Client.run(Client.java:183)
java.lang.Thread.run(Thread.java:680)
最初,我嘗試使用端口10,但由於某些原因發現0到1023之間的端口在Mac上不起作用,因此我選擇了超出該范圍的端口。 與localhost
連接可以正常工作,但是當我嘗試與外部IP連接時(就像普通用戶一樣),我遇到了異常。 我的端口已正確轉發,運行sudo lsof -i tcp -nP
(適用於Mac的netstat
)將顯示實際上我的服務器實際上正在偵聽正確的端口。 這使我相信問題可能出在我的客戶身上,但我真的不知道。
這是Terminal.app的sudo lsof -i tcp -nP
輸出:
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
java 35423 MeshulamSilk 41u IPv6 0xc949f3cdb29dfdcd 0t0 TCP *:63370 (LISTEN)
java 35423 MeshulamSilk 42u IPv6 0xc949f3cdbbf1b96d 0t0 TCP [::1]:63992->[::1]:63991 (TIME_WAIT)
我知道這些帖子有點亂,所以我將代碼上傳到了Gist。 如果有人希望我在此處添加它,請告訴我,我會的。
注意事項:
java.lang.Thread
。 我不認為這是造成問題的原因,所以我不包括在內,但在必要時可以。 Operations.DISCONNECT
是一個枚舉常量,表示斷開連接。 如果有人知道我在做錯什么,或者我根本做不到什么,請告訴我,我將非常感謝。
我不是Mac方面的專家,但是根據lsof的輸出,看來您的程序綁定在僅IPv6地址上。 它可以在localhost上正常工作,但是如果您嘗試使用公共IP地址(並使用IPv4),則可能是問題的根源。 至於端口號,在OS之類的UNIX上,您需要對低於1024的用戶端口具有root訪問權限。無論如何,您應該嘗試在Mac上禁用IPv6,然后查看問題是否繼續。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.