端口转发
Lima 支持从客户机到主机的 localhost 端口自动转发。
端口转发类型
Lima 支持两种端口转发器:SSH 和 GRPC。
默认端口转发器如下表所示。
版本 | 默认 |
---|---|
v0.1.0 | SSH |
v1.0.0 | GRPC |
v1.0.1 | SSH |
v1.1.0-beta.0 | GRPC |
默认设置在 Lima v1.0 中曾经改为 GRPC,但由于稳定性原因在 v1.0.1 中回退到 SSH。 在 Lima v1.1 中默认设置再次改回 GRPC,因为稳定性问题已得到解决。
使用 SSH
基于 SSH 的端口转发是以前默认的传统模式。
要显式使用 SSH 转发,请使用以下命令
LIMA_SSH_PORT_FORWARDER=true limactl start
注意事项
- 不支持基于 UDP 的端口转发
- 在主机上生成子进程来运行 SSH 主服务器。
使用 GRPC
⚡ 要求 | Lima >= 1.0 |
---|
在此模型中,lima 使用现有的 GRPC 通信(主机 <-> 客户机)来隧道传输端口转发请求。 对于每个端口转发请求,会创建一个 GRPC 隧道并用于传输数据
要启用此功能,请将 LIMA_SSH_PORT_FORWARDER
设置为 false
:
LIMA_SSH_PORT_FORWARDER=false limactl start
优势
- 支持基于 TCP 和 UDP 的端口转发
- 与基于 SSH 的转发相比性能更快
- 端口转发无需额外的子进程
基准测试
用例 | GRPC | SSH |
---|---|---|
TCP | 3.80 Gbits/sec | 3.38 Gbits/sec |
TCP 反向 | 4.77 Gbits/sec | 3.08 Gbits/sec |
上述基准测试详情是使用以下命令获得的
Host -> limactl start vz
VZ Guest -> iperf3 -s
Host -> iperf3 -c 127.0.0.1 //TCP 基准测试
Host -> iperf3 -c 127.0.0.1 -R //TCP 反向基准测试