Surabaya's Juanda International Airport (SUB) is the primary gateway for international and domestic flights. Major airlines operating flights to Surabaya include Garuda Indonesia, AirAsia, Singapore Airlines, and Lion Air. To reach the city center from the airport, you can opt for taxis, which are readily available, or consider using ride-hailing services such as Grab and Gojek.
Surabaya is well-connected by train services from various parts of Java Island. The main train stations in Surabaya are Surabaya Gubeng and Surabaya Pasar Turi. Trains run regularly from Jakarta, Bandung, and Yogyakarta among other cities. The train network is operated by PT Kereta Api Indonesia (KAI), and tickets can be booked online or at the station.
Long-distance bus services are available from major cities across Java. Surabaya has several bus terminals, with Bungurasih Bus Terminal (Purabaya) being the main one. Buses are an economical choice though travel times can be long due to traffic conditions.
You can drive to Surabaya if you're coming from other cities on Java Island. Surabaya is connected by a network of national highways and toll roads, which makes for a smooth drive. Car rentals are available, with the option of hiring a car with a driver being preferred by those unfamiliar with Indonesian driving conditions.
Surabaya is accessible by sea, with ferry connections from neighboring islands such as Madura. The port of Tanjung Perak in Surabaya is the main hub for both passengers and goods.