ServerA
我正在尝试在 VirtualBox 中运行的本地 Linux Mint 18.3 VM (" ") 和ServerB
在另一个位置运行的远程 Ubuntu 18.04 服务器 (" ")之间创建 GRE 隧道。中间有防火墙,只允许 22 端口从ServerA
到ServerB
。另外,ServerA
在 VirtualBox 中使用 NAT 接口;因此,本地 IP 属于ServerA
,10.0.2.15
但它被 NAT 到主机的 IP,为简单起见,为1.1.1.1/24
。我能够从 sshServerA
到,所以我想我也许可以使用的选项ServerB
设置 GRE 隧道,但我不完全理解如何设置它。这是我尝试过的许多事情之一。为简单起见,的 IP为。ssh
-w
ServerB
2.2.2.2/24
ServerA> sudo ip tunnel add tun0 mode gre local 1.1.1.1 remote 2.2.2.2 ttl 255
ServerA> sudo ip addr add 10.10.10.1/30 dev tun0
ServerA> sudo ip link set tun0 up
ServerB> sudo ip tunnel add tun0 mode gre local 2.2.2.2 remote 1.1.1.1 ttl 255
ServerB> sudo ip addr add 10.10.10.2/30 dev tun0
ServerB> sudo ip link set tun0 up
ServerA> ssh -Nf -w 0:0 [email protected]
我希望这-w 0:0
能够将本地虚拟机的接口与远程服务器的接口ssh
联系起来。但是,当我尝试这样做时,我得到以下结果:tun0
tun0
# ssh -w 0:0 [email protected]
[email protected]'s password:
Tunnel device open failed.
Could not request tunnel forwarding.
我究竟做错了什么?
编辑-潜在的解决方案
我发现了另一个线程(但丢失了链接),其中采取了略有不同的方法。如果成功的话,我可能会稍后将其作为答案发布,但到目前为止,它看起来正在工作。它不是创建一个接口,而是tunnel
创建一个taptun
接口。
ServerA> sudo ip taptun add tun0 mode tun
ServerA> sudo ip addr add 10.10.10.1/30 dev tun0
ServerA> sudo ip link set tun0 up
ServerB> sudo ip taptun add tun0 mode tun
ServerB> sudo ip addr add 10.10.10.2/30 dev tun0
ServerB> sudo ip link set tun0 up
ServerA> ssh -Nf -w 0:0 [email protected]
这样就可以建立隧道了。我只需要看看它与 GRE 有什么不同,以及它是否适合我的申请。