У меня есть два отдельных компьютера linux, A и B, которые должны обмениваться данными через UDP через порт 3000. Каждый из них находится за своим маршрутизатором, и у меня установлены правила переадресации портов на каждом маршрутизаторе.
По какой-то причине единственный способ B может принимать UDP-пакеты от A, если B сначала отправляет пакет в A.
Рабочий случай:
# Computer A Listens (IP 1.2.3.4)
netcat -ul 3000
# Computer B Initiates
netcat -u 1.2.3.4 3000
В приведенном выше случае два «соединяются» через netcat, и я могу отправлять и получать данные обоими способами.Это заставляет меня поверить, что это не проблема переадресации или маршрутизации портов.
Сломанный случай:
# Computer B Listens (IP 5.6.7.8)
netcat -ul 3000
# Computer A Initiates
netcat -u 5.6.7.8 3000
В этом сломанном случае оба не могут"подключиться" через netcat, и я не могу отправить какие-либо данные между обоими конечными точками.
Я также пытался использовать инструменты прямой отправки пакетов для отправки UDP-пакетов между A и B. То же самое происходит, B этоне может получить что-либо от A до тех пор, пока B не отправит пакет в A.
Я понятия не имею, почему могло произойти что-то подобное, особенно с UDP.Есть идеи, что может быть причиной проблемы?
К вашему сведению: A в данном случае - это рабочий стол linux на FIOS interent, B - TX2 с модемом 4G.У B есть несколько интерфейсов с настраиваемыми таблицами маршрутизации, которые я настроил.
Спасибо!