【Linux】VirtualBox ↔ Ubuntu+WinSCP 文件传输

一、整体原理

  1. SSH :安全加密远程登录协议,默认端口 22,实现 Windows 主机远程操控 Linux 虚拟机终端。
  2. SFTP/WinSCP :基于 SSH 协议的图形化文件传输工具,实现Windows 与 Linux 虚拟机双向自由文件拖拽互传
  3. 网络核心:虚拟机与 Windows 主机必须网络互通,本次全程解决了桥接模式路由环路问题,最终采用仅主机 (Host-Only) 网络实现最稳定互联。

二、前期 Linux 虚拟机端完整配置(必做全步骤)

步骤 1:安装并开启 SSH 服务端

复制代码
# 更新软件源
sudo apt update
# 安装OpenSSH服务端
sudo apt install openssh-server -y

# 设置SSH服务 永久开机自启 + 立即启动服务
sudo systemctl enable --now ssh

# 验证服务运行状态
sudo systemctl status ssh

成功判定 :终端显示 Active: active (running),代表 SSH 服务正常后台运行、22 端口正常监听。

步骤 2:Linux 防火墙放行 SSH 端口(避坑重点)

Ubuntu 默认防火墙会拦截外部 SSH 连接,执行命令放行 22 端口:

复制代码
# 放行SSH服务(22端口)
sudo ufw allow ssh
# 开启防火墙
sudo ufw enable
# 查看防火墙放行规则
sudo ufw status

成功判定 :输出列表存在 22/tcp ALLOW Anywhere

步骤 3:查询虚拟机本机 IP

复制代码
ip a

根据虚拟机网络模式,会对应不同网段 IP:

  • 旧 NAT 模式:10.0.2.15主机无法直连,天生连接超时
  • 桥接模式:192.168.12.196(无线网卡兼容性差,出现路由环路、TTL 传输过期,网络不通)
  • 最终仅主机模式:192.168.56.101完美稳定连通,无任何网络问题

三、网络模式踩坑全复盘(重点避坑笔记)

1. 三种网络模式对比 & 问题总结

网络模式 连通特性 本次遇到的问题 适用场景
NAT 模式 虚拟机单向访问 Windows / 外网 ,Windows 主机无法主动直连虚拟机 直接连接 IP 10.0.2.15 必然超时,无法 SSH 虚拟机单独上网,不做主机互联
桥接网卡 虚拟机接入电脑局域网,本该双向互通;宏碁笔记本 Intel AX201 无线网卡存在驱动兼容性 BUG 配置后出现路由环路ping返回TTL传输中过期,主机数据包无法抵达虚拟机,连接全部失败 虚拟机需要独立外网 + 局域网互联
仅主机 (Host-Only) 适配器 VirtualBox 专属本地互联网络,仅打通 Windows 主机 ↔ 虚拟机双向直连,无外网、无路由冲突、无防火墙拦截、零兼容性 BUG 无任何连通问题,一次配置永久稳定 本次最终方案:SSH 远程控制、WinSCP 文件传输专用

2. 本次问题根源总结

  1. 初始 NAT 网络:单向网络,主机无法主动访问虚拟机内网 IP。
  2. 桥接网络修改后:笔记本无线网卡驱动导致路由环路 ,ping 测试TTL传输过期,网络层完全不通,上层 SSH/SFTP 全部连接失败。
  3. 最终最优解:切换仅主机模式,彻底绕开所有网络兼容问题,天生稳定互联。

四、WinSCP 最终完整连接参数(永久可用)

打开 WinSCP 登录界面,严格填写参数:

界面选项 填写内容
文件协议 (F) SFTP
主机名 (H) (仅主机模式虚拟机 IP)
端口号 (R) 22(SSH 默认端口)
用户名 (U) wang(Ubuntu 系统登录用户名)
密码 (P) Ubuntu 系统用户登录密码(sudo 操作密码)

填写完成点击登录,即可成功连接。

登录成功后操作

界面分为左右双窗口:

  • 左侧:Windows 电脑本地文件
  • 右侧:Linux 虚拟机内部文件 直接鼠标拖拽,即可实现 Windows ↔ Linux 双向文件互传,操作同本地文件夹复制粘贴。

五、全套命令速查手册(直接复制备用)

1. Linux 虚拟机端全部命令

复制代码
# 安装SSH服务
sudo apt update
sudo apt install openssh-server -y

# SSH服务开机自启+立即启动
sudo systemctl enable --now ssh

# 查看SSH服务状态
sudo systemctl status ssh

# 防火墙放行SSH 22端口
sudo ufw allow ssh
sudo ufw enable
sudo ufw status

# 重启SSH服务(配置修改后必执行)
sudo systemctl restart ssh

# 查看虚拟机本机IP
ip a
  1. Windows 主机端连通测试 + SSH 登录命令

    1. 测试主机与虚拟机网络连通性

    ping 192.168.56.101

    2. 测试SSH 22端口连通性

    Test-NetConnection 192.168.56.101 -Port 22

    3. PowerShell直接SSH远程登录虚拟机

    ssh wang@192.168.56.101

六、最终极简流程速记(笔记摘要版)

  1. Linux 虚拟机安装 SSH 服务,设置开机自启,防火墙放行 22 端口。
  2. 虚拟机网络改为仅主机 (Host-Only) 适配器 ,开机查询新 IP 192.168.56.101
  3. WinSCP 填入 SFTP 完整参数,账号wang,直接登录。
  4. 左右窗口鼠标拖拽,完成跨系统文件双向传输。
相关推荐
MXsoft6182 小时前
信创时代的运维“铁三角”:一体化监控、自主底座与A预判
运维
aidream12392 小时前
Linux文件操作-文件打包和压缩(tar/gzip/bzip2/xz/zip)
linux·运维·服务器
迷茫运维路2 小时前
云枢运维管理系统
运维·golang·kubernetes·gin·casbin
念恒123062 小时前
进程--进程状态(上)
linux·c语言
捞的不谈~2 小时前
宇树机器狗通过笔记本共享上网操作指南(临时版)
linux·经验分享·tcp/ip·ubuntu
feng_you_ying_li2 小时前
linux之进程优先与切换调度
linux·运维·服务器
记得多喝水o2 小时前
分析下最近的IPv8提案
运维·服务器
光电笑映2 小时前
Linux C/C++ 开发工具(上):包管理器、Vim、gcc/g++ 与动静态库
linux·运维·服务器
张3232 小时前
Ansible变量与事实
运维·云原生·自动化