ソケット接続は拒否されましたが(raspbian)接続用にポートが開いています。

ソケット接続は拒否されましたが(raspbian)接続用にポートが開いています。

私のクライアントとRaspbianの間に接続を確立したいと思います。私のネットワークでは、問題なくいつでも私のサービスに接続できます。今、私はインターネットを介して私のサービスに接続したいと思います。残念ながら、インターネットIPを使用して接続しようとすると機能しません。

client = new MqttClient("tcp://77.777.77.77:1883", "SendingdLoop");
            client.connect();

私のJavaアプリケーションは、接続が拒否されたことを通知します(したがってタイムアウトはありません)。

   Could not establish connection (32103) - java.net.ConnectException: Connection **refused**: connect          at org.eclipse.paho.client.mqttv3.internal.TCPNetworkModule.start(TCPNetworkModule.java:75)
        at org.eclipse.paho.client.mqttv3.internal.ClientComms$ConnectBG.run(ClientComms.java:538)
        at java.lang.Thread.run(Thread.java:722)
    Caused by: java.net.ConnectException: Connection refused: connect
        at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
        at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:75)
        at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:339)
        at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:200)
        at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:182)
        at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:157)
        at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:391)
        at java.net.Socket.connect(Socket.java:579)
        at org.eclipse.paho.client.mqttv3.internal.TCPNetworkModule.start(TCPNetworkModule.java:66)

ポートを開くには、公式の指示に従いました。 https://wiki.debian.org/iptables

私のアイテムは次のとおりです

 -A INPUT -p tcp -m tcp --dport 1883 -j ACCEPT

iptablesを確認してみると、

iptables -L
 ACCEPT tcp -- anywhere anywhere  tcp dpt: 1883

ルールが有効になっていることがわかります。

他に設定する必要がありますか?

答え1

「追加で構成する必要がありますか?」

たぶんあなたのルーターかもしれません。あなたは明確な答えを提供するのに十分な情報を提供していません。あなたがしたことはiptablesのせいではないことを指摘しただけです。おそらく。

iptablesルールが処理されました。~のため。これが追加された最後のルール()-Aであり、それを見るときにリストの最後のルールであるiptables -L場合は、前のルールに置き換えることができます。たとえば、リストが次のような場合:

DROP everything
ACCEPT everything 

2番目のルールが処理される前にすべてが削除されるため、何も許可されません。より正確には、すべてが最初のルール項目で一致するものを見つけるため、2番目のルールは処理されません。

答え2

mqttブローカーと同じ問題がありましたが、vernemq以下を追加して解決しました。

  1. $ sudo vmq-admin listener show

    o許可されたIPとポートのリストを表示するvernemq

  2. $ sudo vmq-admin listener start port=1885 -a 0.0.0.0 --mountpoint /appname --nr_of_acceptors=10 --max_connections=20000

    IPと新しいポートを追加します。これで問題なく接続できます。

関連情報