我在使用 Raspbian GNU/Linux 9(stretch)打开 Raspberry Pi 上的特定端口时遇到问题。
我可以使用 shell 和端口 22 以及 VNC 从我的服务器连接到 Raspberry Pi(反之亦然)。
nmap -sS localhost
在 Raspberry Pi 上返回:
Not shown: 998 closed ports
PORT STATE SERVICE
22/tcp open ssh
5900/tcp open vnc
IPTables 中没有规则:
Chain INPUT (policy ACCEPT)
target prot opt source destination
Chain FORWARD (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
但是,对于用于从 Apache Kafka Producer API 实例发送数据的端口,以下操作会失败:
telnet 192.168.2.113 9092
Trying 192.168.2.113...Chain INPUT (policy ACCEPT)
telnet: connect to address 192.168.2.113: Connection refused
我尝试将允许的端口添加到 iptables 中,并且还做了
sudo ufw allow 9092
但问题仍然存在。我在这里遗漏了什么?
答案1
我没有让它运行,所以我用树莓派上的 MQTT(mosquitto)以不同的方式解决了它,使用 nifi 进行连接并推送到 Kafka。
答案2
嗯...可能是很多原因,但从“连接被拒绝”错误来看,我认为可能是权限问题。您可以随时检查 auth.log 文件:
/var/log/auth.log
看看分歧在哪里。现在,如果您尝试访问用户的端口,例如,根您将无权访问(这是理所当然的)。此外,由于您的ufw 允许9092,我会再做一次nmap并再次检查端口是否确实打开。最好nmap来自远程服务器的 pi 也是如此。
我会在尝试连接时检查 syslog 和 auth.log,以便更清楚地了解正在发生的事情。