Gun dealers can be found in larger towns and cities, they are denoted by a Gun icon on the map. Villages do not have one. Each town has a single dealer, standing at a fixed spot in that town for the rest of the campaign.
They stock all types of pistol, ammo, attachments, grenades and explosives, but only 1 random rifle, 1 random sniper rifle, 1 random machine gun and 1 random launcher per dealer. You may need to try different gun dealers to find the specific one you are looking for.
Gun dealers will NOT sell guns used by the Occupying Faction. They will, however, sell ammo used in OF weapons.
Unlike ordinary shops, which only buy back the kind of goods they sell, a gun dealer will buy almost anything that has a price. Dealers pay a fraction of an item's value, and that fraction is a difficulty setting: where a server sets it to zero, the dealer does not buy at all and the sell tab does not appear.
Large deals at a dealer are noticed by the town. A single transaction over $1000 drops that town's stability for a while and raises town support for the resistance there.
As of v1.4, gun dealers restock weapons and ammo on their own. Restocking happens each morning at 7am, along with every other shop: weed and the other fixed-list goods are topped back up to their minimum, and the weapons and ammo a dealer rolled at the start of the campaign are topped back up towards what the town can hold. The random rifle, sniper rifle, machine gun and launcher are restocked rather than re-rolled, so a dealer keeps the same selection all campaign.
Before v1.4 only the weed restocked. Buying a dealer out of a weapon or a calibre meant it never came back until the game or server was restarted.