Раз клиент внутри виртуалки ты уже пробовал, сначала сравни nmap -sT -Pn и sudo nmap -sS -Pn на одну цель. -Pn тут важен: через VPN часто режется ping-обнаружение, и nmap просто считает хост лежащим. Глянь nmap --iflist, через какой интерфейс идёт маршрут к цели (tun0 у OpenVPN, wg0 у WireGuard), и если nmap путается, укажи его явно через -e. Если -sT проходит, а -sS нет, дело скорее на твоей стороне, обычно в интерфейсе или правах на raw-сокеты. Если не проходит вообще ничего, вероятнее режет сам VPN-провайдер, многие коммерческие сервисы на выходе фильтруют сканирование. Тогда для лаб поднимают свой VPS с WireGuard, только правила хостера почитай, за сканы чужих адресов многие шлют abuse.