Я разрабатываю приложение TCP. Мой администратор заблокировал прослушивание TCP на моем ПК с Windows. Итак, я использую виртуальную машину Ubuntu 20.04 в виртуальной машине для разработки и тестирования своего приложения TCP-сервера.
Я протестировал свой сервер приложений TCP с клиентом с локального хоста.Однако мне нужно проверить реальную клиентскую систему. В моем случае это встроенная система, такая как Android Phone.
Прежде чем тестировать мое фактическое приложение TCP, я пытаюсь проверить настройку с помощью инструментов, как показано ниже:
# На виртуальной машине Ubuntu для запуска примера TCP-сервера
ncat -l 9090 -k -c 'xargs -n1 эхо'
# На телефоне Android я использую приложение из магазина игр под названием TCP/UDP TEST TOOL.
___________________________________
| _______________________ |
| | TCP_сервер: 9090 | |
| | Ubuntu виртуальная машина | | ________________
| | (Мост ifface) | (ифейс)| <Кабель Ethernet> | |
| | IP: 192.168.66.11/24 | | |-> <Переходник Ethernet-USB-C> | Мобильный Android |
| |_______________________| | |________________|
| | IP: 192.168.66.12/24
| Win 10 ПК (IP: 192.168.66.50) | ГВ: 192.168.66.11
|___________________________________|
Проблема в том, что телефон Android не может пропинговать и подключиться к TCP-серверу на виртуальной машине Ubuntu, но работает наоборот; Виртуальная машина Ubuntu может пропинговать телефон Android и подключиться к образцу службы TCP на телефоне Android.
Я подключаю свою виртуальную машину Ubuntu (мостовой интерфейс Wi-Fi) и телефон Android к маршрутизатору Wi-Fi; Связь клиент-сервер TCP работает нормально, где бы я ни запускал клиент и сервер.
Я проверил правила брандмауэра на виртуальной машине Ubuntu, они были пустыми с политикой ACCEPT для цепочек ввода, пересылки и вывода.
Из ОС Win 10 Host я мог пропинговать IP-адрес как виртуальной машины (192.168.66.11), так и телефонов Android (192.168.66.12)!