Поскольку служба недоступна, когда виртуальный сервер находится в режиме моста или в режиме NAT с правильно настроенным правилом пересылки, проблема, скорее всего, связана с гостевым сервером или самой службой.
Многие службы не настроены на прием удаленных подключений по умолчанию и открывают сетевые порты для прослушивания только через петлевой сетевой интерфейс. Чтобы определить, с каким интерфейсом связан ваш сервис, используйте эту команду:
Linux:
# netstat -ntlup | grep portnumber
окна:
netstat -abno | FINDSTR LISTENING
и запишите IP-адрес, к которому привязан порт / процесс.
# netstat -ntlup | grep 53
tcp 0 0 127.0.1.1:53 0.0.0.0:* LISTEN 835/dnsmasq
udp 0 0 127.0.1.1:53 0.0.0.0:* 835/dnsmasq
показывает службу dnsmasq, работающую в интерфейсе обратной связи (127.0.xy), и доступ к ней возможен только процессам, работающим на локальном хосте.
# netstat -ntlup | grep 445
tcp 0 0 0.0.0.0:445 0.0.0.0:* LISTEN 566/smbd
tcp6 0 0 :::445 :::* LISTEN 566/smbd
Однако показывает службу прослушивания на всех интерфейсах (0.0.0.0).
в конце концов,
# netstat -ntlup | grep 138
udp 0 0 10.0.2.255:138 0.0.0.0:* 960/nmbd
udp 0 0 10.0.2.15:138 0.0.0.0:* 960/nmbd
показывает службу, прослушивающую eth0 (IP-адрес хоста), и любые широковещательные сообщения, полученные на eth0 (широковещательный адрес хост-сети, оканчивающийся на .255), поскольку протоколы Samba используют IP-широковещательные рассылки
Каждый сервис имеет свои собственные средства для включения удаленных подключений. это то, что должно быть настроено в самой службе (без контроля уровня ОС), потому что, когда служба открывает порт для прослушивания, она указывает детали того, к какому интерфейсу привязываться. Обычно (в Linux) это включает указание привязки интерфейса в основном файле конфигурации служб и перезапуск службы. В Windows вы, скорее всего, найдете флажок "разрешить удаленные подключения" или что-то подобное, но вам, как правило, все равно нужно перезапустить службу, чтобы изменения вступили в силу.