Atlas survey

Getting between the bases: internal transport for a routed Malaysia trip (2026)

Fly the long and awkward hops, take the train/bus for the short scenic west-coast ones; every Borneo hop and the cross-peninsula jump to the Perhentians is a flight.

25 sources ~6 min read #220 malaysia · transport · travel · itinerary · ferries · domestic-flights

Decision. Surface the short west-coast hops, fly the long and awkward ones. There’s no train to Malacca, Cameron Highlands or Langkawi [1][9] — the KTM ETS only earns its keep on KL↔Butterworth (Penang) [5]. The cross-peninsula jump to the Perhentians and every Borneo hop (KK, Sandakan, Kuching) are flights, full stop [12][24]. Perhentian speedboats run only ~March–October; the NE monsoon shuts them ~Nov–Feb [17] — don’t lock dates in that window without a fallback.

EUR figures are advance-booked economy and convert at ≈ RM ÷ 5 (1 EUR ≈ RM 4.9, mid-2026). “Door-to-door” for flights includes ~2–3 h of check-in, transfers and airport runs on top of block time.


Leg 1 — Kuala Lumpur → Malacca (no train, ~2 h)

Mode Door-to-door ~EUR Comfort & scenery
Coach (TBS→Melaka) ~2 h 30 2–4 Frequent (~every 30 min), comfy express coaches; dull highway [1][2]
Private car / Grab ~2 h 30–40 Door-to-door, flexible; weekend (Fri–Sun) jams add time [1]
Self-drive ~2 h rental Easy motorway; you don’t need a car inside walkable Melaka

Verdict: surface. No flight, no train. The TBS coach is the default; a private car only pays off for a couple with luggage wanting the door-to-door.

Leg 2 — Malacca → Penang (the long west-coast haul)

Mode Door-to-door ~EUR Comfort & scenery
Coach (direct) ~6.5–8 h 9–15 ~22 services/day, reclining express seats, one rest stop; long [3]
Train (via Tampin) ~6.5 h + 35 km ~7–20 Tampin is 35 km from Melaka and only 1 ETS/day to Butterworth — awkward [4]

Verdict: surface (coach). A genuinely long leg with no good shortcut. If you’d rather rail it, the clean way is to skip Malacca’s awkward Tampin connection and ride the KL→Butterworth ETS (3 h 35–4 h 20, RM79–112 / €16–23, ~7/day) [5][6] — the ETS is the one rail line worth using on this trip.

Leg 3 — Penang → Cameron Highlands (winding mountain road)

Mode Door-to-door ~EUR Comfort & scenery
Tourist minivan ~2 h 45–4 h 9–25 Faster, picks up at hotels; twisty final climb, queasy-prone [8]
Coach ~4 h 30 9–15 Cheapest; ~2 h highway then the same winding ascent [7]
Private car ~2 h 45 40–60 Door-to-door, can stop for tea plantations / viewpoints [7]

Verdict: surface. No airport up here [9]. A minivan or private transfer is the sweet spot — last hour is genuinely winding, so take motion-sickness meds [7][8].

Leg 4 — Cameron Highlands → Langkawi (awkward backtrack north)

Cameron has no airport, and you’re heading back up the coast, so this is a two-stage hop: get down to a ferry port, then cross.

Mode Door-to-door ~EUR Comfort & scenery
Bus + Kuala Kedah ferry ~8–10 h 30 15–35 Long: descend to coast, then 1 h 30 ferry RM46 [9][10]
Transfer to Penang, then fly ~5–6 h 30–60 Van to Penang, 40-min hop to Langkawi (~€14+) — saves a half-day [11]
Kuala Kedah ferry (if near) 1 h 30 9 Hourly 07:00–19:00, the standard sea route into Kuah [10]

Verdict: mixed. Surface to the coast then the Kuala Kedah ferry is the classic budget route; if time matters, transfer to Penang and fly the last leg. Note the direct Penang–Langkawi ferry is suspended [11], so don’t plan around it. (If Langkawi feels like a detour given the next leg flies back over KL, it’s a candidate to drop.)

Leg 5 — Langkawi → Perhentian gateway (Kuala Besut) — fly it

No direct flight links Langkawi to Kelantan/Terengganu; you route via KL, then drive to the jetty [12].

Mode Door-to-door ~EUR Comfort & scenery
Fly LGK→KL→Kota Bharu + taxi to jetty ~6–8 h 60–120 Two short hops (KL→KBR ~1 h 05) + ~1 h taxi to Kuala Besut [12][14]
KBR airport → Kuala Besut (last mile) ~1 h 7–22 Taxi ~RM80–110 or bus ~1 h 15 (~€7) [13]
Surface across the peninsula 1.5–2 days Not realistic for a 2–3 week trip — multi-leg bus slog

