Isso não é culpa do apache. As diretivas VirtualHost não funcionam para solicitações via IP. O computador na sua LAN a partir do qual você está acessando o site verifica os servidores DNS e obtém o IP externo como resultado. Se o servidor estiver na mesma rede, um roteador adequado em sua rede deverá resolvê-lo / rotear adequadamente, mas isso nem sempre acontece com alguns roteadores.
Para testar isso, em um cliente, adicione uma entrada DNS personalizada para seu domínio, mapeando-a para o ip interno do seu servidor. Edite /etc/hosts
se o cliente for linux ou C:\Windows\system32\drivers\etc\hosts
se cliente no Windows e adicione isso (altere 10.0.0.1 com IP interno do seu servidor):
10.0.0.1 domain.com
Atualizar : Se a solução com DNS funcionar, o que você pode fazer é configurar o servidor DNS personalizado em sua rede interna, o que permitiria definir entradas DNS personalizadas. Desta forma, você não precisará configurá-lo manualmente nos clientes.