Skip to content
Bali to Surabaya: Flight, Bus, Train & Car Compared

Bali to Surabaya: Flight, Bus, Train & Car Compared

The quick version

Compare every way from Bali to Surabaya: flight, overnight bus with ferry, train and car. Times, cost trade-offs and who each option suits.

7 min readBy Nusa Ways Editorial
Share this article:
On this page

Last updated November 2026: our rule for Bali to Surabaya is to fly if your time is worth more than a hotel night, and to take the overnight bus if you would rather save that night's bill. Sources we checked describe no direct train, and the rail leg only starts at Ketapang on the Java side after the ferry. Still deciding whether to stop at all? Our take on whether Surabaya is worth visiting may help.

Featured image: Ya, saya inBaliTimur, CC BY-SA 2.0, via Wikimedia Commons.

Bali to Surabaya at a glance

Stasiun Ketapang BW 2020 — 1
Photo: Rizal Febri Ardiansyah, CC BY-SA 4.0, via Wikimedia Commons.

Four realistic modes cover this route. Flying is fastest, the overnight bus is cheapest, the train-plus-ferry chain is multi-leg, and a car suits groups. Treat every figure below as a range to verify before you book, because fares and schedules change quickly. Flight fares are deliberately blank, since we have no sourced figure. Check current fares with airlines.

ModeDoor-to-door time (verify)Indicative cost (verify)ComfortBest for
Flight, DPS to SUBAbout 55 min to 1 h 10 min in the air, plus airport buffersCheck current faresSeated, quickTight schedules, daytime arrivals
Overnight bus or shuttle via ferryAbout 9-15 h, depending on source and operatorRp210,000 to Rp489,000Reclining seat to sleeper cabinSolo budget, saving a hotel night
Bus to Gilimanuk, ferry, then trainAbout 10-17 hCheck each leg separatelySeveral transfersTravellers who want rail on the Java side
Car with driver or self-driveAbout 10-12 h, traffic and ferry queue permittingCheck current quotesPrivate, flexibleFamilies and groups with luggage
Stasiun Ketapang 2025 — 2
Photo: Rizal Febri, CC BY-SA 4.0, via Wikimedia Commons.

Flying from Bali (DPS) to Surabaya (SUB)

Flights run from Ngurah Rai (DPS) to Juanda Airport (SUB). Competitor figures for the route put flight time at roughly 55 minutes to 1 hour 10 minutes over about 303 km. That source describes the Surabaya-to-Bali direction, but the same corridor applies in reverse. Aim to reach the airport about 1.5 hours before departure, as that source advises. Check terminal and transfer details on the Ngurah Rai airport site. Time zones work in your favour: Bali uses WITA, one hour ahead of Java's WIB, so clocks go back an hour on arrival. Allow extra time for checked baggage, because a short hop still needs a full airport process. For arrival logistics and getting into town, read our Juanda airport guide. Official flight information is also on the Juanda airport site.

Stasun Ketapang 2025 — 3
Photo: Rizal Febri, CC BY-SA 4.0, via Wikimedia Commons.

Overnight bus and shuttle via the Bali Strait ferry

Buses are the budget answer. Fares on one aggregator run from Rp210,000 to Rp489,000, with the top end for sleeper or super executive seats. Journey times conflict between sources: about 9-12 hours on one page and 12-15 hours on another. We would plan for the long end and treat anything shorter as a bonus. Several products include the Gilimanuk-Ketapang ferry crossing in the ticket, but confirm that before paying. Pickup choices are wider than most travellers expect, so pick by where you sleep and how late you land.

KA Pandanwangi KTG 2 — 4
Photo: Rizal Febri Ardiansyah, CC BY-SA 4.0, via Wikimedia Commons.
  • Door-to-door vans pick up from Denpasar, Kuta, Seminyak, Sanur, Canggu and as far as Tabanan.
  • Large executive buses leave from Mengwi Terminal in Badung.
  • Operator offices sit along Jl. Diponegoro, Jl. Teuku Umar and Gelogor Carik in Denpasar.
  • Drop-offs in Surabaya include your door in Surabaya or Sidoarjo, Purabaya (Bungurasih) Terminal, and city-centre points near Gubeng, Pasar Turi and Basuki Rahmat.
  • Example price bands, all to verify: Rp220,000-270,000 for a large executive bus, Rp250,000-320,000 for door-to-door, Rp300,000-380,000 for a small HiAce, and Rp270,000-450,000 for executive to sleeper.

