中法战争 · 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 隘",刘君达更认为当时中越军队并无连战皆捷的条件,岑毓英奏报有夸张——龙永行则力主大捷为实。这是本篇最大的一处口径分歧,三说并存,尚无定论。
  • 黑旗军的定性:反清起义余部、受越官职的客军、民族英雄武装——三层身份叠在一支队伍上,两岸三地与越南的纪念语境各不相同。
  • "不败而败":陆战场末段的胜与整个战争的结局之间的落差,属战争级争议,详见《中法战争·总览》;本篇仅列各役事实。
  • 越南视角缺位:战场在越南、越南人各方的参战与受害记录,本篇仅据中方与法方二手材料带一笔,专题待考。
  • 各役伤亡数字中法两套口径差距普遍偏大,本篇一律注明来源方。

资料与待考

已知主要资料:

  • 唐景崧《请缨日记》(围城亲历者日记,宣光第一手)
  • 刘永福《刘永福历史草》(黑旗军一方自述)
  • 《岑襄勤公奏稿》(岑毓英西线奏报,临洮战果之争的源头)
  • 《清史稿》岑毓英传、刘永福传相关卷
  • 法方:米乐北宁战报、北圻远征军战史(和木之战伤亡出处)
  • 越南方面:《大南实录》及阮朝档案(本篇未及查阅)

待考事项:山西之战法军兵力与两套伤亡数字的原始出处;北宁之战米乐报告伤亡细目与徐延旭奏报原文;黄桂兰、赵沃处分始末;宣光守军确切人数与围城起止日期;和木之战法军伤亡的法方原档;临洮之战确切日期与双方参战兵力;临洮战果三说(龙永行/黄铮/刘君达)各自的档案依据;"红呢军服"与"竹筒求援信"两则记载的原始出处;刘永福部内徙安置始末;多梅尼在法国的纪念情况;越南官军、义勇参战的可查史料线索;清廷"稳扎守御、衅不我开"谕旨原文;茹费理内阁东京军费议会拨款细目;岑毓英奏言粮运艰阻原文;唐景崧劝刘永福守山西的《请缨日记》原文;法国议会反对东京远征的记载。

本篇配图为生成图像,非史料照片;史实以正文与所注出处为准。