Я схожу с ума от этой проблемы уже более недели.
У меня есть Raspberry Pi (Raspbian lite), напрямую подключенный с помощью кабеля rnet к моему ноутбуку (Ubuntu), и я хочу общаться с моим приложением (работающим на пи) через TCP-сокет. У моего ноутбука есть ip-адрес 10.42.0.1, у пи есть ip-адрес 10.42.0.241, я хочу отправлять данные с ноутбука на пи на порт 3000. Я могу войти в пи через s sh (s sh pi@10.42.0.241), и я могу пропинговать IP-адрес (ping 10.42.0.241 имеет положительный результат).
Чтобы проверить, открыт ли порт, и я могу отправлять данные с мой latop to pi, который я сделал на своем ноутбуке
$ nc -vl 10.42.0.241 3000
Но я получил ошибку
n c: Невозможно получить запрошенный адрес
Я понял, что должен открыть порт на своем ноутбуке и на пи, поэтому я сделал на своем ноутбуке
$ sudo iptables -A OUTPUT -p tcp --dport 3000 -j ACCEPT
и на пи
$ sudo iptables -A INPUT -p tcp --dport 3000 -j ACCEPT
, и я получил запись в моем iptable (на моем ноутбуке на выходе CHAIN и на пи на входе CHAIN) со следующими записями
target = ACCEPT; prot = tcp; opt = -; источник = где угодно; пункт назначения = где угодно; tcp dpt: 3000
, но сообщение об ошибке остается прежним. Я вижу, что больше ничего не блокирует порт, потому что я могу сделать это на своем ноутбуке (помните, ноут для ноутбука - 10.42.0.1)
$ nc -vl 10.42.0.1 3000
, а затем в другом терминале
$ nc -v 10.42.0.1 3000
, который в основном является localhost-подключением - это прекрасно работает.
Как мне заставить это работать с пи? Любая помощь очень ценится!
Я также играл с ufw и некоторыми ip-маршрутами, но ничего не помогло.
Большое спасибо! Mario