Alstead is a town in Cheshire County, New Hampshire, United States. As of the 2020 census, 1,864 people lived there.