hyper-V 虚拟机通过 Xftp 传输文件,速度不到 100MB/s(固态硬盘),可能由以下几个因素影响:

1、 虚拟机网络适配器性能
确保你的 Hyper-V 虚拟机使用的是 “虚拟交换机 (vSwitch)”,而不是 NAT 或内部网络,否则可能会有额外的网络开销。(其实没啥影响),主要是第二点
2、 Xftp 使用的传输协议
Xftp 主要使用 SFTP 或 FTP,其中:
SFTP(基于 SSH) 由于加密开销较大,速度通常较慢。(默认就是这个)
改为FTP(无加密) 会更快
3、在 Xftp 中更改传输协议的方法如下:

方法 1:新建会话时更改协议
打开 Xftp,点击左上角 “文件” → 选择 “新建” → “会话”。
在 “新建会话” 窗口中:
选择 “协议” 旁边的下拉菜单。
更改为 FTP(不加密) 或 FTPS(加密 FTP)(比 SFTP 快)。
输入主机地址、用户名、密码等信息后,点击 “确定” 以保存会话。

4、提示连接不上虚拟机***...**
大概率时虚拟机没有安装ftp服务:
在 Ubuntu 上启动 FTP 服务,通常使用 vsftpd(非常安全的 FTP 服务器)。以下是安装和配置 FTP 服务的步骤:
4.1 安装 vsftpd 服务
在终端中执行以下命令来安装 vsftpd:

sudo apt install vsftpd
4.2启动 vsftpd 服务 
sudo systemctl start vsftpd
4.3 设置 vsftpd 开机自启
sudo systemctl enable vsftpd
4.4 配置 vsftpd
sudo nano /etc/vsftpd.conf
启用匿名访问(默认禁用匿名访问,如果需要的话可以开启):
anonymous_enable=YES
启用本地用户登录(允许本地用户通过 FTP 登录):
local_enable=YES
启用写权限(如果需要上传文件):
write_enable=YES

保存并退出编辑器,按 Ctrl+X,然后按 Y,最后按 Enter。

5、重启 vsftpd 服务

sudo systemctl restart vsftpd

6、防火墙,如果你的系统启用了防火墙(ufw),你需要允许 FTP

sudo ufw allow ftp
sudo ufw allow ftp-data
检查防火墙状态并确认规则:
sudo ufw status

7、测试 FTP 服务

ftp localhost

发现有时候好用,有时候又变成了20m/s,虚拟网卡在 Hyper-V NAT 下开启了 GRO/TSO 聚合,导致 Ubuntu → Windows 方向的数据包异常膨胀,Windows 接收端(尤其是 NAT 映射层)处理异常,退化到仅十几 MB/s。
关闭GRO/TSO 聚合、重启ftp协议, ,每次重启都失效,重新运行:

sudo ethtool -K eth0 gro off gso off tso off
sudo systemctl restart vsftpd

下面是设置开机启动:写 Systemd 服务

1、查看网卡名

ip -br link

2、创建服务文件:

sudo nano /etc/systemd/system/fix_netperf.service

复制以下内容:ens33改为自己的网卡名称

[Unit]
Description=Fix GRO/TSO for FTP performance
After=network.target

[Service]
ExecStart=/usr/sbin/ethtool -K ens33 gro off gso off tso off
ExecStartPost=/bin/systemctl restart vsftpd
Type=oneshot
RemainAfterExit=yes

[Install]
WantedBy=multi-user.target

CTRL+X y保存

3、加载启动

sudo systemctl daemon-reexec
sudo systemctl daemon-reload
sudo systemctl enable --now fix_netperf.service
Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