Train plus ferry: possible, but is it worth it?

Sponsored

Rail only covers the Java side. Our reading of the Java-to-Bali route is that Bali to Surabaya runs in reverse: a road transfer to Gilimanuk, a ferry to Ketapang, then a train from Ketapang to Surabaya Gubeng. Gilimanuk is reported at 3-4 hours' drive from Denpasar. The ferry takes about 45-60 minutes and runs 24 hours a day. The Ketapang-Gubeng train takes about 5 hours 15 minutes. The whole chain totals roughly 10-17 hours depending on connections. Check train times and seats on the KAI rail service site. We rarely recommend it for speed. A missed ferry connection can strand you at Ketapang. It suits rail fans and travellers who prefer a seat with a window over a night bus.

Driving or hiring a car with driver

Allow about 10-12 hours by car, according to one rental source. Traffic and the ferry queue at Ketapang drive most of the variation. Self-drivers need a valid licence, confidence on long stretches and the vehicle documents required for the crossing. A driver removes the navigation and parking stress. Quotes from rental firms are commercial, so compare several. For groups of three or four, split the car cost per head and compare it against the same number of bus seats. Families with heavy luggage often come out ahead.

Stasiun Banyuwangi Baru Malam Hari - panoramio — 6
Photo: musnahterinjak, CC BY-SA 3.0, via Wikimedia Commons.

Which option fits you?

Sponsored

Use these as starting rules, then check current fares and schedules.

Tip

Groups with luggage can compare a car at 10-12 hours against the long-end bus estimate of 12-15 hours.

  • Solo budget: sleeper or executive bus, so you skip a hotel night.
  • Couple: a small HiAce shuttle or a daytime flight, depending on how much sleep you need.
  • Family with luggage: a car with driver for door-to-door service.
  • Late-night arrival: choose a door-to-door drop-off in Surabaya or Sidoarjo over Purabaya Terminal.
  • Tight connecting flight: fly, and leave a generous buffer rather than gambling on the ferry.

Costs and hidden extras

Compare total cost, not ticket price. A bus fare of Rp210,000 to Rp489,000 covers a bed-equivalent seat that replaces a hotel night. A flight fare needs airport transfers on both ends and possibly a bag fee. Fill in this arithmetic yourself from verified fares: ticket, plus transfers, plus bags, minus the hotel night saved. Other extras to price in include ferry fees where they are not bundled and a taxi from Purabaya Terminal. Ride-hailing from the terminal is another option. We have no sourced figures for these items, so check current rates with your operator.

Good to know

Some bus tickets bundle the Gilimanuk-Ketapang crossing, which takes 45-60 minutes; confirm that before paying.

KA Pandanwangi KTG — 7
Photo: Rizal Febri Ardiansyah, CC BY-SA 4.0, via Wikimedia Commons.

Booking, timing and mistakes to avoid

Sponsored

Book flights early for peak periods such as July-August and December, as one source advises. See our guide to the Best Time to Visit Surabaya: Weather & Season Guide for seasonal planning. For buses, confirm the exact boarding point on your ticket, because Mengwi Terminal and a Denpasar travel pool are different places. A late ferry can cost you a connection, so never book a tight onward flight behind an overland leg. One aggregator advertises refunds of up to 75% with an add-on, but verify that before relying on it. If you miss a bus, take the next departure or switch to a flight. Confirm your drop-off point before you sleep, so you do not wake up at the wrong stop.

After you arrive in Surabaya

Sponsored

Pick a drop-off near where you will sleep. Our Surabaya hotel areas guide helps with that choice. For a first evening, start with our Surabaya food guide. Our restaurant picks cover sit-down options. For the next day, see what to do in Surabaya.

Frequently Asked Questions

How long is the flight from Surabaya to Bali?

Competitor sources put it at about 55 minutes to 1 hour 10 minutes. Flying the other way, from Bali to Surabaya, covers the same corridor of roughly 303 km.

How far is a plane trip to Bali?

The flying distance between Surabaya and Bali is about 303 km, per one competitor source. Add airport time on both ends when comparing it with the overnight bus.

Notes for your Indonesia trip

Optional updates when we add or change a town or island guide.

No spam. Unsubscribe anytime.

Continue reading

More guides you'll find useful