Есть такой простой скрипт
<?php
$server_ip = $_POST['host'];
$server_port = $_POST['port'];
echo "Sending heartbeat to IP $server_ip, port $server_port\n";
if ($socket = socket_create(AF_INET, SOCK_DGRAM, SOL_UDP)) {
for ($i = 1; $i <= 10; $i++) {
$send_socket = socket_sendto($socket, $message, strlen($message), 0, $server_ip, $server_port);
if($send_socket !== 0){
echo "Сокет не отправлен.";
var_dump($send_socket);
}else{
echo "Успеншо отправлен сокет";
}
sleep(1);
}
} else {
echo "Can't create socket";
}
Скрипт работает, запускал на своем компе, UDP пакет шлю на VPS'ку в ней проверяю прилетают ли пакеты командой
tcpdump -n udp port 4444
Тоже самое если сделать на чистой VPS'ке, на которой ubuntu20.04 и php7.4-fpm, пакеты отправляются на сервер.
Но если скрипт запустить на каком-то стороннем сервере UDP пакеты почему-то не отправляются, socket_sendto возвращает bool(false), так же тестировал отправку UDP пакета на языке Си, все тоже самое почему-то на сторонних серверах пакеты не отправляются, в чем может быть проблема подскажите пожалуйста.
Сторонний сервер я подразумеваю например хостинг или просто VPS'ка на которой стоит админ панель для его администрирования.
Может файервол запрещает отправку пакетов или прав каких-то не хватает.