我正在使用 ubuntu11.10,并使用以下命令创建了一个 tun/tap 接口
openvpn --mktun --dev tun0
ip link set tun0 up
ip addr add 10.10.10.1/24 dev tun0
route add 10.10.10.1/24 dev tun0
我那里有另一个界面
eth0 10.80.1.87
我想将从 tun0 收到的数据包重定向到 eth0。如何在 Ubuntu 上做到这一点?
我正在使用 ubuntu11.10,并使用以下命令创建了一个 tun/tap 接口
openvpn --mktun --dev tun0
ip link set tun0 up
ip addr add 10.10.10.1/24 dev tun0
route add 10.10.10.1/24 dev tun0
我那里有另一个界面
eth0 10.80.1.87
我想将从 tun0 收到的数据包重定向到 eth0。如何在 Ubuntu 上做到这一点?
作为对两个其他很好的答案的补充,请记住:
根据 TCPIP 标准的要求,IP 转发默认关闭。你打开它: echo 1 > /proc/sys/net/ipv4/ip_forward
然后转发将起作用。您似乎在帖子中添加了几行,所以我无法确定您的网络配置。
如果 tun0 上的数据包以 eth0 上的目的地进入,现在将被转发。您的 Ubuntu 机器将用作路由器。它不会盲目地将进入 tun0 的数据包放到以太网上。
因此,如果您在 tun0 上的 IP 地址是 10.10.10.1,那么另一个主机,例如 tun0 上的 10.10.10.45 将必须配置 10.10.10.1 的网关(至少对于 10.80.1.0/24)。然后,如果它有一个 10.80.1.234 的数据包,它将首先将其转发到 10.10.10.1,您的 Ubuntu 机器会将其转发到以太网上的 10.80.1.234。接下来,THAT 机器将回复 10.10.10.45。它必须配置为使用 10.80.1.87 作为该主机/网络的网关。如果所有配置正确,它将起作用。
在 10.80.1.0/24 上的机器上配置正确网关的另一种方法是启用 ip 伪装。然后,您的 ubuntu 机器将伪造 FROM 地址并将 10.80.1.87 替换为 10.10.10.45 曾经的源。
听起来你想在两个网络接口之间配置桥接这里还有 ubuntu 特定的手册
$ sudo apt-get install bridge-utils
# vim /etc/network/interfaces:
auto lo iface lo inet loopback auto br0 iface br0 inet static address 192.168.0.10 network 192.168.0.0 netmask 255.255.255.0 broadcast 192.168.0.255 gateway 192.168.0.1 bridge_ports eth0 bridge_fd 9 bridge_hello 2 bridge_maxage 12 bridge_stp off
$sudo /etc/init.d/networking restart