我已经为这个问题疯狂了一个多星期。
我有一个Raspberry Pi(Raspbian lite)直接通过以太网电缆连接到我的笔记本电脑(Ubuntu),并且我想通过tcp套接字与我的应用程序(在pi上运行)进行通信。我的笔记本电脑的IP地址为10.42.0.1,PI的IP地址为10.42.0.241,我想将数据从笔记本电脑发送到端口3000上的pi。我可以通过ssh(ssh pi)登录到pi @ 10.42.0.241),并且能够ping ip地址(ping 10.42.0.241的结果是肯定的)。
要测试端口是否打开,我可以将数据从笔记本电脑发送到笔记本电脑上的pi
$ nc -vl 10.42.0.241 3000
但是我得到了错误
nc:无法分配所请求的地址
我了解到必须打开笔记本电脑和pi上的端口,所以我必须在笔记本电脑上打开
$ sudo iptables -A OUTPUT -p tcp --dport 3000 -j ACCEPT
然后在pi
$ sudo iptables -A INPUT -p tcp --dport 3000 -j ACCEPT
然后我在iptable中(在笔记本电脑的CHAIN输出中,在pi的CHAIN输入中)输入了以下条目
target = ACCEPT; prot = tcp; opt =-;来源=任何地方;目的地=任何地方; tcp dpt:3000
,但错误消息保持不变。我可以看到没有其他东西阻塞端口,因为我可以在笔记本电脑上进行操作(请记住,laptop-ip为10.42.0.1)
$ nc -vl 10.42.0.1 3000
然后在另一个终端
$ nc -v 10.42.0.1 3000
基本上是一个本地主机连接-正常运行。
如何使pi正常工作?非常感谢您的帮助!
我也玩过ufw和一些IP路由,但是没有任何帮助。
非常感谢! 马里奥