Singapore to Bali without flying
Land and sea the whole way, across two countries and four ferries.
12 legs · 8 days · 1 border · about $283 all in
Open this route in the planner Change the pace, the beds or the passport and the numbers follow.
Pragmatic routing
Singapore Bali overland
Singapore to Bali is a rail journey for part of its length and an honest slog for the rest: 12 legs (4 on rails, 4 by sea, 4 by road) across 2 countries, with 1 frontier in between. The one to watch: Batam Centre to Dumai is not a service we can stand behind. Be clear-eyed about the 12h coach from Pekanbaru to Palembang — there is no railway on that corridor and no way to dress the bus up as anything else.
2 timezones: UTC+7, UTC+8
Convert every published time to a single clock in your own notes before you book. Operators publish in their own local time and label it inconsistently.
Stations that catch people out
- Singapore (HarbourFront) Rail dead end. Everything onward from here is a boat.
- Probolinggo The usual railhead for Bromo. The crater rim is a jeep ride beyond Cemoro Lawang.
- Banyuwangi (Ketapang) The ferry pier is beside the station. This is what makes "Singapore to Bali overland" literally true.
The route
Durations are typical scheduled running times, not departures, and the figure under each service is how often it runs — the number that decides whether a missed connection costs you an hour or a day. Where a last departure is shown it is the one worth setting an alarm for. No planner in this region can give you a departure time you should trust: the operators publish nothing in common. Take these legs to the booking sites below and read the real clock there.
| Leg & operator | Time | Fare | |
|---|---|---|---|
| 1 | Singapore (HarbourFront) Batam Centre Riau / Straits ferries Reported HarbourFront or Tanah Merah fast ferry 20 a day · roughly hourly from HarbourFront and Tanah Merah last 21:00 This is how you get past Singapore's dead end. Full immigration both ends. No bookable site of its own — try 12Go12go.asia | 1h | $18 |
| Change at Batam Centre allow 2 h minimum Ferry to ferry at the same terminal | |||
| 2 | Batam Centre Dumai Riau / Straits ferries Verify Riau inter-island ferry several · daylight hours; the international routes far less often Schedules and operators on the Riau routes change often. Verify before you rely on it. No bookable site of its own — try 12Go12go.asia | 6h | $30 |
| Change at Dumai allow 90 min minimum Same terminal, different operators — no through ticketing, no held connection | |||
| 3 | Dumai Pekanbaru Long-distance coach Reported Coach several · through the day, with overnight departures on the long runs No bookable site of its own — try 12Go12go.asia | 3h | $8 |
| Change at Pekanbaru allow 30 min minimum Same station, same operator, seat to seat | |||
| 4 | Pekanbaru Palembang (Kertapati) Long-distance coach Reported Long-distance coach 4 a day · mostly overnight No bookable site of its own — try 12Go12go.asia | 12h | $20 |
| Change at Palembang (Kertapati) allow 90 min minimum Same station, different operators — no through ticketing, no held connection | |||
| 5 | Palembang (Kertapati) Bandar Lampung (Tanjungkarang) KAI Reported Rajabasa / Sriwijaya frequent · Java's main corridors run all day South Sumatra's isolated network. Pleasant, and a relief after the coaches. Book with KAIbooking.kai.id | 9h | $8 |
| Change at Bandar Lampung (Tanjungkarang) allow 2 h minimum Arriving off a sleeper onto a long-distance departure | |||
| 6 | Bandar Lampung (Tanjungkarang) Bakauheni Damri Reported Damri bus frequent · through the day, often sold with the ferry Book with Damridamri.co.id | 2h | $4 |
| Change at Bakauheni allow 4 h minimum Onward ferry reached by road transfer | |||
| 7 | Bakauheni Merak ASDP Indonesia Ferry Reported ASDP ferry every 30–60 min · around the clock Very frequent, around the clock. Usually taken as a through bus-plus-ferry ticket. Book with ASDPferizy.com | 2h | $1.5 |
| Change at Merak allow 90 min minimum Same terminal, different operators — no through ticketing, no held connection | |||
| 8 | Merak Jakarta (Gambir) KAI Reported KAI Commuter via Rangkasbitung 12 a day · KAI Commuter via Rangkasbitung, roughly hourly Book with KAIbooking.kai.id | 3h 30m | $1 |
| Change at Jakarta (Gambir) allow 30 min minimum Same station, same operator, seat to seat | |||
| 9 | Jakarta (Gambir) Surabaya (Gubeng) KAI Reported KAI north-coast line frequent · Java's main corridors run all day via Cirebon · Semarang Book with KAIbooking.kai.id | 10h | $20 |
| Change at Surabaya (Gubeng) allow 30 min minimum Same station, same operator, seat to seat | |||
| 10 | Surabaya (Gubeng) Banyuwangi (Ketapang) KAI Reported Mutiara Timur / Probowangi 8 a day · through the day via Probolinggo · Jember Book with KAIbooking.kai.id | 6h 30m | $8 |
| Change at Banyuwangi (Ketapang) allow 2 h minimum Rail to ferry in the same town | |||
| 11 | Banyuwangi (Ketapang) Gilimanuk ASDP Indonesia Ferry Structural ASDP Ketapang–Gilimanuk every 30–60 min · around the clock, all year Runs around the clock, pier beside the station. The dawn crossing is the one people remember. Book with ASDPferizy.com | 45m | $1 |
| Change at Gilimanuk allow 90 min minimum Same terminal, different operators — no through ticketing, no held connection | |||
| 12 | Gilimanuk Denpasar Local transfer Reported Bus / private car on demand · taxis, tuk-tuks and songthaews wait at the station; nothing to time Pay on the spot | 4h | $10 |
Day by day
Shape, not a timetable. This is built from running times, the connection buffers above and your chosen pace — it deliberately states no departure time, because none of these operators publish one this page could stand behind. Use it to decide how many nights to book and where; use the operator sites for the clock.
- Singapore Batam HarbourFront or Tanah Merah fast ferry 1h
- Batam Dumai Riau inter-island ferry 6h
- Dumai Pekanbaru Coach 3h
- Pekanbaru Palembang Long-distance coach 12h
- Palembang Bandar Lampung Rajabasa / Sriwijaya 9h
- Bandar Lampung Bakauheni Damri bus 2h
- Bakauheni Merak ASDP ferry 2h
- Merak Jakarta KAI Commuter via Rangkasbitung 3h 30m
- Jakarta Surabaya KAI north-coast line 10h
- Surabaya Banyuwangi Mutiara Timur / Probowangi 6h 30m
- Banyuwangi Gilimanuk ASDP Ketapang–Gilimanuk 45m
- Gilimanuk Bali Bus / private car 4h
Where you sleep
Priced where the journey actually stops, not averaged across the region — the difference between a night in Siem Reap and a night in Singapore is a factor of five, and it is worth seeing before you book. Figures are indicative low-season rates for a room booked a week or two out; the totals below use the simple private room band. 1 further night is spent aboard, already inside the fare.
-
Dumai night of day 1 $25$8hostel bed$25simple private room$55good mid-range hotel
-
Pekanbaru night of day 2 $25$8hostel bed$25simple private room$55good mid-range hotel
-
Merak night of day 4 $25$8hostel bed$25simple private room$55good mid-range hotel
-
Jakarta night of day 5 $28$9hostel bed$28simple private room$60good mid-range hotel
-
Surabaya night of day 6 $25$8hostel bed$25simple private room$55good mid-range hotel
-
Gilimanuk night of day 7 $25$8hostel bed$25simple private room$55good mid-range hotel
Border crossings
Itineraries die at frontiers, not on track. Never plan one of these without checking the current position for your own passport.
Singapore ↔ Batam
Singapore ↔ Indonesia- Where
- Ferry terminal — immigration at the terminal, not on the boat
- On the train?
- n/a
- Luggage
- Yes
- Visa
- Indonesian visa-on-arrival or e-VOA is available to many nationalities at the main Batam terminals. Confirm the specific terminal is an international checkpoint.
- Cash on the far side
- Indonesian rupiah.
- Time cost
- About 60 minutes of formalities
The trap. Some Riau ferry terminals are domestic-only. Arriving at the wrong one wastes a day.
Where this breaks
Ranked by what actually ends trips, not by probability. A missed last connection costs a day and an unplanned hotel; a missed afternoon connection costs an afternoon.
-
caution
Batam Centre to Dumai is not a service we can stand behind
Schedules and operators on the Riau routes change often. Verify before you rely on it.
What to do. Verify it is running on your date before you build the rest of the itinerary around it.
-
caution
Bakauheni needs 4 hours, not a connection
Onward ferry reached by road transfer. A gap smaller than this is not a connection — it is a missed train with a plausible-looking timetable behind it.
What to do. Plan an overnight stop here rather than trying to make it in one day.
-
note
The Singapore (HarbourFront) – Batam Centre boat is weather-dependent
Ferries are cancelled rather than delayed, and a cancellation costs a day rather than an afternoon.
What to do. Never make this crossing the only path to a fixed commitment. Leave a slack day between it and any flight home.
-
note
The Batam Centre – Dumai boat is weather-dependent
Ferries are cancelled rather than delayed, and a cancellation costs a day rather than an afternoon.
What to do. Never make this crossing the only path to a fixed commitment. Leave a slack day between it and any flight home.
Booking sequence
Book in order of scarcity times window length, not in the order you travel. The shortest leg on the whole spine sells out first.
-
1
KAI
~45 days
Plentiful, but the Bandung and Yogyakarta services fill at weekends.
Good site, bookable from abroad. The Access by KAI app is easier once you are in Indonesia.
Book with KAIbooking.kai.id -
2
Sea legs
Mostly turn-up-and-go
Langkawi and Samui routes are worth pre-booking in season, the Mekong slow boat the day before you sail, and the Philippine RORO crossings not at all — they are grounded or they are running.
-
3
Road legs
Walk-up, except the long coaches
The Vientiane–Hanoi sleeper coach and the Sumatra runs are worth a day or two ahead.
Everything else on this route, in no particular hurry:
-
·
ASDP Indonesia Ferry
Ferizy is ASDP's official booking platform. Crossings are frequent enough that walking up usually works too.
Book with ASDPferizy.com -
·
Damri
Indonesia's state bus operator. Often sold as a through ticket with the ferry.
Book with Damridamri.co.id -
·
Local transfer
Taxi, tuk-tuk, songthaew or minivan at the station. Agree the fare before you get in.
Pay on the spot -
·
Long-distance coach
Several operators run these corridors at varying quality. An aggregator is the sane way to compare them.
No bookable site of its own — try 12Go12go.asia -
·
Riau / Straits ferries
Operators on the Straits routes change often. Check what is currently sailing before you commit to a date.
No bookable site of its own — try 12Go12go.asia
Where an operator cannot be booked from abroad — the Laos–China Railway above all — an aggregator is the practical route in. They add a fee, and some sell tickets they do not yet hold and buy them when inventory opens, which is a genuine cancellation risk on a scarce sleeper. Prefer the operator wherever the operator actually works, which is most of the time.
No affiliate links on transport. Every booking link above goes straight to the operator or aggregator and earns this project nothing. The operator's own site is listed first because it is usually cheaper and always more reliable, not because of what it pays — that ordering is the most load-bearing judgement on this page and it is not for sale. Booking URLs were last reviewed 2026-07 and are not machine-checked — if one is dead, search the operator name rather than trusting a reseller that ranks well.
Where it does earn. The hotel links in “Where you sleep” and the insurance link below pay a commission, at no extra cost to you. They are marked as paid links. Nothing about them changes a route, a price, or the order of anything: no hotel is recommended over another and no leg is routed differently because of them.
Costs
| Transport, 12 legs | $130 |
| Accommodation, 6 nights — Dumai $25, Pekanbaru $25, Merak $25, Jakarta $28, Surabaya $25, Gilimanuk $25 | $153 |
| 1 night on a sleeper — a bed you already paid for in the fare | included |
| Total | $283 |
Against flying
8 days, $283, 12 legs versus a flight of roughly 2h 51m gate to gate at somewhere around $89–185. That fare band is estimated from the 1678 km great-circle distance, not from live inventory — check it.
The plane wins on time and often on money. People take this route because the overland journey is the thing they want, not because it is efficient. If that is not you, fly — and there is no shame in the sleeper one way and the plane home.
If you have more time
Where the slow-travel value actually is — the detours that turn a transit into a trip.
Swap the north coast for Bandung and Yogyakarta
+2 hours moving, +2 nightsThe router picked the north-coast line through Semarang because it is the quicker way across Java. The southern route — Whoosh to Bandung, then the Argo Wilis through the hills to Purwokerto and Yogyakarta — is slower, prettier, and puts you within reach of Borobudur and Prambanan. On a journey taken deliberately by land, that is usually the better trade.
Take the dawn crossing to Bali
+0 nightsThe Ketapang–Gilimanuk ferry runs around the clock, so you can choose your moment. Choose first light.
Photography
- Marina Bay Sands — Basile Morin, CC BY-SA 4.0, via Wikimedia Commons
- Kota Tua, Jakarta — CEphoto, Uwe Aranas, CC BY-SA 3.0, via Wikimedia Commons
- Mount Bromo — Thomas Hirsch (= user Ravn), CC BY-SA 3.0, via Wikimedia Commons
- Ijen blue fire — Sémhur (talk), CC BY-SA 4.0, via Wikimedia Commons
- Ubud — chensiyuan, CC BY-SA 4.0, via Wikimedia Commons
