Violence erupted when the crowd, some of them masked, tried to force their way into a police station in the town in the Loir-et-Cher region.
In the ensuing riot, a bakery was trashed, three cars torched and trees, traffic lights and road signs damaged.
Three hundred soldiers were brought in to restore order.
Nobody is believed to have been hurt during the incident, which appears to have no connection with rioting in the eastern city of Grenoble over the weekend, which began after police shot dead an armed robbery suspect there.
The confrontation lasted some four hours before the rioters left town, France’s L’Express newspaper reports.
At Saint-Aignan, the travellers were protesting at the death of a 22-year-old man shot by police, reportedly as he tried to run down two of their officers.Prosecutors say the man failed to stop his vehicle at a checkpoint and dragged a gendarme on the bonnet for 500 metres (yards). The gendarme escaped with light injuries.
Arriving at a second checkpoint, the driver allegedly then charged the two gendarmes on duty there, one of whom opened fire and killed him.
Both gendarmes were taken into custody after the incident but released without charge.
French TV channel TF1 News reports that the shooting occurred in the town of Thesee, near to Saint-Aignan.
“It was a settling of scores between travelling people and the gendarmerie,” Saint-Aignan’s mayor, Jean-Michel Billon, told AFP news agency after the riot.
He was quoted by L’Express as saying he was concerned the rioters were still close to the town and might return.