中法戰爭 · 1883.12 – 1885.3 · 戰役

戰役檔案 · 越北陸戰(山西·北寧·宣光·臨洮,1883–85)

中法兩國還沒宣戰,仗已經在別人的國土上打了將近一年半——滇桂軍與黑旗軍先在山西、北寧連敗,再在宣光圍一座城四個月打不下來,最後在臨洮扳回一捷,東西兩線的敗與勝拼出了這場戰爭的陸上全貌。

戰役信息

場景示意圖,AI 生成,非歷史照片
場景示意圖,AI 生成,非歷史照片
內容
時間1883.12 – 1885.3
地點越南北圻:山西、北寧(紅河三角洲西、北)·宣光、臨洮(上游丘陵河谷)
所屬中法戰爭 · 北圻陸戰場(大時局見《中法戰爭·總覽》)
中方滇軍(雲貴總督岑毓英系統)、桂軍(廣西巡撫徐延旭系統)、黑旗軍(劉永福);部分越南官軍、義勇配合作戰
法方北圻遠征軍(Tokyo Expeditionary Corps):孤拔、米樂先後任司令;宣光守將多梅尼
兩線格局東線:北寧—諒山—鎮南關方向,桂軍負責(廣西出鎮南關);西線:山西—興化—宣光—臨洮方向,滇軍與黑旗軍負責(雲南出保勝)
結果山西、北寧連敗(1883.12、1884.3);宣光圍而不克(1884.11–1885.3);臨洮報捷(1885.3)——隨後全線隨鎮南關—諒山戰事與停戰令轉向

參戰方

四役攻守不一,本表按陣營列,各役角色在"作戰經過"與下表末行分別註明——宣光一役中方是圍攻方、法軍是守方,不可倒置。

中方(滇桂軍·黑旗軍)法軍(北圻遠征軍)
兵力山西:黑旗軍 12 營加滇桂軍 5 營,約五千(兵力口徑諸說不一);北寧:桂軍約兩萬;宣光:圍城諸軍陸續增至萬餘(此數存疑);臨洮:滇軍與黑旗軍數萬之說均見,確數待考山西:約六千水陸並進(一說更多,此數存疑);北寧:約一萬二千分兩旅;宣光:守城約六百人,解圍縱隊約三千餘(此數存疑);臨洮:《清史稿》稱"法兵六千犯臨洮"(此說待考)
火器新式洋槍與舊式抬槍、刀矛混用,各營槍械口徑雜亂;黑旗軍慣近戰制式後膛槍、野戰炮,紅河艦隊炮船隨隊支援
工事戰法滇軍創"地營"(壕壘地堡)戰法;宣光用地道地雷爆破城垣艦炮與步炮協同;宣光守軍拆民房、仿挖地營反守
補給滇桂兩省越境輸運,道遠山多,糧運艱阻(岑毓英奏中屢言)紅河—清河(瀘江)水路船運,艦炮護航;宣光被圍期間水路被黑旗軍截斷
角色山西、北寧為守方;宣光為圍攻方;臨洮為迎戰方山西、北寧為攻方;宣光為守方;臨洮為進犯方

戰地環境

場景示意圖,AI 生成,非歷史照片
場景示意圖,AI 生成,非歷史照片

(1880 年代的大時局——法國吞併越南的步子、清廷的戰和搖擺、馬尾與宣戰——見《中法戰爭·總覽》。)

戰場在越南的土地上。 北圻(越人舊稱"東京")當時名義上還是阮朝的疆土,但 1883 年 8 月《順化條約》之後越南已淪為法國保護國。順化朝廷一紙令下,命北圻官軍停戰退兵;令下之後,有的越官照辦,有的辭官自募鄉勇接著打,有的率部併入了清軍與黑旗軍的陣線——仗在越南打,越南人自己卻不能以一個國家的名義參戰。北圻城鄉民眾夾在中間:黑旗軍與清軍靠沿途徵發與就地籌糧,法軍靠水路船運,兩邊都要從這片土地上過。各地天主教徒多站在法軍一側,北寧外圍扶朗之戰即有教民響應法軍的記載(中方史料口徑,出處待考)。

兩線的地不一樣。 東線紅河三角洲水網平坦,利法軍炮船機動;西線上遊丘陵河谷,山多路險,利守不利攻——中法兩軍各自的長處,在兩線掉了個個兒。

為什麼而打

