要将多个隧道端点连接到公共桥接接口,我必须通过 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