There are 9 ways to get from Johor Bahru to Surabaya by ferry, plane, bus, train, or subway
Select an option below to see step-by-step directions and to compare ticket prices and travel times in Rome2Rio's travel planner.
Ferry to Hang Nadim International Airport, fly to Juanda International Airport
best- Take the ferry from Berjaya Waterfront Ferry Terminal Johor Bahru to Batam Centreferry
- Fly from Hang Nadim International Airport (BTH) to Juanda International Airport (SUB)plane BTH - SUB
8h 16mRp 2,330,793–3,516,293Ferry, bus
cheapest- Take the ferry from HarbourFront to Batam Harbour Bay Ferry Terminalferry
- Take the ferry from Batu Ampar to Port of Tanjung Priokferry
- Take the bus from DAMRI Bus Station Jakarta to Surabaya Kotabus
2d 4hRp 1,174,804–2,136,142Bus to Singapore Changi Airport, fly to Juanda International Airport, train
- Take the bus from Woodlands Check Point to Expo Stnbus
- Fly from Singapore Changi Airport (SIN) to Juanda International Airport (SUB)plane SIN - SUB
- Take the train from Waru to Surabaya Gubengtrain
8h 1mRp 1,897,324–4,771,687Fly Senai International Airport to Juanda International Airport, train
- Fly from Senai International Airport (JHB) to Juanda International Airport (SUB)plane JHB - SUB
- Take the train from Waru to Surabaya Gubengtrain
7h 50mRp 1,550,308–8,126,158Fly Singapore Changi Airport to Abdul Rachman Saleh Airport, train
- Fly from Singapore Changi Airport (SIN) to Abdul Rachman Saleh Airport (MLG)plane SIN - MLG
- Take the train from Lawang to Gubengtrain
10h 3mRp 3,722,824–5,731,687Fly Singapore Changi Airport to Ahmad Yani, train
- Fly from Singapore Changi Airport (SIN) to Ahmad Yani (SRG)plane SIN - SRG
- Take the train from Semarang Tawang to Surabaya Pasar Turitrain
9h 7mRp 2,817,824–5,521,687Subway, ferry, bus, train
- Take the subway from Woodlands North to Bayshore MRT Stationsubway
- Take the ferry from Tanah Merah Ferry Terminal to Nongsa Puraferry
- Take the ferry from Batu Ampar to Port of Tanjung Priokferry
- Take the bus from Kelapa Gading to Dipati Ukurbus
- Take the train from Bandung to Surabaya Gubengtrain
2d 8hRp 1,464,132–1,922,239Ferry via Kebonkelapa
- Take the ferry from Berjaya Waterfront Ferry Terminal Johor Bahru to Batam Centreferry
- Take the ferry from Batu Ampar to Port of Tanjung Priokferry
- Take the ferry from Tanjung Priok to Surabayaferry
2d 21hRp 1,241,293–1,416,293Ferry
- Take the ferry from Tanah Merah to Sri Bintan Pura Ferry Terminalferry
- Take the ferry from Pelabuhan Sri Bayintan Kijang to Surabaya - Tanjung Perak Portferry Km Umsini
3d 7hRp 1,298,176–2,758,659
Hang Nadim International Airport (BTH) to Juanda International Airport (SUB) flights
Questions & Answers
The cheapest way to get from Johor Bahru to Surabaya is to ferry via Kebonkelapa which costs Rp1200000 - Rp1500000 and takes 2 days 21h.
The fastest way to get from Johor Bahru to Surabaya is to fly and train which takes 7h 50m and costs Rp1500000 - Rp8500000.
No, there is no direct ferry from Johor Bahru to Surabaya. However, there are services departing from Berjaya Waterfront Ferry Terminal Johor Bahru and arriving at Surabaya via Batu Ampar and Tanjung Priok. The journey, including transfers, takes approximately 2 days 21h.
The distance between Johor Bahru and Surabaya is 1442 km.
The best way to get from Johor Bahru to Surabaya without a car is to ferry and bus which takes 2 days 4h and costs Rp1100000 - Rp2200000.
It takes approximately 8h 16m to get from Johor Bahru to Surabaya, including transfers.
Surabaya is 1h behind Johor Bahru. It is currently 2:45 AM in Johor Bahru and 1:45 AM in Surabaya.
There are 974+ hotels available in Surabaya.
What companies run services between Johor Bahru, Malaysia and Surabaya, Indonesia?
You can take a ferry from Berjaya Waterfront Ferry Terminal Johor Bahru to Surabaya via Batam Centre, Batu Ampar, Port of Tanjung Priok, Tanjung Priok, and Surabaya in around 2d 21h.
- Website
- garuda-indonesia.com
Flights from Hang Nadim International Airport to Juanda International Airport
- Ave. Duration
- 2h 25m
- When
- Every day
- Estimated price
- Rp 1,900,000–2,500,000
Flights from Hang Nadim International Airport to Juanda International Airport via Soekarno–Hatta
- Ave. Duration
- 5h 10m
- When
- Every day
- Estimated price
- Rp 1,800,000–4,800,000
Flights from Singapore Changi Airport to Juanda International Airport
- Ave. Duration
- 2h 22m
- When
- Every day
- Estimated price
- Rp 1,500,000–5,500,000
Flights from Singapore Changi Airport to Juanda International Airport via Soekarno–Hatta
- Ave. Duration
- 5h 2m
- When
- Every day
- Estimated price
- Rp 1,800,000–4,500,000
Flights from Senai International Airport to Juanda International Airport via Kuala Lumpur
- Ave. Duration
- 4h 35m
- When
- Saturday and Sunday
- Estimated price
- Rp 2,000,000–6,000,000
Flights from Singapore Changi Airport to Abdul Rachman Saleh Airport via Soekarno–Hatta
- Ave. Duration
- 4h 25m
- When
- Every day
- Estimated price
- Rp 2,600,000–10,000,000
Flights from Singapore Changi Airport to Ahmad Yani via Soekarno–Hatta
- Ave. Duration
- 4h 26m
- When
- Every day
- Estimated price
- Rp 1,800,000–6,500,000
- Website
- singaporeair.com
Flights from Singapore Changi Airport to Juanda International Airport
- Ave. Duration
- 2h 23m
- When
- Every day
- Estimated price
- Rp 1,400,000–5,500,000
Flights from Singapore Changi Airport to Ahmad Yani
- Ave. Duration
- 2h 10m
- When
- Thursday, Saturday, Tuesday, and Wednesday
- Estimated price
- Rp 2,500,000–3,500,000
Flights from Singapore Changi Airport to Ahmad Yani via Soekarno–Hatta
- Ave. Duration
- 4h 36m
- When
- Every day
- Estimated price
- Rp 1,800,000–6,500,000
- Website
- batikair.com
Flights from Hang Nadim International Airport to Juanda International Airport via Soekarno–Hatta
- Ave. Duration
- 4h 20m
- When
- Every day
- Estimated price
- Rp 1,900,000–5,000,000
Flights from Singapore Changi Airport to Juanda International Airport via Soekarno–Hatta
- Ave. Duration
- 4h 46m
- When
- Every day
- Estimated price
- Rp 2,300,000–4,800,000
Flights from Singapore Changi Airport to Abdul Rachman Saleh Airport via Soekarno–Hatta
- Ave. Duration
- 4h 37m
- When
- Every day
- Estimated price
- Rp 2,600,000–10,000,000
Flights from Singapore Changi Airport to Ahmad Yani via Soekarno–Hatta
- Ave. Duration
- 3h 50m
- When
- Every day
- Estimated price
- Rp 2,900,000–5,000,000
- Website
- citilink.co.id
Flights from Hang Nadim International Airport to Juanda International Airport
- Ave. Duration
- 2h 25m
- When
- Every day
- Estimated price
- Rp 1,900,000–2,500,000
Flights from Hang Nadim International Airport to Juanda International Airport via Soekarno–Hatta
- Ave. Duration
- 4h 27m
- When
- Every day
- Estimated price
- Rp 1,900,000–2,500,000
Flights from Singapore Changi Airport to Juanda International Airport via Soekarno–Hatta
- Ave. Duration
- 4h 30m
- When
- Every day
- Estimated price
- Rp 2,600,000–4,000,000
- Website
- flyscoot.com
Flights from Singapore Changi Airport to Juanda International Airport
- Ave. Duration
- 2h 25m
- When
- Every day
- Estimated price
- Rp 1,400,000–2,800,000
Flights from Singapore Changi Airport to Ahmad Yani
- Ave. Duration
- 2h 10m
- When
- Thursday, Saturday, Tuesday, and Wednesday
- Estimated price
- Rp 2,500,000–3,500,000
- Website
- lionair.co.id
Flights from Hang Nadim International Airport to Juanda International Airport
- Ave. Duration
- 2h 15m
- When
- Every day
- Estimated price
- Rp 1,800,000–2,400,000
- Website
- airasia.com
Flights from Senai International Airport to Juanda International Airport
- Ave. Duration
- 2h 20m
- When
- Monday, Wednesday, Friday, Saturday, and Sunday
- Estimated price
- Rp 1,300,000–5,500,000
- Website
- malaysiaairlines.com
Flights from Senai International Airport to Juanda International Airport via Kuala Lumpur
- Ave. Duration
- 4h 35m
- When
- Saturday and Sunday
- Estimated price
- Rp 2,000,000–6,000,000
- Phone
- 021-121
- [email protected]
- Website
- kai.id
Train from Waru to Surabaya Gubeng
- Ave. Duration
- 21 min
- Frequency
- Every 4 hours
- Estimated price
- Rp 6,000–320,000
- Schedules at
- kai.id
- Book at
- en.tiket.com
- Economy
- Rp 6,000–320,000
- Business
- Rp 280,000–550,000
- Executive
- Rp 11,000–650,000
Train from Waru to Surabaya Gubeng
- Ave. Duration
- 21 min
- Frequency
- Every 4 hours
- Estimated price
- Rp 6,000–320,000
- Schedules at
- kai.id
- Book at
- en.tiket.com
- Economy
- Rp 6,000–320,000
- Business
- Rp 280,000–550,000
- Executive
- Rp 11,000–650,000
Train from Lawang to Gubeng
- Ave. Duration
- 1h 26m
- Frequency
- Once daily
- Estimated price
- Rp 45,000–320,000
- Schedules at
- kai.id
- Book at
- en.tiket.com
- Economy
- Rp 45,000–320,000
- Business
- Rp 300,000–550,000
- Executive
- Rp 80,000–650,000
Train from Semarang Tawang to Surabaya Pasar Turi
- Ave. Duration
- 2h 53m
- Frequency
- Every 3 hours
- Estimated price
- Rp 160,000–330,000
- Schedules at
- kai.id
- Book at
- en.tiket.com
- Economy
- Rp 160,000–330,000
- Business
- Rp 370,000–550,000
- Executive
- Rp 310,000–700,000
Train from Bandung to Surabaya Gubeng
- Ave. Duration
- 9h 40m
- Frequency
- Twice daily
- Estimated price
- Rp 320,000–430,000
- Schedules at
- kai.id
- Book at
- en.tiket.com
- Economy
- Rp 320,000–430,000
- Business
- Rp 490,000–550,000
- Executive
- Rp 700,000–1,100,000
- Phone
- 1800 336 8900
- Website
- smrt.com.sg
Subway from Woodlands North to Bayshore MRT Station
- Ave. Duration
- 1h 25m
- Frequency
- Every 15 minutes
- Estimated price
- Rp 35,000–45,000
- Website
- https://www.smrt.com.sg/
- Phone
- (021) 1500 825
- [email protected]
- Website
- damri.co.id
Bus from DAMRI Bus Station Jakarta to Surabaya Kota
- Ave. Duration
- 10h
- Frequency
- Once daily
- Estimated price
- Rp 210,000–800,000
- Book at
- https://12go.asia/en/operator/damri
- Phone
- +65 6295 9009
- [email protected]
- Website
- transtar.travel
Bus from Woodlands Check Point to Expo Stn
- Ave. Duration
- 45 min
- Frequency
- Every 4 hours
- Estimated price
- Rp 65,000–290,000
- Schedules at
- transtar.travel
- Phone
- 02179171717
- [email protected]
- Website
- cititrans.co.id
Bus from Kelapa Gading to Dipati Ukur
- Ave. Duration
- 3h
- Frequency
- Hourly
- Estimated price
- Rp 180,000
- Schedules at
- cititrans.co.id
- Book at
- traveloka.com
- Phone
- +607 221 8000
- Website
- berjayawaterfront.com
Ferry from Berjaya Waterfront Ferry Terminal Johor Bahru to Batam Centre
- Ave. Duration
- 2h
- Frequency
- Hourly
- Estimated price
- Rp 436,294
- Schedules at
- berjayawaterfront.com.my
Ferry from Berjaya Waterfront Ferry Terminal Johor Bahru to Batam Centre
- Ave. Duration
- 2h
- Frequency
- Hourly
- Estimated price
- Rp 436,294
- Schedules at
- berjayawaterfront.com.my
- [email protected]
- Website
- horizonfastferry.com.sg
Ferry from HarbourFront to Batam Harbour Bay Ferry Terminal
- Ave. Duration
- 50 min
- Frequency
- Hourly
- Estimated price
- Rp 600,000–900,000
- Schedules at
- horizonfastferry.com.sg
- Phone
- +65 6270 2228
- [email protected]
- Website
- batamfast.com
Ferry from HarbourFront to Batam Harbour Bay Ferry Terminal
- Ave. Duration
- 50 min
- Frequency
- Every 2 hours
- Estimated price
- Rp 450,000–700,000
- Schedules at
- batamfast.com
- Book at
- batamfast.com
Ferry from Tanah Merah Ferry Terminal to Nongsa Pura
- Ave. Duration
- 50 min
- Frequency
- Every 4 hours
- Estimated price
- Rp 400,000–600,000
- Schedules at
- batamfast.com
- Book at
- batamfast.com
- Phone
- +62 811-1621-162
- [email protected]
- Website
- facebook.com
Ferry from Batu Ampar to Port of Tanjung Priok
- Ave. Duration
- 36h 45m
- Frequency
- Once daily
- Estimated price
- Rp 390,000–470,000
- Schedules at
- pelni.co.id
- Economy Class
- Rp 390,000–470,000
Ferry from Batu Ampar to Port of Tanjung Priok
- Ave. Duration
- 36h 45m
- Frequency
- Once daily
- Estimated price
- Rp 390,000–470,000
- Schedules at
- pelni.co.id
- Economy Class
- Rp 390,000–470,000
Ferry from Batu Ampar to Port of Tanjung Priok
- Ave. Duration
- 36h 45m
- Frequency
- Once daily
- Estimated price
- Rp 390,000–470,000
- Schedules at
- pelni.co.id
- Economy Class
- Rp 390,000–470,000
Ferry from Tanjung Priok to Surabaya
- Ave. Duration
- 28h 34m
- Frequency
- Twice daily
- Estimated price
- Rp 300,000–370,000
- Book at
- pelni.co.id
- Economy Class
- Rp 300,000–370,000
Ferry from Pelabuhan Sri Bayintan Kijang to Surabaya - Tanjung Perak Port
- Ave. Duration
- 2d 23h
- Frequency
- Once daily
- Estimated price
- Rp 490,000–600,000
- Book at
- pelni.co.id
- Economy Class
- Rp 490,000–600,000
- Phone
- +65 6331 4123
- [email protected]
- Website
- sindoferry.com.sg
Ferry from Tanah Merah to Sri Bintan Pura Ferry Terminal
- Ave. Duration
- 1h 45m
- Frequency
- Twice daily
- Estimated price
- Rp 700,000–1,800,000
- Schedules at
- 12go.asia
- Phone
- +65 6278 9688
- [email protected]
- Website
- majesticfastferry.com.sg
Ferry from Tanah Merah to Sri Bintan Pura Ferry Terminal
- Ave. Duration
- 2h 10m
- Frequency
- Twice daily
- Estimated price
- Rp 750,000–2,000,000
- Schedules at
- majesticfastferry.com.sg
Want to know more about travelling around the world?
Rome2Rio's Travel Guide series provide vital information for the global traveller. Read our range of informative guides on popular transport routes and companies - including 4 stunningly beautiful Philippines islands you need to visit, Want to know more about Flixbus?, and How to get from Luton Airport into central London - to help you get the most out of your next trip.

























