Use the quicklinks below to jump to the desired section regarding transport in and around Perhentian Islands.
Kota Bharu's Sultan Ismail Petra Airport in Pengkalan Chepa has direct flights from Kuala Lumpur, Penang, Johor Bahru and Singapore. This airport is about 15 minutes from Kota Bharu by taxi (so a bit over an hour from Kuala Besut) and is the closest airport to Kuala Besut.
Bus #639 runs between Kuala Besut and Kota Bharu, leaving Kota Bharu at 08:00, 09:30,10:30,13:00,14:00 and 16:00, costing 6 ringgit and taking around 90 minutes. Bear in mind that if you get the 16:00 bus you will miss the last official boat to the Perhentians and will need to overnight in Kuala Besut. While there are plenty of hotels in Kuala Besut, we think Kota Bharu is a preferable overnight spot.
Tour buses run onwards from Kuala Besut to Kuala Lumpur, Kuala Terengganu, Cameron Highlands, Penang and so on and can be arranged though your accommodation on the Perhentians or online. Making a reservation at least a day in advance is prudent as the buses do fill up and on some routes there is only one departure a day.
The gateway to both the Perhentian Islands is Kuala Besut, a typical small Malaysian port town just over the state border into Kuala Terrenganu. It is an entirely forgettable town with all the typical ruses you can find in port towns across Southeast Asia.
Every man and his sister will offer to sell you a return boat ticket to the Perhentians. It doesn't matter where you are going on either island, the fare is 70 ringgit return. You'll also be required to pay a 5 ringgit conservation charge before getting onto the ferry. Agencies will take your tickets and issue new ones -- we never made sense of why, but assume it is somehow commission based, but in the end it is irrelevant and you'll get herded onto some boat.
Generally you'll be told to wear a lifejacket and some of the boats are extremely overloaded -- we saw a boat that would have been uncomfortable with 20 passengers leave from Coral Bay with more than 30 on it, which struck us as extremely foolhardy.
There are four set departure times from both Kuala Besut and the Perhentians: 08:00, 10:00, 12:00 and 16:00. In practice there may be other boats going as soon as they can rustle up enough passengers. The trip takes 30-45 minutes depending on sea conditions. These are speedboats and the drivers slow down for little -- hang onto your hat. Boats from the islands are sometimes running quite late -- our 08:00 boat didn't leave till 09:00 so be wary of scheduling tight onwards transport connections.
When you board at Kuala Besut, tell the driver which beach you are going to and they'll either drop you at a pier, onto a pontoon or will wait for a smaller boat to come and fetch you to take you into your beach of choice. The fare is 70 ringgit return no matter which beach you are going to. You can buy a one-way ticket for 35 ringgit, but as there is no savings to be made in doing this, most opt for a return ticket.
While a taxi from Kota Bharu to Kuala Besut costs 40 ringgit, in the reverse direction the drivers demand 60 ringgit and 70 ringgit to the airport. When questioned about the discrepency, they said if you get a taxi from Kota Bharu to Kuala Besut the driver gets a 20 ringgit commission. Given our driver dropped us at the bus station and took off, we think this is garbage. The trip to Kota Bharu takes about an hour, and allow another 15 minutes if you are heading to the airport.
Other taxi fares include Sungai Kolok (for Thailand) 90 ringgit, Kuala Terengganu airport 90 ringgit (100 ringgit for the city centre), Merang 70 ringgit and Wakaf Bharu 70 ringgit.
If you need to go to Jertih (for the closest ATM) you should be able to get a taxi there and back for 30 ringgit.
Aside from walking when possible, the only other means of transportation on the Perhentian Islands is taxi boats. They're straightforward and while they theoretically require at least two passengers, in practice they'll often take solo passengers for the same price. While convenient, they are quite expensive and if you're zooming between beaches and islands a lot you will burn through your money.
Fares vary somewhat from beach to beach, depending on where you are going. A short hop, say D'Lagoon to Long Beach, Teluk Dalam to Bubbles or Tuna Bay to West beach may cost 10 to 15 ringgit, but longer trips, say fishing village to D'Lagoon or PIR to Teluk Dalam, will set you back 30-35 ringgit, while the longest, say Teluk Dalam to Coral Bay, will cost 50 ringgit. These fares are one way, so yes, a taxi boat from from Teluk Dalam to Coral Bay and back will cost 100 ringgit.
To save money walk the shorter legs -- most of the trails are quite clearly marked and make for an attractive walk anyway.