His government is observing a ceasefire with the Maoist insurgents while holding peace talks to bring an end to a 47-year-old armed campaign has left tens of thousands of people dead according to official estimates.
"Leave your arms wherever you are now and you can come down to the city and visit your family," Duterte said in a speech to soldiers ahead of the long Christmas weekend.
"I guarantee you: No arrests, no oppression," he said, adding he was sure many of the guerrillas had not been with their families for years.
"No one wants to fight during the Christmas season."
The government has earlier announced Duterte was likely to grant amnesty to hundreds of detained New People's Army rebels.
He freed 18 rebel leaders earlier this year to kickstart talks being hosted by Norway, and both sides have said they expect to reach a final peace agreement by the middle of next year.
The communists' armed faction is believed to have fewer than 4,000 gunmen, down from a peak of 26,000 in the 1980s, when a bloodless revolt ended the 20-year dictatorship of late president Ferdinand Marcos.
But they remain active in rural areas, where they extort money from local businesses.
They have also in recent years carried out deadly attacks on police and military forces.
Duterte said Wednesday his Christmas offer did not extend to Islamic militants in the south who have pledged allegiance to the Islamic State group or been abducting tourists, businessmen and seamen for ransom.
"I don't want to see you and I don't want to deal with you," he added.