Few experiences in South Asia match the pleasure of travelling by train through Sri Lanka. For roughly the cost of a short tuk-tuk ride, you can spend several hours drifting past tea gardens, cloud-wrapped ridges, colonial-era viaducts, and rice paddies that glow an almost unreal shade of green. Rail travel here is both a practical mode of transport and a journey worth taking for its own sake.
What makes Sri Lanka's train journeys special?
Sri Lanka's railway network was largely built during the British colonial period to move tea and other produce from the highlands to Colombo's port. The hill-country Main Line, in particular, were engineered through genuinely difficult terrain, which means today's passengers inherit a route full of dramatic curves, tunnels, and open-sided carriages that frame the landscape like a slow-moving panorama.
The rolling stock varies from air-conditioned intercity expresses to older carriages where you can ride with the doors open and feel the mountain air directly. Both have their advocates. The older non-air-conditioned carriages let photographers and landscape enthusiasts hang near the doorways for unobstructed views, while the reserved air-conditioned coaches suit those who want a guaranteed seat on a busy departure.
Which is the most scenic train route in Sri Lanka?
The Colombo Fort to Badulla line is widely regarded as one of the most scenic rail journeys in Asia. The route climbs from sea level near Colombo through Kandy, continues past Ella, and terminates at Badulla in the Uva highlands. The stretch between Nanu Oya (the station for Nuwara Eliya) and Ella is the section most travellers single out: the train threads through dense tea country and descends through a series of tunnels carved into the hillside; just beyond Ella, on the way to Badulla, it crosses the Nine Arches Bridge.
Key stations along this route and what they connect to:
- Colombo Fort — the main terminus, well connected to the rest of the city
- Kandy — gateway to the Cultural Triangle and the Kandy city tour circuit
- Nanu Oya — the alighting point for Nuwara Eliya and the tea estates, including Bluefield Tea Gardens
- Haputale / Bandarawela — quieter hill towns popular with hikers heading to Horton Plains National Park
- Ella — one of Sri Lanka's most popular stops for independent travellers
- Badulla — the end of the line, a market town in the Uva province
Total journey time from Colombo to Badulla on an express service is around nine and a half to ten and a half hours, though delays are common and should be built into your itinerary.
Are there other scenic rail routes worth taking?
The hill-country line gets most of the attention, but Sri Lanka has several other routes that reward the curious traveller.
- Colombo to Galle and Matara (Southern Line) — the coastal stretch south of Colombo runs close enough to the Indian Ocean that waves occasionally wash near the tracks during rough weather. The section between Ambalangoda and Hikkaduwa is particularly striking at sunset.
- Colombo to Anuradhapura / Jaffna (Northern Line) — restored in stages after the civil conflict ended, this line now runs all the way to Jaffna. It passes through the dry zone, a landscape of scrubland and ancient tanks very different from the south and centre.
- Colombo to Trincomalee / Batticaloa (Eastern Line) — another post-conflict restoration, offering access to the east coast and passing near Polonnaruwa, the medieval capital whose ruins are among Sri Lanka's finest.
- Puttalam Line — a slower, less-touristed route running up the northwest coast through coconut groves, useful for travellers heading to Wilpattu National Park.
When is the best time to travel Sri Lanka's hill-country train?
The hill-country train can be taken year-round, but visibility matters. From roughly January to April, skies over the central highlands tend to be clearer and the tea gardens are at their most photogenic. The southwest monsoon (May to July) brings mist and rain to the hills, which creates atmospheric conditions but can obscure the longer views. The northeast monsoon (October to January) affects the east and north more than the hill country, though the eastern slopes around Ella and Badulla can still see rain in this season.
Early morning departures from Colombo typically arrive in the hill country during the clearest part of the day, making them preferable to afternoon services from a photography standpoint.
How do I book a seat on a Sri Lanka train?
Sri Lanka Railways operates the national network and tickets can be purchased at station booking offices. For the popular Colombo–Ella corridor, first-class and second-class reserved seats sell out weeks ahead during the high season (December to April and July to August). It is strongly advisable to book in advance rather than travelling on an unreserved basis, which can mean standing for several hours on busy services.
Tickets for foreigners are priced slightly higher than local fares but remain very affordable by international standards. The Sri Lanka Railways website and several authorised third-party booking platforms accept online reservations, though the system can be unreliable during peak demand — booking in person at the station a day or two ahead remains one of the more dependable methods.
What class of travel should I choose?
| Class | Seats | Air-Con | Best for |
|---|---|---|---|
| First Class (Observation Saloon) | Reserved, panoramic glass | Yes (some carriages) | Photography, comfort, guaranteed seat |
| Second Class Reserved | Reserved, cushioned | Rarely | Budget-conscious travellers who still want a seat |
| Third Class Unreserved | Unreserved, wooden benches | No | Short hops, last-minute travel, open-door experience |
What should I know before I board?
- Delays are normal. Most of the network is single track, shared by express, local and freight services. Factor extra time into your day.
- Food vendors board at stations. Short-eats, fruit, and tea are sold through the windows and in the aisles — no need to bring a full lunch.
- Luggage space is limited. Overhead racks exist but are narrow. Soft bags are far easier to manage than hard-sided cases.
- Take a window seat on either side — between Nanu Oya and Ella the line winds constantly, so the best valley views switch from one side of the carriage to the other.
- Mobile signal drops in many tunnels and remote highland sections — download offline maps before you travel.
How does train travel compare with other transport options in Sri Lanka?
Private cars and taxis with private drivers offer door-to-door flexibility and can stop at viewpoints along the way, which trains cannot. Buses reach many places trains do not, but can be cramped on mountain roads. The train's advantage is the journey itself: the tracks traverse terrain that roads bypass, the pace is slow enough to absorb the scenery, and the social atmosphere in the carriages — locals, backpackers, families — is part of the experience in a way that a private transfer is not.
For most Sri Lanka itineraries, a combination works well: take the train for the famous scenic segments (particularly the Kandy–Ella stretch), and use private transport for destinations that are not well served by the rail network, such as Sinharaja Forest Reserve or the national parks of the south.
Every railway station, by line
342 stations, each line listed in order from Colombo Fort outwards.
Batticaloa Line 14
- Batticaloa Railway Station
- Eravur Railway Station
- Galoya Junction Railway Station
- Hingurakgoda Railway Station
- Kalawewa Railway Station
- Kekirawa Railway Station
- Konwewa Railway Station
- Manampitiya Railway Station
- Moragollagama Railway Station
- Palugaswewa Railway Station
- Polonnaruwa Railway Station
- Punani Railway Station
- Valachchenei Railway Station
- Welikanda Railway Station
Coast Line 69
- Colombo Fort Railway Station
- Secretartat Halt Railway Station
- Kompannavediya Railway Station
- Kollupitiya Railway Station
- Bambalapitiya Railway Station
- Wellawatta Railway Station
- Dehiwala Railway Station
- Mount Lavinia Railway Station
- Ratmalana Railway Station
- Angulana Railway Station
- Lunawa Railway Station
- Moratuwa Railway Station
- Koralawella Railway Station
- Egoda Uyana Railway Station
- Panadura Railway Station
- Pinwatte Railway Station
- Wadduwa Railway Station
- Train Halt 01 Railway Station
- Kalutara North Railway Station
- Kalutara South Railway Station
- Katukurunda Railway Station
- Payagala North Railway Station
- Payagala South Railway Station
- Maggona Railway Station
- Beruwala Railway Station
- Hettimulla Railway Station
- Aluthgama Railway Station
- Bentota Railway Station
- Induruwa Railway Station
- Maha Induruwa Railway Station
- Kosgoda Railway Station
- Piyagama Railway Station
- Ahungalle Railway Station
- Patagamgoda Railway Station
- Balapitiya Railway Station
- Andadola Railway Station
- Kandegoda Railway Station
- Ambalangoda Railway Station
- Madampagama Railway Station
- Akurala Railway Station
- Kahawa Railway Station
- Telwatte Railway Station
- Seenigama Railway Station
- Hikkaduwa Railway Station
- Thiranagama Railway Station
- Kumarakanda Railway Station
- Dodanduwa Railway Station
- Rathgama Railway Station
- Boossa Railway Station
- Ginthota Railway Station
- Piyadigama Railway Station
- Richmond Hill Railway Station
- Galle Railway Station
- Katugoda Railway Station
- Unawatuna Railway Station
- Thalpe Railway Station
- Habaraduwa Railway Station
- Koggala Railway Station
- Kathaluwa Railway Station
- Ahangama Railway Station
- Midigama Railway Station
- Kumbalgama Railway Station
- Weligama Railway Station
- Polwathumodara Railway Station
- Mirissa Railway Station
- Kamburugamuwa Railway Station
- Walgama Railway Station
- Matara Railway Station
- Piladuwa Railway Station
KV Line 26
- Baseline Road Railway Station
- Cotta Road Railway Station
- Narahenpita Railway Station
- Nugegoda Railway Station
- Udhamulla Railway Station
- Nawinna Railway Station
- Maharagama Railway Station
- Pannipitiya Railway Station
- Kottawa Railway Station
- Homagama Hospital Railway Station
- Homagama Railway Station
- Panagoda Railway Station
- Godagama Railway Station
- Meegoda Railway Station
- Wataraka Railway Station
- Padukka Railway Station
- Angampitiya Railway Station
- Uggalla Railway Station
- Pinnawala Railway Station
- Gammana Railway Station
- Morakele Railway Station
- Waga Railway Station
- Kadugoda Railway Station
- Kosgama Railway Station
- Puwakpitiya Railway Station
- Avissawella Railway Station
Main Line 71
- Maradana Railway Station
- Dematagoda Railway Station
- Kelaniya Railway Station
- Wanawasala Railway Station
- Hunupitiya Railway Station
- Enderamulla Railway Station
- Horape Railway Station
- Ragama Railway Station
- Walpola Railway Station
- Batuwatte Railway Station
- Bulugahagoda Railway Station
- Ganemulla Railway Station
- Gampaha Railway Station
- Daraluwa Railway Station
- Bemmulla Railway Station
- Heendeniya Railway Station
- Veyangoda Railway Station
- Wandurawa Railway Station
- Keenawala Railway Station
- Pallewala Railway Station
- Ganegoda Railway Station
- Wijayarajadahana Railway Station
- Mirigama Railway Station
- Wilwatte Railway Station
- Botale Railway Station
- Ambeypussa Railway Station
- Yattalgoda Railway Station
- Buthgamuwa Railway Station
- Alawwa Railway Station
- Polgahawela Railway Station
- Panaleeya Railway Station
- Tismalpola Railway Station
- Yatagama Railway Station
- Rambukkana Railway Station
- Kadigamuwa railway station
- Gangoda Railway Station
- Ihalakotte Railway Station
- Balana Railway Station
- Kadugannawa Railway Station
- Pilimatalawa railway station
- Peradeniya Railway Station
- Koshinna Railway Station
- Gelioya railway station
- Gampola Railway Station
- Tembligala railway station
- Ulapane Railway Station
- Nawalapitiya Railway Station
- Inguruoya railway station
- Galaboda railway station
- Watawala Railway Station
- Ihalawatawala railway station
- Rosella Railway Station
- Hatton Railway Station
- Kotagala Railway Station
- Talawakele Railway Station
- Watagoda Railway Station
- Great Western Railway Station
- Radella Railway Station
- Perakumpura Railway Station
- Ambewela Railway Station
- Pattipola Railway Station
- Ohiya Railway Station
- Haputale Railway Station
- Diyatalawa Railway Station
- Bandarawela Railway Station
- Kinigama Railway Station
- Heel Oya Railway Station
- Ella Railway Station
- Demodara Railway Station
- Uduwara Railway Station
- Badulla Railway Station
Matale Line 10
Northern Line 42
- Girambe Railway Station
- Talawattegedara Railway Station
- Potuhera Railway Station
- Nailiya Railway Station
- Kurunegala Railway Station
- Muththettugala Railway Station
- Wellawa Railway Station
- Ganewatte Railway Station
- Nagollagama Railway Station
- Timbiriyagedara Railway Station
- Maho Railway Station
- Randenigama Railway Station
- Abanpola Railway Station
- Galgamuwa Railway Station
- Senarathgama Railway Station
- Thambuttegama Railway Station
- Talawa Railway Station
- Srawasthipura Railway Station
- Anuradhapura Town Railway Station
- Anuradhapura Railway Station
- Mihintale Junction Railway Station
- Saliyapura Railway Station
- Parasangahawewa Railway Station
- Medagama Railway Station
- Medawachchiya Railway Station
- Poonewa Railway Station
- Erattaperiyakulam Railway Station
- Vavuniya Railway Station
- Chavakachcheri Railway Station
- Chunnakam Railway Station
- Eliphant Pass Railway Station
- Jaffna Railway Station
- Kankesanthurai Railway Station
- Kilinochchi Railway Station
- Kodikamam Railway Station
- Kondavil Railway Station
- Mankulam Railway Station
- Navatkuli Railway Station
- Omanthai Railway Station
- Pallai Railway Station
- Paranthan Railway Station
- Puliyankulam Railway Station
Puttalam Line 40
- Peralanda Railway Station
- Kandana Railway Station
- Kapuwatte Railway Station
- Ja-ela Railway Station
- Tudella Railway Station
- Kudahakapola Railway Station
- Alawatupitiya Railway Station
- Seeduwa Railway Station
- Liyanagemulla Railway Station
- Katunayake Railway Station
- Kurana Railway Station
- Negombo Railway Station
- Kattuwa Railway Station
- Kochchikade Railway Station
- Waikkala Railway Station
- Bolawatte Railway Station
- Borelessa Railway Station
- Lunuwila Railway Station
- Tummodara Railway Station
- Nattandiya Railway Station
- Walahapitiya Railway Station
- Kuda Wawa Railway Station
- Nelumpokuna Railway Station
- Madampe Railway Station
- Kakkapalliya Railway Station
- Sawarana Railway Station
- Chilaw Railway Station
- Bangadeniya Railway Station
- Arachchikattuwa Railway Station
- Anawilundawa Railway Station
- Battaluoya Railway Station
- Pulachchikulam Railway Station
- Mundal Railway Station
- Mangalaeliya Railway Station
- Madurankuliya Railway Station
- Erukkalam Pendu Railway Station
- Palavi Railway Station
- Thilladiya Railway Station
- Puttalam Railway Station
- Nooranagar Railway Station
Talaimannar Line 6
Line not recorded 61
- Akbopura Railway Station
- Aselapura Railway Station
- Aukana Railway Station
- Bambaranda Railway Station
- Beliaththa Railway Station
- Dewapuram Railway Station
- Eluthumattuval Railway Station
- Free Trade Zone Railway Station
- Gallella Railway Station
- Habarana Railway Station
- Hali Ela Railway Station
- Hatamuna Railway Station
- Hataras Kotuwa Railway Station
- Hiriyala Railway Station
- Horiwiala Railway Station
- Idalgashinna Railway Station
- Ihalagama Railway Station
- Inuvil Railway Station
- Jayanthipura Railway Station
- Kadadasi Nagar Railway Station
- Kakanadura Railway Station
- Kalkudah Railway Station
- Kirulapana Railway Station
- Kital Ella Railway Station
- Kithal Elle Railway Station
- Kokuvil Railway Station
- Laksauyana Railway Station
- Magalegoda Railway Station
- Makumbura Railway Station
- Mallakam Railway Station
- Mavilmada Railway Station
- Mavittapuram Railway Station
- Minneriya Railway Station
- Mirusuvil Railway Station
- Mollipatana Railway Station
- Murikandy Railway Station
- Nanu Oya Railway Station
- Negama Railway Station
- Neriyakulam Railway Station
- Pangiriwatta Railway Station
- Parakumpura Railway Station
- Punkankulam Railway Station
- Ranamuggamuwa Railway Station
- Sankathanai Railway Station
- Sevanapitiya Railway Station
- Siyalangamuwa Railway Station
- Tellipallai Railway Station
- Thachanthoppu Railway Station
- Thalaimannar Railway Station
- Thampalakamam Railway Station
- Thandikulam Railway Station
- Thiruketheeswaram Railway Station
- Thoddaveli Railway Station
- Vandaramullai Railway Station
- Viralmurippuwa Railway Station
- Walakumbura Railway Station
- Weherahena Railway Station
- Wewurukannala Railway Station
- Yapahuwa Railway Station
- Yatawara Railway Station
- Yatirawana Railway Station