Java and Bali are two of Indonesia’s most varied and spectacular islands, famous for their natural beauty, rice fields, volcanic landscapes, and Instagram-friendly beaches. Featuring heavily on visitor’s itineraries, transport between the two islands is crowded in peak season, often heavily skewed towards air travel from Surabaya to Denpasar.
For travellers searching for an extra scoop of adventure and local culture, it’s a whole lot more fun to take the train further into East Java to the port of Ketapang, where the tropical island of Bali is visible just across the water, reached via a short ferry ride.
Disclaimer: This website contains affiliate links. Should you click to purchase, it is at no additional cost to you, but we receive a small commission.
Have questions? Join the Southeast Asia Trains Facebook Group.
Route map
At the end of their Javanese adventures, many travellers find themselves in either Malang or Surabaya with plans to continue their Indonesian adventures next-door in Bali. From either city, there are frequent trains through East Java all the way to the eastern edge of island at Ketapang. After jumping off the train and leaving the small station, it’s just a simple walk across the road to the ferry terminal.
Once you’ve hopped across the water, the Balinese port of Gilimanuk isn’t worth much of your time, other than to grab a snack and arrange onward travel to the more interesting parts of the island. It’s easy enough to reach Bali’s tourist destinations via bus, but most travellers arrange a taxi or private driver to take them on the four-hour journey. Be prepared that the road from Gilimanuk is known as one of the most accident-prone on the island, so prepare for an exhilarating/scary ride.
Journey description and steps
Surabaya or Malang to Ketapang by train
Trains regularly travel from both Surabaya and Malang to Ketapang, with a range of departure times and classes. As this is one of the most pleasant train journeys in the country, with excellent views throughout the trip, it’s a good idea to take a daytime train if your itinerary allows so you can take it all in.


Ketapang is close to the regional capital of Banyuwangi, which has good accommodation options and is used as a base for exploring nearby Mount Ijen. It’s a stress-free place to break up the journey for a few days if you have time, just make sure to disembark at the city centre railway station (Banyuwangi Kota), which is just fifteen minutes before Ketapang (all services on this route stop at both stations).
Trains from Surabaya (Gubeng station) to Ketapang:
| Train | Surabaya Gubeng | Ketapang |
|---|---|---|
| Sangkuriang | 01:37 | 06:52 |
| Probowangi 297 | 05:55 | 12:45 |
| Mutiara Timur 209 | 09:24 | 15:30 |
| Sri Tanjung 278 | 12:20 | 20:00 |
| Logawa 248 | 14:45 | 21:20 |
| Mutiara Timur 211F | 21:50 | 03:40 +1 |
| Blambangan Ekspres 146 | 22:50 | 04:40 +1 |
| Wijaya Kusuma 158 | 23:48 | 05:40 +1 |
Average journey time: 6 hours 23 minutes
Trains from Malang to Ketapang:
Average journey time: 6 hours 51 minutes

Ketapang to Gilimanuk by ferry
Less than 5km of water separates Java from Bali, so it’s a simple and fun trip between the two islands. Ferries are basic and unpretentious, perfect for the short fifty minute journey.

Tickets can be booked in advance, which is recommended to save you negotiating with, and paying commission to, the ticket sellers who line the entrance to the port. If you’ve booked in advance, you just need to exchange your confirmation email for a boarding pass at the designated ticket window. Don’t worry though if you arrive without a ticket as they’re still cheap even with the small mark-up charged by the ticket sellers.
Ferries run almost constantly, especially during peak tourist season, so you’ll never have long to wait to make the crossing. You won’t be allocated a specific departure time: once you’ve checked in and received your boarding pass you’ll just be put onto the next available crossing. Depending on weather and how busy the port is, crossings should take around 50 minutes.