Verdict: fly. Firefly/AirAsia/Batik/MAS all serve Kota Bharu (KBR) or Kuala Terengganu (TGG) from KL [12][14]; KBR is the closer airport to Kuala Besut.

Leg 6 — Kuala Besut jetty → Perhentians (speedboat) ⚠ monsoon

Mode Door-to-door ~EUR Comfort & scenery
Speedboat 40–45 min 16 + fee RM80 return; cash marine-park fee RM30 (non-MY); jetty 08:00–17:00 [15][16]

Verdict: only option — and seasonal. Boats and most island resorts run ~March–October; the NE monsoon closes them ~mid-October to February [17]. If your dates land near that window, build in a flex day or swap the Perhentians for an open-year alternative.

Leg 7 — Perhentians → Taman Negara (road vs the Tembeling river boat)

Boat back to Kuala Besut, then a long road transfer south toward Jerantut, the gateway town [19]. The final approach into Kuala Tahan is the interesting choice:

Final approach (from Jerantut) Door-to-door ~EUR Comfort & scenery
Road to Kuala Tahan ~1 h 15 (68 km) 14 (taxi) Fast, practical; taxi ~RM70 or local bus ~RM7 [18]
Tembeling river boat ~2.5–3 h 11 Scenic jungle-river arrival; one departure ~13:00, RM55 [18]

Verdict: pick by taste. Road for speed; the Tembeling river boat for a memorable, slow arrival into the rainforest — just mind its single early-afternoon departure [18]. Either way the Perhentians→Jerantut road portion is a long half-day.

Leg 8 — Peninsula → Borneo: (KL) → Kota Kinabalu — fly

From Taman Negara, backtrack via Jerantut to KL, then fly to Sabah. There is no surface link to Borneo.

Mode Door-to-door ~EUR Comfort & scenery
Fly KUL→BKI ~2 h 30 air / ~5 h total 32–90 4 carriers (AirAsia, Batik, Firefly, MAS); book ahead for the low fares [20][21]

Verdict: fly only. (Penang→KK also exists if your route lets you skip the KL backtrack — same carriers.)

Leg 9 — Kota Kinabalu → Sandakan (fly vs ~6 h road)

Mode Door-to-door ~EUR Comfort & scenery
Fly BKI→SDK 50–55 min air / ~2.5–3.5 h total 16–40 AirAsia/MAS/MASwings; by far the time-saver [22]
Express bus ~6–8 h 10–16 Long but cheap; ridge-and-jungle scenery, Mt Kinabalu views early [22][23]
Private car ~4–5 h (320 km) 60–90 Door-to-door; can stop at Kinabalu Park / Poring on the way [23]

Verdict: fly to save a day — but the road is a legitimate scenic choice if you want to break it at Kinabalu Park. The bus is only marginally cheaper than an advance-booked flight once you value the time [22].

Leg 10 — Kota Kinabalu → Kuching (Sarawak) — fly only

Mode Door-to-door ~EUR Comfort & scenery
Fly BKI→KCH ~1 h 20 air / ~4 h total 30–50 AirAsia ~29 flights/week, also MAS/Batik; quick and cheap [24][25]

Verdict: fly only. Sabah→Sarawak by land means transiting Brunei over multiple days — not viable. Treat Kuching as a discrete air hop and book it like any of the Borneo flights [24].


Fly-vs-surface, at a glance

Hop Call Why
KL → Malacca Surface 2 h coach; no air/rail option [1]
Malacca → Penang Surface 6.5–8 h coach; train via Tampin is awkward [3][4]
Penang → Cameron Highlands Surface No airport; winding minivan/private transfer [8]
Cameron → Langkawi Mixed Surface to coast + ferry, or transfer + short flight [9][11]
Langkawi → Kuala Besut Fly Via KL to KBR/TGG, then road [12]
Kuala Besut → Perhentians Boat ⚠ Only option; seasonal (Mar–Oct) [16][17]
Perhentians → Taman Negara Surface Long road; river boat for the arrival [18]
(KL) → Kota Kinabalu Fly No surface link to Borneo [20]
KK → Sandakan Fly 55 min vs 6–8 h road [22]
KK → Kuching Fly Land route crosses Brunei, days [24]

scout: all fares advance-economy and volatile; reconfirm at booking time.

Citations · 25 sources

Click the Citations tab to load…