走到這一步用了十年。1873 年安鄴在河內城外被黑旗軍擊斃,1883 年 5 月李維業又戰死於紙橋——法國朝野震動,增兵東京,同年 8 月炮艦逼到順化城下,一紙《順化條約》把越南變成法國的保護國。宗藩的體面至此只剩一個具體問題:北圻境內還駐著應邀入越的滇桂軍和受越南官職的黑旗軍,法軍要他們走,北京不答應。曾紀澤爭於巴黎,李鴻章談於天津,談了幾年談不攏;中樞主和主戰反覆搖擺,前線卻一兵未撤。談判桌上談不攏的,改用炮艦談。

為什麼是山西。這座紅河岸邊的省城扼著河內溯流而上的航道,往西北通興化、保勝,是入滇的水路大門;黑旗軍主力十二營駐在這裡,滇桂軍五營配守,越南統督黃佐炎也在城中。對法軍來說,不拔掉山西,紅河上游永遠戳著一支不肯走的軍隊;對清方來說,山西一丟,河內以北再無屏障。為什麼是 1883 年的冬天:雨季已過,河水尚可行船,正宜水陸並進,巴黎的增援也到了,茹費理需要一場速勝向議會交代。

兩邊的算盤都打錯了。法方以為對手不過一支僱傭軍加一群烏合之眾,孤拔率約六千人(一說更多,此數存疑)水陸兩路,幾天便可清場。清方則以為憑黑旗軍的近戰與城壘頂得住,也以為談判還在進行、法軍未必真打——12 月 11 日孤拔自河內出動時,兩國尚未宣戰,仗已經開打。

清廷給前線的命令本身就是擰著的:諭令滇桂軍出關分扎山西、北寧,穩紮守禦,又密諭不可釁自我開(諭旨原文待考)——既不許退,也不許先打。法國的決心落在賬上:茹費理內閣向議會爭來東京遠征軍費(撥款細目待考),孤拔有了水陸並進的兵和紅河艦隊,他要速決——趕在議會耐心耗盡之前了結北圻戰事。

12 月 14 日攻城開始,16 日守軍彈藥將竭,當夜棄城退興化。此後北寧再陷、桂軍崩盤;宣戰後,西線滇軍與黑旗軍掉頭東進圍宣光,法軍解圍後再西進,撞在臨洮的地營上——這條線一直打到停戰電諭抵達前線之前。

物質的邊界,中方比法方更早碰到:滇桂越境輸運,道遠山多,岑毓英奏中屢言糧運艱阻(奏稿原文待考);黑旗軍餉械一半靠越南供給、一半靠雲南接濟,最缺彈藥。異議也不是沒有:黑旗軍戰前有人動搖欲退,唐景崧以客卿身份力勸劉永福死守山西(出《請纓日記》,原文待考);巴黎議會里反對遠征的聲音也一直在,茹費理壓住它的辦法,就是山西這一場勝仗。

本可以不打嗎?撤兵原本是談過的選項,但撤與不撤之間隔著宗藩的體面與西南的藩籬,北京誰也拍不了這個板。後來板還是拍了——以北寧的敗報和一次中樞大換血的方式。

作戰經過

場景示意圖,AI 生成,非歷史照片
場景示意圖,AI 生成,非歷史照片
階段時間要點
①山西之戰1883.12.11–16孤拔率約六千水陸兩路自河內出動,14 日開始攻城;守軍黑旗軍為主力,滇桂軍配合,越南統督黃佐炎在城中。黑旗軍近戰屢挫法軍,有參戰法軍軍官稱普法戰爭中未受如此猛烈的射擊(僅見一家記載)。16 日法軍轟塌西門城樓突入,守軍彈藥將竭,當夜棄城退守興化
②北寧之戰1884.3.8–12米樂率約一萬二千人分兩旅(波里也、尼格里)水陸並進,避開正面自翼側迂迴;桂軍主帥徐延旭株守諒山不在前線,前線黃桂蘭、趙沃兩部不相統屬、指揮混亂,外圍數戰即潰,12 日北寧城陷,桂軍大批不戰自散
③宣光圍城1884.11–1885.3.3角色反轉的一役:法軍多梅尼(Dominé)率約六百人守宣光城,黑旗軍與滇軍為圍攻方。圍城諸軍先掃外圍據點達成合圍,劉永福部扼左育、以竹排木筏攔清河截法軍水路補給;圍城期間以地道掘至城下,多次地雷爆破轟塌城垣、登城肉搏,均被守軍以壕壘地營頂住。守軍求援信裝入竹筒玻璃瓶投江漂往河內(記載待考)。1885.3.2 法軍解圍縱隊(布里耶爾·德·利爾所部,約三千餘,此數存疑)戰於和木(Hòa Mốc)打通道路,3.3 入城解圍
④臨洮之戰1885.3.23–24(日期諸說不一)滇軍岑毓英部與黑旗軍於臨洮方向迎擊西進法軍,憑地營堅守、夾擊,法軍進攻不利後撤。中方稱"臨洮大捷",奏報陣斬法將數人、乘勝收復州縣若干——戰果口徑爭議極大,見"爭議與敏感點"。此役在停戰令已下、電諭未達前線之前(《清史稿》口徑)

