第一阶段:先把路由器离线配置好
在不把上游网线接入 WAN 的情况下,先完成 R5408 的静态 WAN、LAN 与 DHCP:
- WAN 使用原服务器的已授权上游地址、原有网关和掩码;
- LAN 使用独立私网(本例
192.168.50.0/24); - DHCP 池避开服务器静态地址,防止新旧设备在上游同时争用同一个 IP。
随后在「虚拟服务器」中增加端口映射(清单见上一篇)。
第二阶段:Ubuntu 从固定上游 IP 迁移到私网
这台机器的网卡是 Intel X550,日常服务网卡为 eno2,系统使用 systemd-networkd,
有效配置由 Netplan 生成。一个有意思的小坑:普通用户一开始看不到 /etc/netplan/,
切换到有权限的账号后,才找到真正的源文件 /etc/netplan/50-cloud-init.yaml;运行时生成的
/run/systemd/network/10-netplan-eno2.network 并不适合直接修改。
迁移前确认了三件事:NetworkManager 为 inactive、systemd-networkd 为 active、
cloud-init status 为 disabled。先备份源配置,再更改地址和网关。Netplan 片段如下
(仅为最小示例):
network:
version: 2
renderer: networkd
ethernets:
eno2:
dhcp4: false
addresses:
- 192.168.50.10/24
routes:
- to: default
via: 192.168.50.1
nameservers:
addresses: [223.5.5.5, 8.8.4.4]
注意:DNS 只是该次实验采用的候选公共解析器,是否可用取决于上游策略。cloud-init 可能在其他机器上重生成网络配置,本例确认其已禁用,不应照抄这个前提。
输入 sudo netplan generate 检查语法,不要仅仅因语法正确就远程执行 netplan apply。
现场把服务器接至 R5408 LAN,用本地控制台运行 sudo netplan try:等待确认提示时按
Enter 接受;如果配置失败或未确认则自动回退。这比在唯一 SSH 会话中强制切换安全得多。

随后验证:ping -c 4 192.168.50.1 四包全收、丢包率 0%;ip -4 addr show eno2 显示
新私网地址。接上上游 WAN 后,服务器对旧网关的 Ping 也四包全收——基础三层链路建立。
第三阶段:原 SSH 地址还能用吗?
能,但验证方法要分清楚。Ubuntu 上 sshd 同时监听 0.0.0.0:22 和 IPv6 监听地址;
UFW 未启用,INPUT 默认 ACCEPT。Tailscale 还装有自己的 ts-input 链,其源地址限制并不
会直接拦截普通 192.168.50.0/24 来源。注意这只证明已检查的链路,没有证明所有
nftables/容器规则都不存在。
实际完成切换后,分别从上游网络与 NAT 侧发起 SSH,两个会话均成功进入同一台 Ubuntu, 服务器自身仍显示新私网地址。也就是说:既保留了上游沿用的旧 SSH 入口,又验证了内部经 原 WAN 地址访问时的 NAT 回环。
经过重写的终端摘要(只保留关键结论):
Ubuntu eno2: 192.168.50.10/24
Gateway test: 4 transmitted, 4 received, 0% loss
SSH server: listening on 0.0.0.0:22
Client #1: upstream network -> A:22 -> login successful
Client #2: inside NAT -> A:22 -> login successful
Outbound test: 6 transmitted, 6 received, 0% loss
这套流程值得记住的三条教训
- 把「服务器地址」与「服务入口地址」分开考虑。固定 IP 看似不能动,其实可以由 网关接管,再用 DNAT 保留已有服务入口,但这不等同于全协议透明桥接。
- 永远从服务可回退的方向迁移网络:备份 Netplan、离线配置路由器、先测内网、 再接 WAN、最后做外部和回环验证。远程科研服务器必须把本地控制台或维护窗口当成 必要条件。
- 能 Ping 通网关不等于所有业务可用;SSH 成功也不意味着 HTTPS、API、DNS、 Docker 与 Tailscale 都完成了端到端验收。本文的验收状态里,DNS/HTTPS/API 与无线 漫游策略仍标注「尚未逐项完整记录」。
下一篇:迁移后顺带发现的一个老问题——八芯全通的网线为什么只协商到百兆。
