Rome2Rio

How to get fromSurabaya to Johor Bahruby plane, bus, ferry, or train

Find Transport to Johor Bahru

See all options

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

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 to Senai International Airport

    best
    1. Fly from Juanda International Airport (SUB) to Senai International Airport (JHB)plane plane SUB - JHB
    3h 34m
    RM 390–1,750
  2. Bus, ferry

    cheapest
    1. Take the bus from Surabaya Kota to DAMRI Bus Station Jakartabus bus
    2. Take the ferry from Port of Tanjung Priok to Batu Amparferry ferry
    3. Take the ferry from Batam Harbour Bay Ferry Terminal to HarbourFrontferry ferry
    2d 4h
    RM 260–488
  3. Fly to Singapore Changi Airport

    1. Fly from Juanda International Airport (SUB) to Singapore Changi Airport (SIN)plane plane SUB - SIN
    4h 24m
    RM 466–992
  4. Fly to Hang Nadim International Airport, ferry

    1. Fly from Juanda International Airport (SUB) to Hang Nadim International Airport (BTH)plane plane SUB - BTH
    2. Take the ferry from Batam Centre to Berjaya Waterfront Ferry Terminal Johor Bahruferry ferry
    5h 35m
    RM 580–711
  5. Train, ferry

    1. Take the train from Surabaya Pasar Turi to Jatinegaratrain train
    2. Take the ferry from Port of Tanjung Priok to Tanjung Balai Karimunferry ferry
    3. Take the ferry from Tanjung Balai Karimun to Singapore Harbour Frontferry ferry
    2d 5h
    RM 332–558
  6. Ferry via Kebonkelapa

    1. Take the ferry from Surabaya to Tanjung Priokferry ferry
    2. Take the ferry from Port of Tanjung Priok to Batu Amparferry ferry
    3. Take the ferry from Batam Centre to Berjaya Waterfront Ferry Terminal Johor Bahruferry ferry
    2d 22h
    RM 282–329
  7. Ferry

    1. Take the ferry from Surabaya - Tanjung Perak Port to Pelabuhan Sri Bayintan Kijangferry ferry Km Umsini
    2. Take the ferry from Sri Bintan Pura Ferry Terminal to Tanah Merahferry ferry
    3d 7h
    RM 275–630

Surabaya to Johor Bahru by train, taxi, bus, ferry, foot, and subway

Calendar7Weekly Services
Duration2d 5hAverage Duration
TicketRM 332Cheapest Price
See schedules

Questions & Answers

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

Indonesia AirAsia and Malaysia Airlines fly from Juanda International Airport (SUB) to Senai International Airport (JHB) once daily. Alternatively, you can take a vehicle from Surabaya to Berjaya Waterfront Ferry Terminal Johor Bahru via Surabaya, Tanjung Priok, Port of Tanjung Priok, Batu Ampar, and Batam Centre 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 , How to get from Florence to Rome, and Getting to Rome from the airport - to help you get the most out of your next trip.