我在客户端和服务器上都安装了 Ubuntu 22.04。我在客户端(客户端上可能不需要它)和服务器上都设置了。我还在客户端和服务器上设置了PermitTunnel yes
和(服务器中可能不需要它),并确保在应用配置后重新启动服务器。我在两端都设置了一个名为的 TAP 设备,在两端运行以下命令:sshd_config
Tunnel yes
TunnelDevice any:any
ssh_config
tap0
ip tuntap add dev tap0 mode tap
然后,root
在客户端计算机上的帐户上,我root
使用以下命令通过 SSH 进入服务器计算机的帐户:
ssh -w 0:0 root@<my server> -p <ssh port>
但是,我似乎无法使任何 TAP 适配器正常工作UP
(即 SSH 似乎没有在任何一端使用 TAP 适配器)。我在两端运行了以下命令,发现 TAP 适配器的状态仍然为DOWN
:
ip link show tap0
输出:
30: tap0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc fq_codel state DOWN mode DEFAULT group default qlen 1000
link/ether 6e:ff:d7:19:ee:b2 brd ff:ff:ff:ff:ff:ff
这意味着我无法 ping 通任何一端的任何设备(我尝试在两端设置静态 IP,但没有成功)。
我也尝试了服务器端的最新 Fedora,发现了相同的输出。
我不确定我在这里遗漏了什么,并希望得到一些帮助。
PS 该服务器是服务器 ISO VirtualBox VM,我使用 NAT 端口转发将客户机22
端口转发到某个主机端口,从而通过 SSH 进入该服务器。
答案1
您需要明确设置Tunnel
参数,而ethernet
不仅仅是yes
获取第 2 层隧道。
来自ssh_config
手册页。
隧道
请求客户端和
服务器之间的 tun(4) 设备转发。参数必须是yes
,point-to-point
(第 3 层)、
ethernet
(第 2 层) 或no
(默认)。指定 yes 请求默认隧道模式,即点对点