Я использую виртуальную машину Debian в Google Cloud, работающую в качестве поставщика API.
Я получаю доступ к API с Android через TCP-порт 30300, и он работает нормально.
Я также получаю доступ к API из приложения C++, работающего на микроконтроллерах, и оно также работает нормально.
Затем я решил также предоставить средства для доступа к API из PHP, и это не работает.
С внешнего сервера под управлением Apache API ведет себя так, как будто он недоступен, монитор API вообще не показывает никакого доступа.
Затем я переместил PHP-скрипт на тот же сервер, на котором работает API, и просто изменил целевой сервер с его веб-адреса на http://127.0.0.1:30300/alprbr и работает нормально.
Я внимательно проверил правила брандмауэра Compute Engine и обнаружил, что правило разрешает только IPV6, и я не нашел способа разрешить трафик на общедоступный IP-адрес для IPV4.
Я действительно не знаю, является ли это причиной проблемы, но, похоже, нужно разобраться, прежде чем пытаться что-то еще.
Правило Google Cloud Firewall:
алпрбр
Вход
Применить ко всему
Диапазон IP: 0.0.0.0/0
TCP: 30300
Позволять
1000
По умолчанию
netstat -ан | grep "СЛУШАТЬ"
возвращает:
TCP 0 0 127.0.0.1:3306 0.0.0.0:* ПРОСЛУШИВАТЬ
TCP 0 0 0.0.0.0:80 0.0.0.0:* ПРОСЛУШИВАТЬ
TCP 0 0 0.0.0.0:22 0.0.0.0:* ПРОСЛУШИВАТЬ
TCP 0 0 0.0.0.0:1880 0.0.0.0:* ПРОСЛУШИВАТЬ
tcp6 0 0 :::22 :::* СЛУШАТЬ
tcp6 0 0 :::30300 :::* ПРОСЛУШАТЬ
Что я делаю не так?
Помощь приветствуется.