Oaxaca is the capital of the state of the same name, and the city (officially known as Oaxaca de Juárez) is easily one of Mexico’s most popular tourism destinations.
With that being said, the city is relatively isolated geographically. While numerous bus routes exist, it will likely be a long journey no matter which direction you’re coming from.
ADO and its associated companies run direct buses from Mexico City (both TAPO and Norte stations) which last 6-7 hours. Direct buses from Puebla’s CAPU, meanwhile, take about 5 hours.
For those coming from the east, you can catch a direct OCC bus from San Cristóbal de las Casas. The ride last around 10 hours and most of the routes are night buses. You can also ride directly from Comitán, Chiapas, which takes 12-13 hours.
For those coming from Oaxaca’s Pacific coast, the journey is not a quick or easy one either. Coach buses from Huatulco take no less than 9 hours, while buses from Puerto Escondido (via Huatulco) take more than 11!
While there is a more direct minivan route from Puerto Escondido which lasts 6-7 hours, it’s not for the faint of heart. Even those not normally prone to motion sickness often find themselves regretting the nausea-inducing journey through mountainous roads. Fortunately, a new highway is being worked on, but it’s not yet ready at the time of writing.
If you’re not into long bus rides, you can simply fly. The Xoxocotlán International Airport has direct flights from cities throughout the country, along with a few from the US (Houston, Dallas and LA).