When his year-old dog Luna fell off his boat, fisherman Nick Haworth held out hope, but as the days passed he lost faith that she would return to him.

So it came as a surprise when the U.S. navy found her on land more than a month later.

On Feb. 10, Haworth, 20, had been on his boat about three kilometres off the shore of San Clemente Island, which is 110 kilometres west of San Diego. He isn't sure how Luna vanished.

"One moment Luna was there and the next she was gone," Haworth said, according to the San Diego Union-Tribune.

He told the Naval Base Coronado, which includes San Clemente Island, that his German shepherd and husky mix dog would likely soon arrive on the island.

"He told us Luna was a very powerful swimmer and that he was 90 per cent sure she'd head for shore," said Sandy DeMunnik, the Coronado base's public affairs officer, to ABC News.

The navy searched the beach, but found nothing. Haworth stuck around the island and did a search of his own for two days, the Union-Tribune reported.

After about a week, Haworth wrote on Facebook a farewell message: "RIP Luna, you will be greatly missed."

Then on March 15, navy staff spotted a dog sitting on the side of the road, wagging her tail, reported ABC.

"They literally opened up the car door, whistled, and she jumped right in," Melissa Booker told the Union-Tribune. She's a navy wildlife biologist stationed on the island.

"Keep in mind, there are no domesticated animals on the island, so it was a stunning sight," DeMunnik said to ABC News.

It didn't take long for them to connect this dog with Luna, and then contact Haworth. They flew her to a base on the mainland Wednesday.

"She was flown to [Naval Air Station North Island] this afternoon where she was reunited with a family friend until her owner returns later this week from working out of state," the base wrote on its Facebook page.

According to The Associated Press, Luna had swum to the island and survived for five weeks by eating rodents and dead fish. She had blended into the wildlife of the island.

When found, she appeared strong, if underfed.

The navy gave Luna a dog tag that says: "For Luna, keep the faith."

A close friend of Haworth's, Connor Lamb, has been taking care of Luna until Haworth can pick her up.

"He's ecstatic," Lamb said to the Union-Tribune before the reunion.