The distance between Lake Toba and Surabaya is around 2,068km (1,285 miles) and the quickest way to get there is to take a ferry, then drive and then fly which takes around 6h 10m.
We've found 3 different ways to get from Lake Toba to Surabaya by ferry, car, plane, train and bus. The recommended routes, which include information on duration, ticket price, and level of difficulty, can be found below.
👋 Also check out Surabaya → Lake Toba if you're planning a return trip.
Take a ferry to Ajibata then drive to Silangit (DTB) then fly from Silangit (DTB) to Juanda International (SUB).
Multiple operators
Drive to Bakauheni Port then take a ferry to Merak then drive to Surabaya.
Multiple operators
1 similiar route
We’ve grouped similar routes together, click the arrows to see the other options.
There are several options for getting from Lake Toba to Surabaya by ferry, car, plane, train and bus. The cheapest option is to take a ferry, then drive, then take the train and then take the bus which costs around IDR 1,467,840 ($100) and will take around 2 days 12h. If you need to get there more quickly, you can take a ferry, then drive and then fly and arrive in approximately 6h 10m, though it is a bit more costly at approximately IDR 1,737,445 ($115).
The distance between Lake Toba and Surabaya is around 2,068km (1,285 miles). In a direct line (as the crow flies), the distance is 1,886km (1,172 miles)
It takes around 6h 10m to get from Lake Toba and Surabaya by ferry, car and plane.
The quickest way to get from Lake Toba to Surabaya is to take a ferry, then drive and then fly which takes around 6h 10m and will set you back approx IDR 1,737,445 ($115).
The cheapest way to travel between Lake Toba and Surabaya is to take a ferry, then drive, then take the train and then take the bus which will typically cost around IDR 1,467,840 ($100) for a standard one-way ticket.
There is no train service that runs between Lake Toba and Surabaya. We recommend that you take a ferry to Ajibata then drive to Silangit (DTB) then fly from Silangit (DTB) to Juanda International (SUB). instead which will take 6h 10m.
Sorry, looks like there is no bus service that runs between Lake Toba and Surabaya. We recommend that you take a ferry to Ajibata then drive to Silangit (DTB) then fly from Silangit (DTB) to Juanda International (SUB). instead which will take 6h 10m.
It doesn't look like you can fly directly from Lake Toba to Surabaya. We recommend that you take a ferry to Ajibata then drive to Silangit (DTB) then fly from Silangit (DTB) to Juanda International (SUB). instead which will take 6h 10m.
The closest major airport to Surabaya is Juanda International Airport (SUB) (SUB) which is approximately 16km (10 miles) from Surabaya. Abdul Rachman Saleh Airport (MLG) (MLG) and Blimbingsari Airport (BWX) (BWX) are also nearby and might be a better alternative airport depending on where you are flying from.
No, its not really possible or feasible to drive from Lake Toba to Surabaya. We recommend that you take a ferry to Ajibata then drive to Silangit (DTB) then fly from Silangit (DTB) to Juanda International (SUB). instead which will take 6h 10m.
If you don't have a car, the easiest way to get from Lake Toba to Surabaya is to take a ferry, then drive and then fly which takes, on average, 6h 10m and will usually cost around IDR 1,737,445 ($115).
Transport option | Duration | Cost | Frequency | Distance |
---|---|---|---|---|
Ferry, Car and Plane | 6h 10m | IDR 1,737,445($115) | 4 times a day | 2,068km (1,285 miles) |
Car and Ferry + 1 similar | 1 day 11h | IDR 2,186,780($145) | hourly | 2,608km (1,621 miles) |
Ferry, Car, Train and Bus | 2 days 12h | IDR 1,467,840($100) | once daily | 2,852km (1,772 miles) |
Batik Air
Citilink Indonesia
PT. Sriwijaya Air
Putra Pelangi
ASDP Indonesia Ferry
Damri
Kereta API
The following major airports near Surabaya offer regular flights to various popular destinations within Indonesia and internationally.