戰損

場景示意圖,AI 生成,非歷史照片
場景示意圖,AI 生成,非歷史照片
  • 山西:法方公佈陣亡 83、傷 320(含軍官若干,法方口徑;另一說陣亡 85、傷 240,兩套法方數字並錄,原始出處待考);中方與黑旗軍傷亡無可靠統計(此數存疑)。
  • 北寧:據米樂報告法軍陣亡 26、傷數十(法方口徑,細目未詳);桂軍潰散損失無確數,徐延旭奏報與戰後追查數字懸殊(此數存疑)。
  • 宣光:守城法軍圍城中傷亡百餘(此數存疑);解圍縱隊在和木一戰陣亡 76、傷約 400,為北圻遠征軍單場最重傷亡(法方口徑,出處待考);圍攻方(黑旗軍、滇軍)歷次登城傷亡累計數千之說見於中方記載(此數存疑)。
  • 臨洮:中方奏報"陣斬法將五人、法軍大潰"(《清史稿》口徑);法方戰報損失有限(具體數未詳)——兩方口徑差距懸殊,兩說並存。
  • 越南平民:四役均在北圻城鄉之間,圍城數月、水陸截斷,民眾死傷流離無統計。

戰役影響

  • 北寧之敗震到北京:1884.4.8 慈禧借山西、北寧連敗之機罷黜以恭親王奕訢為首的軍機處全班,換禮親王世鐸一班上位,史稱"甲申易樞"——北圻的一場敗仗,順手完成了清廷中樞的一次大換血(此中權謀分量,史家估量不一)。
  • 敗軍之將的追責:徐延旭革職逮問;黃桂蘭畏罪自殺,趙沃逮問論罪(細目未詳)。
  • 戰局重心轉向東線與沿海:觀音橋衝突、馬尾、宣戰、基隆與澎湖,直至 1885.3 鎮南關—諒山之捷與臨洮之捷幾乎同時到來,隨後停戰議約——這些脈絡詳見《中法戰爭·總覽》。
  • 黑旗軍戰後處境:1885 年約成,劉永福率部入關內徙,黑旗軍作為北圻戰場一支獨立武裝的歷史就此收場(安置始末待考)。
  • 越南:戰後北圻徹底入法,勤王運動 1885 年繼起——中法戰爭的陸戰場,後來成了越南抗法運動的老戰場。

親歷細節

場景示意圖,AI 生成,非歷史照片
場景示意圖,AI 生成,非歷史照片
  • 唐景崧請纓:吏部主事唐景崧自請入越聯絡黑旗軍,"萬里請纓",留下《請纓日記》——一個文官在滇軍、桂軍、黑旗軍、越南官紳四方之間當聯絡人,宣光圍城時他就在城外營裡。
  • 山西的射擊:孤拔的炮隊被黑旗軍壓到三百碼內才以排炮遏止衝鋒;戰後法方輿論稱"山西掩蔽了色當"——把這座小城當成了普法戰爭之恥的遮羞布(法方報刊語,轉引,原始出處待考)。
  • 攻守互學:宣光城裡,法軍拆民房、仿滇軍挖戰壕地營死守;城外,滇軍以地道地雷攻城——攻堅與反攻堅的招法在一條城牆上互為師徒。
  • 江裡的求援信:守軍把告急信裝進竹筒和玻璃瓶投進清河,任其漂向河內——圍到這一步,通信只剩水一條路(記載待考)。
  • 紅呢軍服:臨洮之戰法軍涉水撤退,紅呢軍服吸水變沉,只得棄衣渡河,岸邊遺衣千餘套被繳為戰利品(僅見劉永福一家記載)。
  • 黃佐炎:越南統督,山西城破時"憂懼無人色"見於中方記載——越南官員的抗戰與阮朝朝廷的停戰令之間,個人進退兩難(記載出自中方筆記,出處待考)。

