1

vtun 站点上的 TunTap 文档指出,该驱动程序仅在 Linux 内核 2.4 之前受支持。有没有办法让它在 2.6 和 3.2 版本的 Linux 上运行?

设备上的猫显示:

# cat /dev/net/tun
 cat: File descriptor in bad state

我尝试直接从 rpm 文件安装,看看我能走多远:

# rpm -i tun-1.1-6.rh71.i386.rpm
error: Failed dependencies:
     /bin/sh is needed by tun-1.1-6.i386

有什么办法可以让它在 linux 2.6+ 上工作,或者你知道有什么好的 tuntap 替代品吗?

4

2 回答 2

2

tuntap 文档已过时。此外,在较新版本的 linux 中,您可能需要使用

tunctl 

代替

ip tuntap add

要在 debian Squeeze 上安装 tunctl,请安装提供 tunctl 命令的软件包“uml-utilities”。您可以使用添加新隧道

tunctl -t tun1
于 2013-07-26T19:40:03.333 回答
1

使用以下脚本自动创建它,只需将内容复制到 file.sh 中,将“ETHOIPADDR”更改为您的 IP 地址,同样更改网关和广播地址,并以 sudo 权限运行脚本。

#!/bin/sh 
# 
# script to bring up the tun device in QEMU in bridged mode 
# first parameter is name of tap device (e.g. tap0)
#
# some constants specific to the local host - change to suit your host
#
ETH0IPADDR=192.168.0.3
GATEWAY=192.168.0.1
BROADCAST=192.168.0.255
#
# First take eth0 down, then bring it up with IP address 0.0.0.0 
#
/sbin/ifdown eth0
/sbin/ifconfig eth0 0.0.0.0 promisc up
#
# Bring up the tap device (name specified as first argument, by QEMU)
#
/usr/sbin/openvpn --mktun --dev $1 --user `id -un`
/sbin/ifconfig $1 0.0.0.0 promisc up
#
# create the bridge between eth0 and the tap device
#
/usr/sbin/brctl addbr br0
/usr/sbin/brctl addif br0 eth0
/usr/sbin/brctl addif br0 $1
# 
# only a single bridge so loops are not possible, turn off spanning tree protocol
#
/usr/sbin/brctl stp br0 off 
# 
# Bring up the bridge with ETH0IPADDR and add the default route 
#
/sbin/ifconfig br0 $ETH0IPADDR netmask 255.255.255.0 broadcast $BROADCAST
/sbin/route add default gw $GATEWAY
#
# stop firewall - comment this out if you don't use Firestarter
#
/sbin/service firestarter stop 
于 2013-07-27T18:26:32.927 回答