Ready for an unforgettable adventure? Discover the best ways to travel from Surabaya to Bali. Compare flights, buses, and trains for a perfect trip! (CLICK HERE)
Table of Contents
Surabaya to Bali is a classic Java-to-Bali journey, and you can do it three ways: fly, take an intercity bus, or piece together a train, a ferry crossing and an onward bus. Flying is the fastest. The bus is the simple overland option. The train route is the most spread out, because there is no direct train into Bali.
That’s down to geography. Bali is separated from Java by the Bali Strait, so any overland journey crosses by ferry between Ketapang in East Java and Gilimanuk in western Bali. A train can get you as far as Ketapang, and no further.
I took the bus, so I’ll tell you what that was like, including what happens when the bus rolls onto the ferry. For the other options I’ve used current listings and guides.

Surabaya to Bali: A Quick Transport Comparison
Here’s the overview. The last column shows what each price covers and what’s still extra, so you can compare like with like.
| Transport | Total travel time | Cost (IDR, per person, one way) | What’s included / what’s extra | Best for |
|---|---|---|---|---|
| Flight | About 1 hour in the air, plus airport time | Airfare only: roughly 770,000–1.8 million | Extra: airport transfers at both ends and any baggage fees | Saving time |
| Intercity bus | About 12–14 hours | Roughly 200,000–405,000 (I paid around 220,000 on Bali Trans) | One booking for the whole route. The ferry is often included, but not always, so confirm with your operator | Budget travelers and a simple overland trip |
| Train + ferry + onward bus | About 12.5–14 hours in total | Train (economy to executive): 215,000–280,000. Ferry (foot passenger): about 10,600. Onward bus in Bali: extra, not verified. Whole journey estimate: roughly 305,000–700,000 | Three separate tickets, so nothing is bundled | Travelers who want to go by rail |
Traveling from Surabaya to Bali by Train, Ferry and Bus
There is no direct train from Surabaya to Bali. The Surabaya to Bali train really means a train to Ketapang in Banyuwangi, a ferry across the Bali Strait, and then a bus once you land in Bali. I haven’t named specific train services here, because schedules and operators change. Check the current options on the official booking app before you plan.
Train Classes and Costs
Trains toward Banyuwangi generally offer economy and executive seating. On a sample day in October 2026, the fares from Surabaya to Ketapang were:
| Class | Approximate fare (IDR, per person) |
|---|---|
| Economy | 215,000 |
| Executive | 280,000 |
Fares differ by service and date. Make sure your ticket ends at Ketapang, because some tickets stop earlier along the line. A train ticket doesn’t include the ferry or the onward journey unless the booking says so.
I took the bus, not the train, so this part comes from listings and guides.
Taking the Ferry from Ketapang to Gilimanuk
Every overland Surabaya to Bali ferry crossing happens at the same place. The ferry links Ketapang Port in Banyuwangi with Gilimanuk Port at the western tip of Bali.
- Station to port: Ketapang station is roughly a 10-minute walk from the ferry terminal, according to one traveler’s guide.
- Crossing time: about 45 to 60 minutes. Guides suggest budgeting 2 to 3 hours for the whole process, including reaching the port, boarding and getting off.
- Frequency: it runs around the clock, with frequent departures.
- Foot-passenger fare: about IDR 10,600 for an adult (verified June 2026 by one guide, and shown on another listing).
- Tickets and luggage: the official ASDP platform is Ferizy. Tickets are generally valid only for the time slot you book, and one listing gives a 30 kg luggage limit. Check the current rules on Ferizy.
Don’t plan a tight connection when your train and ferry are booked separately.
Getting from Gilimanuk to Other Parts of Bali
Gilimanuk is on the island’s far western tip, so the main destinations are still ahead of you.
- Towards Denpasar: one guide lists the bus from Gilimanuk to Terminal Ubung in Denpasar as about 123 km and roughly 3.5 to 4 hours.
- Ubud, southern Bali and beyond: you’ll likely need another connection from Denpasar, adding time and cost.
I couldn’t verify a current fare for the onward bus, so I haven’t put a number on it. Work out your final destination before you pick this route, and don’t assume every place has a direct connection from Gilimanuk.
Is the Train and Ferry Route Worth It?
It suits travelers who want to cross Java by rail and don’t mind the pieces. You get the train experience, but also separate tickets, connections to coordinate and more chances for delays. It’s less convenient if you want one booking that ends near your accommodation.
What the whole journey costs. The verified parts, the train and the ferry, add up to roughly IDR 226,000 (economy) to 291,000 (executive) per person. The onward bus in Bali comes on top of that. One route-planning site puts the whole train, ferry and bus journey at roughly IDR 305,000–700,000 and about 12.5–14 hours. Treat that as a ballpark, and compare it with a through bus before deciding.
Traveling from Surabaya to Bali by Bus
The Surabaya to Bali bus is the main overland option. Buses run from Surabaya to Denpasar and other listed destinations, and they cross the strait on the Ketapang to Gilimanuk ferry.
- Journey time: about 12 to 14 hours. One platform’s schedules range from 12 hours to just over 14 hours, averaging about 12 h 46 min.
- Ticket prices: roughly IDR 200,000–405,000 on one platform, with the cheapest listed at IDR 180,000. Prices vary by operator and class.
- Comfort: services range from basic to more comfortable, with differences in seating, reclining and air conditioning.
My own experience
I took the bus from Surabaya to Bali with a budget operator called Bali Trans. It cost around IDR 220,000.
The part I remember most is the ferry. The bus drove onto the ferry, and then everyone was told to get off and go up to the upper deck. Nobody was allowed to stay in the bus while it was on the ferry. We could only get back on once we reached the port on the Bali side, which is Gilimanuk Port.
So don’t plan on sleeping through the crossing in your seat. Bring what you need up to the deck (valuables, a charger, a jacket), because you won’t be going back to the bus until you dock. That’s how it worked on my bus. Arrangements can differ by operator, so check the conditions for yours.
Do Buses from Surabaya to Bali Include the Ferry?
It depends on the operator. One guide says the ferry is usually included in the bus fare for services to Denpasar, but don’t assume it. Before you pay, check:
- Whether the ferry charge is in the advertised fare or paid separately
- What passengers do during the crossing (on my bus, everyone left the vehicle for the upper deck)
- Whether you stay with the same bus or have to transfer
Where Do Buses Depart From and Arrive in Bali?
- Surabaya: one platform lists boarding points at Bungurasih (Purabaya) Terminal and Medaeng, and some operators use their own pickup locations.
- Bali: listed drop-off points include Mengwi Terminal and Denpasar, and other listings name Ubung Terminal.
The destination on your ticket matters. A bus that ends in Denpasar might be fine for one traveler, while another still needs a separate connection to Ubud or elsewhere.
Which Bus Should You Choose?
The lowest fare isn’t always the best value. A cheap ticket can mean a less convenient departure point, a longer journey, or an arrival location far from where you need to be. I used a budget operator and it worked, but I can’t speak for the others, so compare operators for your date.
Traveling from Surabaya to Bali by Plane
Flying is the quickest option. The Surabaya to Bali flight connects Surabaya’s Juanda International Airport (SUB) and Bali’s Ngurah Rai International Airport (DPS), and it takes about an hour in the air.
Are There Direct Flights from Surabaya to Bali?
Yes. One route site, updated 20 October 2026, lists nonstop flights between SUB and DPS, about 8 a day on average, with the fastest at about 1 hour. It names Batik Air, Citilink, Garuda Indonesia, Lion Air and Super Air Jet. Routes and departure times change, so check the schedule for your date.
What Does a Flight Really Cost?
The airfare alone, one way per person, from two comparison sites checked on 20 October 2026:
- Cheapest fares spotted: about USD 43–68, roughly IDR 770,000–1.2 million.
- Typical ranges: about USD 43–53 on one site and USD 50–100 on another.
- Planning range for the ticket: about IDR 770,000 to 1.8 million.
Not included in that price: the ride to Juanda, the ride from Ngurah Rai to your accommodation, and any baggage fees. I haven’t verified current transfer costs, so check them for your own route.
How Much Time Should You Allow for the Flight?
The hour in the air is only part of it. Add the trip to Juanda, check-in and security, baggage collection, and the ride from Ngurah Rai. If you’re heading to Ubud, Canggu or somewhere else outside the immediate airport area, allow extra time after landing.
Which Is the Best Way to Travel from Surabaya to Bali?
There’s no single answer. Here’s how I’d choose.
- On a budget: compare the bus fare with the train-ferry-bus total for your date. The train and ferry alone come to roughly IDR 226,000–291,000 before the onward bus, while buses are listed at roughly IDR 200,000–405,000, so neither is automatically cheaper.
- Saving time: fly. An hour in the air beats 12 to 14 hours overland, even with airport time.
- Comfortable overland travel: a through bus is simpler, with one booking and no transfers. The train route lets you stretch out on the train, but you manage more connections.
- Specific parts of Bali: your final destination decides it. A bus ending in Denpasar suits southern Bali, but Ubud or other areas may need an extra connection, and the same goes for the train route.
How to Book Transportation from Surabaya to Bali
A short checklist for each option:
- Train: book on the official train app and confirm your ticket ends at Ketapang.
- Ferry: book on Ferizy and choose the right ticket category.
- Bus: use an online platform such as redBus or Traveloka, or book with the operator. Confirm the Bali drop-off point and whether the ferry is included.
- Flight: compare airlines, departure times and baggage allowances, then book with the airline or a reputable travel platform.
Practical Tips for Traveling from Surabaya to Bali
Decide Where in Bali You Need to Arrive
Bali is a big island. Reaching Denpasar or Gilimanuk doesn’t mean you’ve arrived at your accommodation.
Leave a Buffer Between Connections
Train delays, ferry queues and onward schedules can all add time, especially at holiday peaks. When tickets are booked separately, don’t plan a tight connection.
Check Your Luggage Allowance
Rules differ between trains, buses, the ferry and airlines, so check before you pack.
Remember the Time Difference
Bali follows Central Indonesia Time (WITA), which is one hour ahead of Surabaya’s Western Indonesia Time (WIB). Check local times when coordinating connections.
Frequently Asked Questions About Surabaya to Bali
What is the best way to travel from Surabaya to Bali?
It depends on your priorities. A flight saves the most time, a bus is the simple overland option, and the train-ferry-bus route suits travelers who want to go by rail.
How long does it take to travel from Surabaya to Bali?
About 1 hour in the air for a flight (plus airport time), and roughly 12 to 14 hours overland by bus or by train, ferry and onward bus.
Is there a direct train from Surabaya to Bali?
No. The railway ends in Banyuwangi, so you need a ferry across the Bali Strait and then onward transport in Bali.
Can you travel from Surabaya to Bali by train and ferry?
Yes. Take a train to Ketapang, cross to Gilimanuk by ferry and continue by bus. These are separate tickets, so coordinate the connections.
How much does a train and ferry journey from Surabaya to Bali cost?
The train to Ketapang was IDR 215,000 (economy) or 280,000 (executive) on a sample day, and the ferry was about IDR 10,600 for a foot passenger. The onward bus is extra. One route-planning site estimates the whole journey at roughly IDR 305,000–700,000.
Is there a direct bus from Surabaya to Bali?
Yes. Buses run from Surabaya to Denpasar and other destinations, and they cross on the Ketapang to Gilimanuk ferry. Check the exact drop-off point.
Does the bus ticket include the Bali ferry crossing?
Often, but not always. Check your ticket’s conditions.
How long is the flight from Surabaya to Bali?
About 1 hour in the air. Add airport transfers, check-in and the ride onward from Ngurah Rai.
Is the bus cheaper than flying from Surabaya to Bali?
Usually. Buses are listed at roughly IDR 200,000–405,000 and flights at roughly IDR 770,000–1.8 million for the airfare alone. I paid around IDR 220,000 for my bus. But the bus takes 12 to 14 hours, so compare time as well as price.
Conclusion
Which way to go from Surabaya to Bali comes down to what you value most:
- Choose the bus for a straightforward overland journey with one booking.
- Choose the train, ferry and onward bus if you specifically want to travel by rail and don’t mind managing the connections.
- Choose a flight if saving time matters most.
I took the bus with Bali Trans for around IDR 220,000. It was a long ride, and the strangest part was the ferry, where we all had to leave the bus and wait on the upper deck until we reached Gilimanuk. For me, on a budget, it was worth it.
Planning Your Indonesia Trip?
If you’re putting together a bigger Indonesia itinerary, here’s what else I’ve written:
2 Days in Yogyakarta: A Slow Travel Itinerary for Central Yogyakarta
Where to Stay in Yogyakarta: Best Areas for Every Traveler
Yogyakarta Travel Budget: How Much Does Yogyakarta Cost?
How to Travel from Yogyakarta to Surabaya 2026: The Ultimate Guide
How to Travel from Yogyakarta to Jakarta: Transport Guide 2026





