為了抵禦外患,從洪武元年(1368年)開始,明代曆朝都非常重視對古長城的利用、維修和新邊牆的構築。明代各朝幾乎都修築過長城。明代修築長城大多是在前代古長城的基礎上進行選擇利用,修繕增補,連綴改建。在甘肅、寧夏的河西地區,主要修補利用了河西走廊、衛寧北山、賀蘭山一線的漢代長城;在寧夏河東、陝西北部的河套地區,主要修補利用了北魏、隋代所使用過的長城;在山西、河北、北京西北、東北一線,主要利用了北魏、北齊、北周、隋代所使用過的長城;在寧夏固原、甘肅隴西地區,主要修補利用了戰國時秦國使用過的長城。
明代在古長城的始基上,再對其補築、增築、連綴,構成了保衛明朝東北、西北邊防和京畿重地的長城防線。當然,明代也有自己新建的長城。經過接續不斷的修築,終於構築成了東起今遼寧鴨綠江,西到甘肅嘉峪關的萬裏長城。
明代的萬裏長城,分地守禦,分別由九邊諸鎮守禦,因此又稱九邊長城,即指遼東、薊州、宣府、大同、太原、延綏、寧夏、固原、甘肅諸鎮管轄的長城。
遼東鎮長城這道長城東自今遼寧省丹東市寬甸縣虎山南麓鴨綠江邊,斜穿遼寧境,西至河北省山海關北吾名口,長約2000裏。鎮治初在廣寧衛(今遼寧北鎮縣),後移治東寧衛(今遼寧遼陽市)。此即通常所說的東起鴨綠江邊,西至山海關的長城。
薊州鎮長城這道長城東自今河北省山海關北吾名口,西至北京延慶縣居庸關東北,長約1200裏。鎮治在三屯營(今天津薊縣三屯營鎮)。此即通常所說的東自山海關,西至居庸關的長城。
宣府鎮長城這道長城指東從今北京市延慶區居庸關東北,經赤城、崇禮、張家口、萬全、懷安而進入山西大同市天鎮縣東北鎮口台之外邊長城,長約1100裏。鎮治在宣府衛(今河北省宣化市)。此即通常所說的東自居庸關,西至大同平遠堡的長城。
大同鎮長城這道長城指東自今山西大同市天鎮縣東北鎮口台,經大同市的天鎮、陽高、新榮、破魯、左雲、右玉,西到山西河曲偏關東北內蒙古清水河縣鴨角山的山西外邊長城,長約670裏。鎮治在大同府(今山西大同市)。此即通常所說的東自宣府鎮西陽河堡寬溝,西至山西偏關鴨角山的長城。
太原鎮長城亦稱山西鎮長城。其北境長城東自薊州鎮之內長城,西至山西鎮老牛灣,即東從薊州鎮經河北易縣、淶源、阜平進入大同市的內長城起,西經平型關、雁門關、寧武關、老營堡、偏關、河曲舊縣城,抵達今山西河曲黃河東岸;其東境長城自寧武、雁門,又南入龍泉、固關至今山西和順縣的黃榆嶺。太原鎮長城全長近1600裏,鎮治初在偏頭關(今山西偏關縣),後移寧武所(今山西寧武縣)。
延綏鎮長城亦稱榆林鎮長城。這道長城東自山西鎮偏關縣黃河老牛灣,西至寧夏鎮花馬池。延綏鎮長城由大邊、二邊構成:其大邊長城東從今內蒙古清水縣的清水營,西至寧夏鹽池縣城;二邊長城東自今陝西府穀縣黃甫鄉黃甫川堡,西至陝西定邊縣與大邊長城相接。延綏鎮長城約1300裏,鎮治初在綏德州(今陝西綏德縣),後移治榆林衛(今陝西榆林縣)。
寧夏鎮長城東起寧夏河東花馬池,西至河外蘆溝堡,即東起今寧夏鹽池縣城北,西至今甘肅景泰縣蘆陽鎮。這道長城由今寧夏河東長城、賀蘭山長城、衛寧北山長城、墩台與甘肅景泰縣長城依次連接而成,長約1200裏。鎮治在寧夏衛(今寧夏銀川市)。