匈奴的祖先,是夏后氏的后裔,名叫淳维。唐尧、虞舜以前有山戎、猃允、薰粥等部族,居住在北方边境,随水草畜牧而迁徙。他们饲养的牲畜以马、牛、羊居多,奇特的牲畜有骆驼、驴、骡、駃騠、騊駼、驒奚。逐水草迁徙,没有城郭定居和农耕产业,但也各有分属的土地。没有文字书籍,以言语为约束。儿童能骑羊,拉弓射鸟鼠,稍大后就射狐兔,以肉食为食。男子能弯弓射箭的,都成为骑兵。他们的习俗,太平时期以畜牧、田猎禽兽为生业,紧急时就人人习练攻战来侵伐,这是他们的天性。长兵器是弓矢,短兵器是刀铤。有利就进攻,不利就撤退,不以逃跑为羞耻。只要有利可图,就不顾礼义。从君王以下都吃畜肉,穿皮革,披着毡裘。壮年人吃肥美的食物,老年人吃剩余的食物。重视壮健之人,轻视老弱之人。父亲死后,儿子可以娶后母为妻;兄弟死后,活着的兄弟可以娶他们的妻子为妻。他们的习俗有名而不避讳,没有表字。
夏朝国运衰败,公刘失去了稷官的职位,在西戎改变习俗,在豳地建立城邑。此后三百多年,戎狄攻打周太王亶父,亶父逃到岐山下,豳地的人全部跟随亶父在岐山下建立城邑,创立了周国。此后一百多年,周西伯姬昌讨伐畎夷。又过了十多年,周武王讨伐商纣并营建雒邑,又回到酆镐居住,把戎夷驱逐到泾水、洛水以北,让他们按时入贡,称为荒服。此后二百多年,周道衰败,周穆王讨伐畎戎,获得四只白狼、四只白鹿返回。从此以后,荒服的部族不再前来朝贡。于是周穆王制定《吕刑》的刑法。到周穆王的孙子周懿王时,王室就衰败了,戎狄交替入侵,暴虐中原。中原百姓深受其苦,诗人开始创作诗歌,痛恨戎狄并歌唱道:“没有家室没有家,都是猃允的缘故”;“难道不日日警戒,猃允的威胁实在紧急”。到周懿王的曾孙周宣王时,起兵任命将领征伐戎狄,诗人赞美他的大功,歌唱道:“讨伐猃允,直到太原”;“战车彭彭”,“在朔方筑城”。这时四方夷族都来归顺,被称为中兴之世。
到周幽王时,因宠爱妃子褒姒,与申侯结怨。申侯大怒,与畎戎一起攻打并杀死周幽王于丽山之下,于是夺取周的土地,掠夺财物后居住在泾水、渭水之间,侵暴中原。秦襄公救援周朝,周平王于是离开酆镐向东迁徙到雒邑。当时秦襄公讨伐戎狄到达岐地,开始被列为诸侯。六十五年后,山戎越过燕国攻打齐国,齐釐公与山戎在齐郊交战。四十四年后,山戎攻打燕国。燕国向齐国告急,齐桓公北伐山戎,山戎逃走。二十多年后,戎翟到达雒邑,攻打周襄王,周襄王出逃到郑国的汜邑。起初,周襄王想要讨伐郑国,因此娶翟女为后,与翟一起讨伐郑国。不久废黜翟后,翟后怨恨,而周襄王的继母惠后有儿子带,想要立他为王,于是惠后与翟后、子带作为内应,打开城门迎接戎翟,戎翟因此得以进入,打败并驱逐周襄王,立子带为王。于是戎翟有的居住在陆浑,向东到达卫国,侵扰掠夺尤其严重。周襄王在外居住四年后,才派使者向晋国告急。晋文公刚即位,想要建立霸业,于是起兵讨伐戎翟,诛杀子带,迎接周襄王返回雒邑。
当时,秦、晋是强国。晋文公驱逐戎翟,让他们居住在西河圜水、洛水之间,称为赤翟、白翟。秦穆公得到由余,西戎八个国家归顺秦国。因此陇山以西有绵诸、畎戎、狄獂等戎族,在岐山、梁山、泾水、漆水以北有义渠、大荔、乌氏、朐衍等戎族,晋北有林胡、楼烦等戎族,燕北有东胡、山戎等戎族。各戎族分散在溪谷之中,各有君长,往往聚集的戎族有一百多个,但没有能统一的。
从此以后一百多年,晋悼公派魏绛与戎翟讲和,戎翟向晋国朝贡。又过了一百多年,赵襄子越过句注山打败戎翟,兼并代地并逼近胡貉。后来与韩、魏一起消灭知伯,瓜分晋国土地并占有,赵国拥有代地、句注山以北地区,魏国拥有西河、上郡,与戎族接壤。此后,义渠戎族筑城郭自我防守,秦国逐渐蚕食他们的土地,到秦惠王时,终于攻克义渠二十五座城池。秦惠王讨伐魏国,魏国把西河及上郡全部割让给秦国。秦昭王时,义渠戎王与宣太后私通,生了两个儿子。宣太后设计在甘泉宫杀死义渠戎王,于是起兵讨伐并消灭义渠。从此秦国拥有陇西、北地、上郡,修筑长城来抵御胡人。赵武灵王也改变习俗,穿胡服,习骑射,向北打败林胡、楼烦,从代地沿着阴山下到高阙修筑要塞,设置云中、雁门、代郡。此后燕国有贤将秦开,在胡地做人质,胡人非常信任他。秦开返回后袭击并打败东胡,东胡退却一千多里。与荆轲一起刺杀秦王的秦舞阳,是秦开的孙子。燕国也修筑长城,从造阳到襄平,设置上谷、渔阳、右北平、辽西、辽东郡来抵御胡人。当时,身着冠带的战国七雄中,有三个国家与匈奴接壤。此后赵国将领李牧镇守边境时,匈奴不敢入侵赵国边境。后来秦国消灭六国,秦始皇派蒙恬率领数十万大军北击胡人,全部收复河南地,凭借黄河作为要塞,修筑四十四座县城靠近黄河,迁徙被贬谪的戍卒来充实这些县城。又开通直道,从九原到云阳,利用边境的山河险阻,挖沟填谷,对可修缮的地方加以修缮,修筑从临洮到辽东的万里长城。又渡过黄河占据阳山、北假中地区。
当时,东胡强盛而月氏兴旺。匈奴单于名叫头曼,头曼不能抵挡月氏,向北迁徙。十多年后蒙恬死去,诸侯背叛秦国,中原混乱,秦朝迁徙到边境的被贬谪戍卒都纷纷离去,于是匈奴得以喘息,再次逐渐渡过河南地,与中原以旧塞为界。
单于有太子,名叫冒顿。后来单于宠爱一位阏氏,生