套接字连接被拒绝 (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

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 和新端口。现在您应该可以毫无问题地连接了。

相关内容