The Balkans are not a rail region. They are a bus region — and accepting that earlier will save you about a week of frustration.
The limits of rail {#rail}
The Balkan rail network exists, but it is not what you want it to be. The historic Belgrade–Bar line (Serbia to the Montenegrin coast) is a genuine experience and a real route. The Belgrade–Sofia and Belgrade–Skopje connections function. Almost everything else is either slow, infrequent, or both. Croatia and Slovenia have working domestic rail; cross-border rail to non-Schengen countries is rare and irregular.
For most journeys, rail will be 50–100% slower than the bus.
Buses are the backbone {#bus}
The bus network is dense, reasonably comfortable and cheap. The major operators are FlixBus across the EU side, and a patchwork of national companies (Globtour, Centrotrans, Lasta) elsewhere. Tickets are mostly bookable online; for smaller routes you may need to buy at the terminal an hour before departure.
Overnight buses are common and cheaper than a hotel night, but the border-crossing wakeups (typically two on a Belgrade–Split route) are not restful. If you want a working day the next morning, take a day bus and spend a night in a hostel.
Ferries on the Adriatic {#ferries}
The Croatian coastal ferry network (Jadrolinija) is the regional standout: a reliable, well-priced, year-round service between Split, the mid-Adriatic islands, Dubrovnik and Ancona (Italy). Fast catamarans serve commuter routes; slower car ferries handle the longer hops.
The Sarandë–Corfu ferry runs daily year-round and is a Schengen entry. The Bar (Montenegro)–Bari (Italy) line is an overnight option for getting to Italy without flying.
Border crossings, costed in hours {#borders}
A rough mental model:
- Schengen-internal (Croatia–Slovenia, Greece–Bulgaria): ten minutes or less.
- Schengen-to-non-Schengen (Croatia–Bosnia, Croatia–Montenegro, Greece–North Macedonia): thirty minutes to two hours depending on season. The Croatia–Montenegro crossing at Karasovići in July can eat half a day.
- Non-Schengen-to-non-Schengen (Montenegro–Albania, Serbia–North Macedonia): fifteen to forty-five minutes, usually faster than the Schengen crossings.
Some smaller crossings close at night. Check before committing to a late drive.
Renting a car {#rentals}
A car is the most flexible way to move between towns, particularly along the Albanian Riviera, the Bosnian interior or between Kotor and the Montenegrin hinterland. Cross-border rentals are possible but expensive and need to be agreed in writing — the standard contract often excludes Kosovo and sometimes Bosnia.
Diesel is widely available; high-octane petrol is less reliable in rural areas. Mountain roads in the interior are largely well-surfaced but narrow; snow chains are required in winter on most non-coastal routes.
Revision history
- 1.0 · March 2026