万里长城有外长城和内长城之分。外长城是汉武帝太初年间所修的长城,分布在今内蒙古西部、蒙古人民共和国南部。由东、西两段联接而成,东段称"光禄塞"或"塞外列城",西段称"居延塞"。
汉长城(又称外长城)汉长城是在西汉时的汉武帝时代(前140一89年)修筑的。汉武帝在位期间,曾派大将卫青、霍去病率领大军将匈奴逐至漠北。他在对匈奴的战争中发现,秦长城在对敌斗争中是个行之有效的防御工事,因而,除了对原有的长城加以利用和修缮之外,为达到"不叫胡马度阴山"的目的,又在阴山以北修筑了一道''外长城""外长城"尚在今长城以北千余华里的地方。从地理位置上讲,它东起辽宁鸭绿江,西至新疆天山,全长近2万华里币弋所筑的最长的长城。不过,不管秦长城还是明长城在用料上均是以土、石、木材和瓦件等为主。外长城一般都是就地取材则用沙子和石子。或凿石垒墙,或取土夯筑;而在沙漠杂以芦草和柳枝层层叠压而成,并在外长城各枢纽建立要塞,驻扎装备弩机和长戟的骑兵巡逻。汉武帝在此筑城以屯田、养马,作为防御和进攻匈奴的基地。
内长城

明前期,为了对抗北元和随后分裂的鞑靼和瓦剌,明军多番出击,同时也沿前线修筑长城。城身的重要地段都以夯土外包条石,置敌台、堡垒、关隘以作守备,同时,沿边建立长期世袭服军役的卫所制度,使他们世世代代守卫边疆。明太宗永乐十九年(1421年)迁都北京后,多位明帝为保护自身和维护边境安定的安全,又沿太行山在山西、河北一段加建内长城作为第二道防线。内长城全长1600多公里。自西向东自忻州市偏关县老营堡个角墩,沿山西境内朔州市、忻州市交界线,向东南转过朔州市平鲁区,再经忻州市神池县、朔州市朔城区、忻州市甯武县(有甯武关)、忻州市原平县、朔州市山阴县、忻州市代县(北有雁门关)、朔州市应县、忻州市繁峙县、大同市浑源县至大同市灵丘县(有平型关),直到河北保定市阜平县、涞源县、易县、涞水县、张家口市涿鹿县、入北京市门头沟区、又回到张家口市怀来县,再入北京延庆县八达岭、居庸关西南,在北京延庆县四海冶和外长城交汇。 内长城在大同市灵丘县牛帮口又分叉南下,沿河北、山西交界线,顺太行山向南,经娘子关、固关,在长治市黎城县东阳关结束。