Gilimanuk to Denpasar / Canggu / Ubud
After disembarking the ferry, there’s not much to see at Gilimanuk harbour other than a few shops and local restaurants. If you’ve booked onward travel, keep an eye out for your driver or bus company. Alternatively, walk a few hundred metres away from the port (ignoring local taxi touts) and find somewhere quiet to order a Grab or Gojek taxi.
Typical onward destinations in Bali include Canggu, Ubud, Denpasar, etc, all of which are a three to four hour journey. Unfortunately, there are no trains on the island of Bali, so all public transport is on the roads. Traffic on the island is notoriously bad, especially around Canggu, Ubud and Denpasar. Don’t underestimate how long journeys can take and plan accordingly.
If you’re travelling by bus, you’ll be dropped off at Mengwi Bus Terminal, which is well-placed for onward travel to all of Bali’s main tourist destinations.
What to expect on board
Trains running from Central Java to Ketapang offer a variety of classes to choose from, although most tourists buy tickets in either Economy (sometimes Premium Economy) or Executive. For a long journey like this one, we’d recommend buying tickets in Executive class as it offers a more comfortable ride and extra legroom. As there are fewer rows compared to Economy, the journey feels much less crowded and more pleasant in Executive. Don’t be put off from buying Economy seats if they’re the only ones still available, compared to many other Southeast Asian trains, it’s still a comfortable and relaxing ride.


One of the most luxurious trains in the country, Sangkuriang, operates between Bandung and Ketapang, calling at Surabaya. Alongside Executive and Premium Economy, it also offers Compartment class, which is the most premium option on Indonesia’s railways, with an (almost) lie-flat bed and private compartment. Unfortunately, the train calls at Surabaya at an inconvenient time (around 1.30am, arriving Ketapang at 6.52am).
Both Economy and Executive carriages are fully air-conditioned and have power points, seat pockets, armrests and tray tables.
The ferry from Ketapang to Gilimanuk only takes around fifty minutes, although there can be delays if the weather is bad or it’s a particularly busy time of year. Taking as early a crossing as possible helps avoid most of these issues; when the wind is strong, it’s not uncommon for ferries to wait for several hours just outside the port until conditions improve. Onboard, there’s only a simple cabin with robust seats and a small kiosk selling 3-in-1 coffees, noodles and crisps. It’s more pleasant out on the narrow deck space, especially if you can stay upwind of the smokers (and this being Indonesia, there are a lot of smokers).
How much does it cost?
Most tourists choose either Economy or Executive class for this journey. Prices range from IDR55,000 to IDR300,000 for Economy and IDR300,000 to IDR500,000 for Executive.
Ferry tickets from Ketapang (Java) to Gilimanuk (Bali) are very cheap, only costing around IDR20,000 (US$1).
Bus tickets from Ketapang to Mengwi bus terminal (10km north of Denpasar) cost around IDR50,000 ($US2.70).
Taxis from the port to places like Canggu, Denpasar and Ubud cost from IDR650,000 upwards (US$38).
How to book tickets
Click here to book train tickets from Surabaya to Ketapang.
Click here to book train tickets from Malang to Ketapang.
Click here to book ferry tickets from Ketapang (Java) to Gilimanuk (Bali).
Click here to book bus or taxi transfers from Gilimanuk to Denpasar, Ubud, etc.
The easiest way to buy train tickets in Indonesia is online rather than going to the station. You do pay a very small commission but the ease and convenience makes it worthwhile.
12Go is the best website to use and accepts international credit cards. It’s also a good place to check timetables and prices.
After booking online you’ll receive a confirmation email with a QR code and booking number. You’ll need to exchange this for an orange boarding pass via one of the self-service machines at the station before travel. This can be done up to seven days in advance at any station in the country (it doesn’t need to be the one you’re departing from). You may also need to show your passport or ID at the boarding gate, but this isn’t usually enforced.
It’s also where we suggest you buy your ferry and onward bus/taxi tickets for Bali. You could buy these at the ports from the official ticket sellers, but there’s always a decent commission to pay, and it’s not unheard of for them to take advantage of tourists. For peace of mind, it’s easier to book online and then exchange your QR code for a boarding pass before you depart. Once people at the port realise you’ve already bought your ticket, they’re usually fairly helpful.
Useful reads before you go:
Top tips for Southeast Asia train travel
Reasons why you should travel by train around Southeast Asia
The BEST train journeys in Southeast Asia
10 essentials experienced travellers always take on trains in Southeast Asia
Book your train travel:
If you have found this website useful for planning your Southeast Asia train travel, you can show your support by buying me a coffee. Thanks so much!
