私のクライアントと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
以下を追加して解決しました。
$ sudo vmq-admin listener show
o
許可されたIPとポートのリストを表示するvernemq
$ sudo vmq-admin listener start port=1885 -a 0.0.0.0 --mountpoint /appname --nr_of_acceptors=10 --max_connections=20000
IPと新しいポートを追加します。これで問題なく接続できます。