戰場空間

場景示意圖,AI 生成,非歷史照片
場景示意圖,AI 生成,非歷史照片
  • 東西兩線天然分開:東線紅河三角洲平原水網,炮船可直抵城下;西線上遊丘陵,紅河—清河河谷是唯一的機動走廊。
  • 宣光城依山傍水、石牆炮臺,城下是地道與爆破點的近距纏鬥;左育河段是截援戰場,竹排木筏封鎖水面。
  • 山西城:紅河岸邊的省城,西門城樓是突破口;城內外寺院、竹柵皆是工事("懸巨炮轟擊西門古剎")。
  • 北寧:城在三角洲北緣,外圍扶朗、湧球等據點構成野戰防線,潰敗即沿大道退向諒山。
  • 臨洮:河谷中的府城,地營壕壘連綴,側翼有河流限定法軍機動與撤退路線。

各方口徑

  • 中方:黑旗軍與劉永福是這段記憶的中心,"紙橋—山西—宣光—臨洮"連成抗法英雄譜系;臨洮與鎮南關並稱兩大捷。另一面是北寧之敗與甲申易樞——一場敗仗如何變成中樞政爭的引信,官書與筆記各說各的。
  • 法方:山西之戰被渲染為雪色當之恥;宣光防禦戰在法屬殖民敘事裡是一頁榮光,守將多梅尼成了殖民英雄(在法紀念情況待考);和木之戰的慘重傷亡則進入遠征軍戰史的哀悼名單。
  • 越南:順化朝廷已降、地方官民自戰——越南民族史敘事中這段多歸入抗法救國脈絡,而中越兩方各自的敘事裡,越南人的主體位置常常只是一個背景(越南方面史料本篇未及查閱)。

爭議與敏感點

  • 臨洮戰果之爭:中方舊說"收復十餘州縣",黃錚考訂僅"1 府 1 縣 4 隘",劉君達更認為當時中越軍隊並無連戰皆捷的條件,岑毓英奏報有誇張——龍永行則力主大捷為實。這是本篇最大的一處口徑分歧,三說並存,尚無定論。
  • 黑旗軍的定性:反清起義餘部、受越官職的客軍、民族英雄武裝——三層身份疊在一支隊伍上,兩岸三地與越南的紀念語境各不相同。
  • "不敗而敗":陸戰場末段的勝與整個戰爭的結局之間的落差,屬戰爭級爭議,詳見《中法戰爭·總覽》;本篇僅列各役事實。
  • 越南視角缺位:戰場在越南、越南人各方的參戰與受害記錄,本篇僅據中方與法方二手材料帶一筆,專題待考。
  • 各役傷亡數字中法兩套口徑差距普遍偏大,本篇一律註明來源方。

資料與待考

已知主要資料:

  • 唐景崧《請纓日記》(圍城親歷者日記,宣光第一手)
  • 劉永福《劉永福歷史草》(黑旗軍一方自述)
  • 《岑襄勤公奏稿》(岑毓英西線奏報,臨洮戰果之爭的源頭)
  • 《清史稿》岑毓英傳、劉永福傳相關卷
  • 法方:米樂北寧戰報、北圻遠征軍戰史(和木之戰傷亡出處)
  • 越南方面:《大南實錄》及阮朝檔案(本篇未及查閱)

待考事項:山西之戰法軍兵力與兩套傷亡數字的原始出處;北寧之戰米樂報告傷亡細目與徐延旭奏報原文;黃桂蘭、趙沃處分始末;宣光守軍確切人數與圍城起止日期;和木之戰法軍傷亡的法方原檔;臨洮之戰確切日期與雙方參戰兵力;臨洮戰果三說(龍永行/黃錚/劉君達)各自的檔案依據;"紅呢軍服"與"竹筒求援信"兩則記載的原始出處;劉永福部內徙安置始末;多梅尼在法國的紀念情況;越南官軍、義勇參戰的可查史料線索;清廷"穩紮守禦、釁不我開"諭旨原文;茹費理內閣東京軍費議會撥款細目;岑毓英奏言糧運艱阻原文;唐景崧勸劉永福守山西的《請纓日記》原文;法國議會反對東京遠征的記載。

本篇配圖為生成圖像,非史料照片;史實以正文與所注出處為準。