Surabaya’s international airport, Juanda International Airport (SUB) is approximately 20 kilometres southeast of town, accessed via a toll road from central Surabaya. In heavy traffic the journey can take in excess of an hour.
Domestic flights operate from Terminal 1 and International flights from Terminal 2. Direct flights connect to destinations all over Indonesia including: Jakarta (1.5 hours); Bandung (1.5 hours); Yogyakarta (70 mins); Solo (1 hour); Semarang (1 hour); Banyuwangi (1 hour); Denpasar (1 hour); Lombok (1 hour); Makassar (1.5 hours); and Medan (3 hours).
International direct connections include: Singapore (2.25 hours); Kuala Lumpur (2.5 hours); Johor Bahru (2.5 hours); Penang (3 hours) and Hong Kong (5 hours).
Carriers serving Juanda International Airport include: Garuda; Lion Air; Citilink; AirAsia; Jetstar; Scoot; Singapore Airlines; Silk Air; Malaysia Airlines and Cathay Pacific
DAMRI buses connect to Purabaya Bus Terminal departing hourly from both terminals (25,000 rupiah). Taxis are available on a pre-paid voucher system based on kilometres. A journey to central Surabaya is approximately 100,000 rupiah.
Surabaya has two main train stations, Gubeng (SGU) in the city centre servicing destinations to the east, south and west via Java’s southern line and Pasar Turi (SBI) in the northwest of the city servicing Semarang and Jakarta via Java’s northern line.
Sample details include:
Banjar (for Pangandaran): 8–10.5 hours; 94,000–460,000 rupiah
Banyuwangi: 6–7 hours; 56,000–200,000 rupiah
Bandung: 12–13.5 hours; 185,000–460,000 rupiah
Jakarta: 11–14.5 hours; 104,000–495,000 rupiah
Kalibaru: 5–6 hours; 56,000–200,000 rupiah
Malang: 2–2.5 hours; 35,000–60,000 rupiah
Probolinggo: 2 hours; 29,000–275,000 rupiah
Semarang: 3.5–6.5 hours; 149,000–365,000 rupiah
Solo: 3.5–4.5 hours; 74,000–355,000 rupiah
Yogyakarta: 4.5–5.5 hours; 74,000–300,000 rupiah
See https://kai.id for schedule details (Indonesian only). Bookings can be made with foreign cards at Tiket.com or purchased at any train station, Alfamart or Indomaret.
Two commuter lines connect Surabaya’s Pasar Turi to Lamongan and Kota and Gubeng to Porong. The Kota-Gubeng-Porong line services Waru Station, a 500 metre walk to Purabaya Bus Terminal. Tickets for these services are available from the stations on the day of departure.
Surabaya’s intercity bus terminal, Purabaya is located 11 kilometres south of the city centre.
Terminal Joyoboya, 4 kilometres south of the city centre is the transit terminal with connections to Purabaya and Mojokerto. A commuter train from Kota and Gubeng stations services Waru Station, a 500 metre walk to Purabaya Bus Terminal.
Sample details include (prices and travel times are approximate):
Bali: 12 hours; 150,000–250,000 rupiah (11:30; 14:30; 15:00)
Bandung: 15–17 hours; 200,000 rupiah (13:30; 16:30)
Banyuwangi: 7–8 hours; 95,000 rupiah (every 30 mins)
Jakarta: 15–17 hours; 200,000–300,000 rupiah (reservation required 13:30; 16:30)
Malang: 2–3 hours; 25,000–30,000 rupiah (every 30 mins)
Probolinggo: 2–3 hours; 25,000–35,000 rupiah (every 30 mins)
Semarang: 9–10 hours; 57,000 rupiah (every 30 mins)
Solo: 7–8 hours; 57,000 rupiah (every 30 mins)
Yogyakarta: 7–8 hours; 57,000 rupiah (every 30 mins)
If you have plenty of time, PELNI passenger ships ply regular routes from Tanjung Perak Harbour to major ports thought Indonesia. See the Pelni website for schedule details.
Regular metered taxi services are plentiful in Surabaya. Blue Bird cabs are considered the most reliable. Online taxi / motorbike taxi services Go-jek and Grab both operate in Surabaya. You’ll have to download the app and register.