由于某种原因“sudo ssh -w any -o Tunnel=ethernet root@remote”创建 tun 设备而不是 tap 设备

由于某种原因“sudo ssh -w any -o Tunnel=ethernet root@remote”创建 tun 设备而不是 tap 设备

要将多个隧道端点连接到公共桥接接口,我必须通过 ssh 创建第 2 层隧道。服务器是Ubuntu 10.04,客户端是Ubuntu 14.04。我已启用

PermitTunnel yes
PermitRootLogin yes

在服务器 /etc/sshd_config.conf 中当我连接时,sudo ssh -w any:any -o "Tunnel=ethernet" root@remote我得到了一个 tun 设备,而不是预期的 Tap 设备。如果我在服务器上将“ PermitTunnel yes”更改为“ ”,则会收到“通道 0:打开失败:管理禁止:打开失败”错误消息,并且根本没有隧道设备。PermitTunnel ethernet

我很茫然,因为我确信这在过去的某个时候可以工作(使用不同的机器,可能是 Linux 版本)。

答案1

我也有同样的问题。据我测试,与服务器无关,与客户端有关。要么是 ssh 构建和配置,要么是由于本地网络配置。

我已经能够在我的笔记本电脑和所有设备之间创建一个 Tap 接口,但是当我尝试在设备之间建立隧道时,只创建了 tun 接口。

[编辑] 解决方法是将“-o”放在“-w”之前,如下所示:

ssh -o Tunnel=ethernet -w any:any root@remote

代替 :

ssh -w any:any -o Tunnel=ethernet root@remote

我自己尝试了一下,确实有效,源码如下:https://bugs.launchpad.net/ubuntu/+source/openssh/+bug/1316017

相关内容