远程连接是迁移手段而非目标,核心是安全迁移服务、数据和配置并保障稳定连接;需先验证新服务器ssh/rdp可用,再按镜像级、配置+数据分离或容器化路径迁移,最后完成dns切换与连通性测试。

远程连接本身不是迁移目标,而是迁移过程中的访问手段;真正要做的是把服务器上的服务、数据和配置安全迁移到新机器,并确保迁移后仍能稳定远程连接。关键不在“连”,而在“移得稳、切得平、连得上”。
远程连接可用的前提是网络与系统基础就绪
迁移前先确认新服务器已具备远程接入能力:
针对Linux系统,phpStudy团队推出全网首家linux docker容器面板,只要一个命令,快速安装面板,在面板里可以自行选择软件版本,可以方便的进行安全配置,就算没有Linux基础也可以快速搭建和管理PHP服务器环境!
- SSH(Linux)或 RDP(Windows)服务已启用且开机自启
- 防火墙放行对应端口(22 或 3389)
- 公网IP或弹性公网IP已绑定,安全组/ACL规则允许访问
- 若使用密钥登录,公钥已正确写入
~/.ssh/authorized_keys(Linux)或配置进 Windows 的远程设置
没连上,后续所有操作都卡住——这步必须在迁移开始前验证。
数据与服务迁移的三种主流路径
1. 镜像级整体迁移(适合环境一致、停机窗口可控)
- 对源服务器制作完整系统镜像(如 Linux 用
dd+ 压缩,或云平台自定义镜像) - 在目标服务器上还原镜像,或直接用该镜像创建新实例
- 优势:配置、用户、权限、服务状态全部保留,几乎零适配
- 注意:硬件差异大时(如物理机→云主机),需检查驱动、网卡名(ens33→eth0)、grub引导项;Windows 还需处理 HAL 和激活问题
2. 配置+数据分离迁移(推荐,灵活性高、风险分散)
-
配置迁移:复制
/etc/下关键目录(nginx、mysql、ssh、firewalld 等),注意路径和权限(如cp -a /etc/nginx /target/etc/) -
数据迁移:
- 文件类:用
rsync -avz --delete增量同步,支持断点续传(例:rsync -avz --delete /var/www/ user@new:/var/www/) - 数据库:导出再导入(MySQL:
mysqldump -A > full.sql→mysql ;PostgreSQL:<code>pg_dumpall > backup.sql)
- 文件类:用
-
服务启停逻辑同步:检查
systemctl list-unit-files | grep enabled,在新机上批量启用对应服务
3. 容器化迁移(适用于 Docker/K8s 环境)
- 导出所有镜像:
docker save $(docker images -q) -o all.tar - 复制镜像包到新服务器并加载:
docker load -i all.tar - 导出容器运行时配置(可选):用
docker inspect生成 JSON,或用docker-compose config输出标准编排文件 - 重建容器:
docker-compose up -d,确保 volume 挂载路径、网络模式、环境变量一致
切换远程连接的关键动作
- DNS 或负载均衡切换:若对外提供服务,将域名 CNAME 或 A 记录指向新服务器 IP;云环境可直接更换 SLB 后端
-
SSH 主机密钥更新提醒:客户端首次连接新服务器会提示“WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED”,需清理本地
~/.ssh/known_hosts对应条目,否则连接被拒 -
测试连通链路:
-
ssh -p 22 user@new_ip(基础连接) -
curl -I http://new_ip(Web 服务) -
telnet new_ip 3306(数据库端口)
-
- 旧服务器保留观察期:不立即关机或释放资源,留 24–48 小时用于回滚或排查问题
不复杂但容易忽略










