停战协议签署前夜,边境城“雾港”遭到炮火袭击。军方认定是敌军渗透,押来负责通讯的俘虏沈砚;前线救援队的医生陆青禾却从他身上认出一枚旧铜扣——那是十年前她哥哥遇难时,唯一留下的遗物。她相信沈砚杀了哥哥,举枪逼问,他只说:“你记得的那场战斗,从来没有发生过。”
两人被迫同行,起因是雾港地下防空站突然断电,数百名伤员和居民困在火线之间。沈砚能破解敌军的加密频段,陆青禾熟悉被封锁的旧街道;彼此都不信任对方,却也清楚,单独行动只会让所有人送命。陆青禾替沈砚处理伤口,发现他肩上的弹孔与军方档案记载的“阵亡日期”对不上;沈砚则认出她随身携带的药瓶,瓶底刻着一串只有旧情报员才知道的编号。
为了躲避巡查,两人藏进救援队临时宿舍,成了同一间屋子的室友。白天,他们在前线争执谁该领路;夜里,炮声震得窗框发抖,陆青禾才知道沈砚会在爆炸后下意识数人头。那是他失去整支小队后留下的习惯。沈砚也渐渐发现,陆青禾从不肯救治一名军方联络官——那人曾签署她哥哥的死亡报告。共同逃亡让猜疑变成依赖,依赖又被两人刻意压住:他们都怕一旦相信对方,便会发现自己最想守护的人,恰好藏着最残酷的真相。

雾港居民不欢迎这对搭档。陆青禾被骂成“替敌人说话的叛徒”,沈砚则被要求交出武器,接受审判。更棘手的是,救援队里还有人暗中替军方传递坐标。每次他们刚找到安全通道,炮火就会精准落下。陆青禾终于从旧档案中发现,哥哥遇难当晚,沈砚确实出现在现场;但他当时的军籍属于另一方,身份登记却早在战前就被注销了。
两人决定潜入第七码头,寻找被封存的战地录音。录音里,陆青禾哥哥揭穿了军方高层与军火商勾结、故意制造边境冲突的证据。所谓敌军袭击,是一场被篡改坐标的屠杀;沈砚奉命护送证人撤离,却被迫背上叛变罪名。陆青禾的父亲当年也参与了那份伪造报告,随后离奇死于“事故”。她一直追查的血债,竟不只指向一个凶手。
证据尚未播放,码头便被封锁。那个始终替他们开门的联络官现身,手里握着陆青禾哥哥的旧枪。他承认自己下达了炮击命令,却说真正的指使者早已换了身份,藏在停战谈判代表团里。更意外的是,录音最后传出一个熟悉的声音,喊出了沈砚从未告诉任何人的本名。

陆青禾没有开枪。沈砚也没有把枪口转向她。两人合力接通全城广播,将录音送上前线频道;然而信号接通的瞬间,陆青禾听见哥哥在录音里说:“如果你听见这段话,别相信我已经死了。”炮火渐停,广播却突然中断。第七码头的铁门从里面锁上,而门后有人敲了三下——那是陆青禾兄妹约定的暗号。
评论