Elkin is a town in Surry and Wilkes counties in the U.S. state of North Carolina, along the Yadkin River. Elkin shares its name with the surrounding township of Elkin Township. The population was 4,109 at the 2000 census.
Elkin is located at 36°15′28″N 80°51′5″W / 36.25778°N 80.85139°W / 36.25778; -80.85139 (36.257709, -80.851296).
According to the United States Census Bureau, the town has a total area of 6.3 square miles (16.4 km²), of which, 6.3 square miles (16.2 km²) of it is land and 0.1 square miles (0.2 km²) of it (1.10%) is water.