在太行山以東。渤海以西,燕山以南,黃河下游的北面,是一馬平川的河北平原。這裡奔流著許多河流:黃河故道從河北平原的西南流向東北;中部是源出太行山的河流,自西向東流;北部是發源於燕山的河流。自北向南流但是這些河流流程都短,水量少。不便於航運。不過。如能鑿渠將它們溝通、連綴起來,對水源加以調劑和集中,就能克服水量少的缺陷,大大提高航運效益。東漢末年,曹操出於政治軍事的需要,先後鑿成白溝、干虜、泉州、新河、利槽等五條運河,把河北諸水連綴了起來。
東漢建安五年(200年)。曹操在官渡之戰中打敗了袁紹,袁紹逃奔河北,一命嗚呼。袁紹之子袁尚盤踞邺城(今河北磁縣東南),負隅頑抗。建安九年(204年),曹操親自率領大軍渡過黃河北征袁尚。為了便於運送軍糧,曹操在河北首先建成了白溝運河。其主要工程是築堰逼淇水(今淇河)北流。淇水發源於太行山,向東南流,分兩道注人黃河。曹操在淇水上築有大小二堰:小堰稱石堰,用石材建成,用於堵塞小河,以便將全部淇水集中於正流;大堰叫仿堰。以大仿木為主、參用木、鐵、石等材料,故名。因為淇水水量不豐富,不能像靈渠在海洋河上那樣建分水工程,因此枋堰建於淇水正流匯人黃河處不遠,堵住淇水,使其全部北流。這樣,船舶在黃河和淇水之間來往都必須盤壩。(所謂盤壩就是將貨物從船上卸下,拉空船沿壩的斜坡過壩,再將貨物裝船繼續航行。)在仿堰北面又穿鑿渠道,把淇水引人另一自然河道白溝。白溝下游與黃河故道古清河相連.清河向北到今天津境與沱(滹沱河)匯合。白溝運河雖有盤壩之勞,但畢竟改善了黃河南北的水運。
在曹操的猛烈攻勢下。袁尚一敗塗地,倉惶投奔遼西烏桓。為了徹底剪除後患,建安十一年(206年),曹操北伐烏桓。為了開辟通向遼西的水路,曹操命令董昭組織力量開鑿了平虜、泉州、新河三條運河來運送軍糧。平虜渠位於今天津市靜海縣境內,南起沱水.北到泒水。後來大清河的人海河段大體上就是以泒水下游為前身的。泉州渠因位於泉州(治所在今武清縣西南)境內而得名。它溝通了泒水下游與鮑丘水(潮白河)。新河則連接了鮑丘水和濡水(今灤河)。
經過自溝、平虜渠、泉州渠、新河渠道,由黃河可以通灤河,形成黃河以北的南北向運河骨干。後三條渠道由北轉向東,和渤海海岸基本平行。這幾條運河都是為戰爭服務的,但除了白溝之外,似乎並沒有得到真正的利用,到北魏時就已經干涸無水了。
除了上述出於軍事需要開鑿的四渠以外,曹操還從政治需要出發開鑿了利嘈渠。曹操在消滅袁氏勢力之後。將政治中心由許都(今河南許昌市)北遷到邺城。為了發展邺城的水陸交通,建安十八年(213年) 曹操興建利槽渠。它引漳水為水源,經過邺城向東流,到今館陶縣西南與白溝銜接,這樣就大大加強了對幽燕中北部的控制以及與黃河以南地
區的聯系。漳水水量比較豐富,引人白溝後,使白溝的航道更為通暢。
在今天河北省中部和白溝直接間接相通的還有三國曹魏時開的魯口渠,溝通滹沱河和泒水,另外還有白馬渠溝通滹沱河和漳水。北魏時,還開鑿了阿難渠。溝通白溝和漳水,南自今館陶縣西,北至威縣境入漳水。