Rome2Rio

How to get fromJohor to Surabayaby plane, train, ferry, or bus

Find Transport to Surabaya

See all options

There are 9 ways to get from Johor to Surabaya by plane, train, ferry, or bus

Select an option below to see step-by-step directions and to compare ticket prices and travel times in Rome2Rio's travel planner.

  1. Fly Senai International Airport to Juanda International Airport, train

    best
    1. Fly from Senai International Airport (JHB) to Juanda International Airport (SUB)plane plane JHB - SUB
    2. Take the train from Waru to Surabaya Gubengtrain train
    7h 50m
    Rp 1,248,921–5,624,643
  2. Ferry, bus

    cheapest
    1. Take the ferry from HarbourFront to Batam Harbour Bay Ferry Terminalferry ferry
    2. Take the ferry from Batu Ampar to Port of Tanjung Priokferry ferry
    3. Take the bus from DAMRI Bus Station Jakarta to Surabaya Kotabus bus
    2d 4h
    Rp 1,090,186–2,020,922
  3. Bus to Singapore Changi Airport, fly to Juanda International Airport

    1. Take the bus from Johor Bahru CIQ to Expo Stnbus bus
    2. Fly from Singapore Changi Airport (SIN) to Juanda International Airport (SUB)plane plane SIN - SUB
    8h 31m
    Rp 1,899,862–4,599,903
  4. Ferry to Hang Nadim International Airport, fly to Juanda International Airport

    1. Take the ferry from Berjaya Waterfront Ferry Terminal Johor Bahru to Batam Centreferry ferry
    2. Fly from Hang Nadim International Airport (BTH) to Juanda International Airport (SUB)plane plane BTH - SUB
    9h 19m
    Rp 2,221,384–3,398,536
  5. Bus to Singapore Changi Airport, fly to Abdul Rachman Saleh Airport, train

    1. Take the bus from Johor Bahru CIQ to Expo Stnbus bus
    2. Fly from Singapore Changi Airport (SIN) to Abdul Rachman Saleh Airport (MLG)plane plane SIN - MLG
    3. Take the train from Lawang to Gubengtrain train
    10h 33m
    Rp 3,125,362–5,659,903
  6. Bus to Singapore Changi Airport, fly to Ahmad Yani, train

    1. Take the bus from Johor Bahru CIQ to Expo Stnbus bus
    2. Fly from Singapore Changi Airport (SIN) to Ahmad Yani (SRG)plane plane SIN - SRG
    3. Take the train from Semarang Tawang to Surabaya Pasar Turitrain train
    9h 37m
    Rp 2,220,362–4,449,903
  7. Ferry, bus, train

    1. Take the ferry from HarbourFront to Batam Harbour Bay Ferry Terminalferry ferry
    2. Take the ferry from Batu Ampar to Port of Tanjung Priokferry ferry
    3. Take the bus from Kelapa Gading to Dipati Ukurbus bus
    4. Take the train from Bandung to Surabaya Gubengtrain train
    2d 5h
    Rp 1,474,180–1,959,759
  8. Ferry via Kebonkelapa

    1. Take the ferry from Berjaya Waterfront Ferry Terminal Johor Bahru to Batam Centreferry ferry
    2. Take the ferry from Batu Ampar to Port of Tanjung Priokferry ferry
    3. Take the ferry from Tanjung Priok to Surabayaferry ferry
    2d 22h
    Rp 1,241,884–1,423,536
  9. Ferry

    1. Take the ferry from Tanah Merah to Sri Bintan Pura Ferry Terminalferry ferry
    2. Take the ferry from Pelabuhan Sri Bayintan Kijang to Surabaya - Tanjung Perak Portferry ferry Km Umsini
    3d 7h
    Rp 1,347,672–2,957,953

Senai International Airport (JHB) to Juanda International Airport (SUB) flights

Calendar15Weekly Planes
Duration4h 22mAverage Duration
TicketRp 1,364,300Cheapest Price
See schedules

Comparing Your Travel Options

What companies run services between Johor, Malaysia and Surabaya, Indonesia?

You can take a bus from JB Sentral to Surabaya via Flat Sri Stulang, Berjaya Waterfront Ferry Terminal Johor Bahru, Batam Centre, Batu Ampar, Port of Tanjung Priok, Tanjung Priok, and Surabaya in around 2d 22h.

Airlines
Train operators
Bus operators
Ferry operators

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 South Korea: Travelling from Seoul to Busan , Need to know: Jadrolinija, and The London Underground: Essential tips to navigate the Tube - to help you get the most out of your next trip.