Есть много вариантов, все бесплатные: vnc , безусловно, один из них. Существует много программ, реализующих vnc как сервер, так и клиент, и они могут свободно смешиваться.
Вы можете рассматривать RealVNC или sharpvncserver как сервер (тот, который работает на ПК с Windows), а также те же программы или другие подобные им (vncviewer, x11vnc, remmina, krdc, ...) в качестве клиента.
Кроме того, вы можете использовать RDP (протокол удаленного рабочего стола), протокол, изобретенный Microsoft для естественного разрешения сеансов между ПК, что проще, поскольку для этого не требуется настраивать сервер на компьютере с Windows, все, что вам нужно сделать, это разрешить удаленное сеансы (инструкции о том, как это сделать, зависят от версии Windows, вы можете просто Google Windows разрешить подключения к удаленному рабочему столу). В этом случае хорошим клиентом для Linux является rdesktop.