Southern Shores is a town in Dare County, North Carolina, United States. It is located on the Outer Banks and the population was 3,107 at the 2020 census.