How to travel from Surabaya to Ubud, Indonesia

The distance between Surabaya and Ubud is around 360km (223 miles) and the quickest way to get there is to fly which takes around 1h 50m.

6 routes found

We've found 6 different ways to get from Surabaya to Ubud by plane, train, ferry, taxi, bus and car. The recommended routes, which include information on duration, ticket price, and level of difficulty, can be found below.

👋 Also check out UbudSurabaya if you're planning a return trip.

🚀 Fastest
1
plane
+

Fly

Fly from Juanda International (SUB) to Ngurah Rai (DPS).

  • Duration1h 50m
  • Flight time55min
  • Typical cost
    IDR 1,063,435($71)
Operated by

Lion Mentari Airlines

+ 3 others
2
bus
+

Bus

Take the bus to Terminal Mengwi.

  • Duration12h 20m
  • Departsonce daily
  • Typical cost
    IDR 509,250($34)
Operated by

Gunung Harta

3
train
+
ferry
+
taxi
+

Train, Ferry and Taxi

Take the train to Ketapang then take a ferry to Gilimanuk then take a taxi to Ubud.

  • Duration8h 40m
  • Departstwice daily
  • Typical cost
    IDR 1,707,485($115)
Operated by

Multiple operators

2 similiar routes

We’ve grouped similar routes together, click the arrows to see the other options.

💰 Cheapest
4
car
+
ferry
+
car
+

Car and Ferry

Drive to Ketapang then take a ferry to Gilimanuk then drive to Ubud.

  • Duration6h 20m
  • Departshourly
  • Typical cost
    IDR 389,425($26)
Operated by

Multiple operators

Frequently asked questionsabout travel between Surabaya and Ubud

There are several options for getting from Surabaya to Ubud by plane, train, ferry, taxi, bus and car. The cheapest option is to drive and then take a ferry which costs around IDR 389,425 ($26) and will take around 6h 20m. If you need to get there more quickly, you can fly and arrive in approximately 1h 50m, though it is a bit more costly at approximately IDR 1,063,435 ($71).

The distance between Surabaya and Ubud is around 360km (223 miles). In a direct line (as the crow flies), the distance is 311km (193 miles)

It takes around 1h 50m to get from Surabaya and Ubud by plane.

The quickest way to get from Surabaya to Ubud is to fly which takes around 1h 50m and will set you back approx IDR 1,063,435 ($71).

The cheapest way to travel between Surabaya and Ubud is to drive and then take a ferry which will typically cost around IDR 389,425 ($26) for a standard one-way ticket.

Train travel

There is no train service that runs between Surabaya and Ubud. We recommend that you fly from Juanda International (SUB) to Ngurah Rai (DPS). instead which will take 1h 50m.

Bus travel

Yes there is a bus that runs regularly from Surabaya and Ubud. It typically takes around 12h 20m and departs once daily.

There are no direct bus services that runs from Surabaya to Ubud. However, you can instead can take several connecting buses with changeovers in Terminal Mengwi. These services run once daily and will take a minimum of 12h 20m.

Gunung Harta run regular bus services between Surabaya and Ubud. Buses run once daily and take around 12h 20m on average but will vary depending on you book with.

Flights and Airlines

Yes you can fly from Surabaya and Ubud. Flights depart from Juanda International (SUB) and arrive at Ngurah Rai (DPS). The flight takes around 55min.

Yes there is a direct flight between Surabaya and Ubud with no stop-overs required. Flights typically take around 55min.

Lion Mentari Airlines, Citilink Indonesia, Garuda Indonesia and Indonesia AirAsia fly between Surabaya and Ubud. Flights depart from Juanda International (SUB) and and arrive into Ngurah Rai (DPS). These flights usually take around 55min.

The flight from Surabaya to Ubud typically takes around 55min. Flights depart from Juanda International (SUB) and and arrive into Ngurah Rai (DPS).

The closest major airport to Ubud is Ngurah Rai International Airport (DPS) (DPS) which is approximately 29km (18 miles) from Ubud. Blimbingsari Airport (BWX) (BWX) and Zainuddin Abdul Madjid International Airport (LOP) (LOP) are also nearby and might be a better alternative airport depending on where you are flying from.

Drive yourself

No, its not really possible or feasible to drive from Surabaya to Ubud. We recommend that you fly from Juanda International (SUB) to Ngurah Rai (DPS). instead which will take 1h 50m.

If you don't have a car, the easiest way to get from Surabaya to Ubud is to fly which takes, on average, 1h 50m and will usually cost around IDR 1,063,435 ($71).

How do I get from Surabaya to Ubud

Compare travel optionsbetween Surabaya and Ubud

Transport options from Surabaya to Ubud
Transport optionDurationCostFrequencyDistance
Fly
1h 50m
IDR 1,063,435($71)
on demand360km (223 miles)
Bus
12h 20m
IDR 509,250($34)
once daily430km (267 miles)
Train, Ferry and Taxi + 2 similar
8h 40m
IDR 1,707,485($115)
twice daily443km (275 miles)
Train, Ferry and Bus9h 50m
IDR 509,250($34)
twice daily442km (275 miles)
Train to Ketapang, ferry and bus10h 20m
IDR 509,250($34)
once daily446km (277 miles)
Car and Ferry
6h 20m
IDR 389,425($26)
hourly428km (266 miles)

Top Carriersoperating between Surabaya and Ubud

Airlines

Train operators

Ferry operators

Bus companies

Airports near Ubud

The following major airports near Ubud offer regular flights to various popular destinations within Indonesia and internationally.

DPS
Ngurah Rai International Airport (DPS)
International Airport
Distance
29km (18 miles) from Ubud
BWX
Blimbingsari Airport (BWX)
Domestic Airport
Distance
104km (64 miles) from Ubud
LOP
Zainuddin Abdul Madjid International Airport (LOP)
International Airport
Distance
115km (71 miles) from Ubud