2013-07-26 5 views
1

TunTap 설명서 on the vtun site은 드라이버가 Linux 커널 2.4에서만 지원된다는 점을 지적합니다. 2.6 및 3.2 버전의 Linux에서 실행할 수있는 방법이 있습니까?Linux 커널 2.6에서 TunTap 사용

장치에 고양이 보여줍니다

# 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 

를 내가 얻을 수있는 방법이 있나요 이것은 리눅스 2.6 이상에서 작동하거나 거기에 당신이 알고있는 tuntap에 좋은 대안이 있습니까?

+1

FAQ가 오래되었습니다. Linux 2.6 (및 3.x)에는 tun/tap 드라이버가 함께 제공됩니다. 예를 들어 다음을 사용하여 tuntap 장치를 만들 수 있습니다. ip tuntap add 명령을 사용하십시오. 문서는 일반적으로 부족하거나 존재하지 않지만, 아마도 [this] (http://backreference.org/2010/03/26/tuntap-interface-tutorial/)는 도움이 될 수 있습니다 – nos

+0

저는/dev/net을 가지고 있습니다./tun하지만 파일의 cat은 "cat :/dev/net/tun : 잘못된 상태의 파일 설명자"라고 말합니다. ip tuntap add는 "Object"tuntap "unknown"이라고 말합니다. –

+0

일부 버전에서는 ip 명령이 구식이므로 tunctl을 사용해야합니다. 그것을 시도하고 당신에게 돌아 가자. –

답변

2

tuntap 설명서가 구식입니다. 또한, 리눅스의 최신 버전, 당신은, 데비안 짜기에 tunctl를 설치하려면

tunctl 

대신

ip tuntap add 

의 사용 tunctl 명령을 제공하는 패키지 'UML - 유틸리티'를 설치해야 할 수도 있습니다. 당신은 게이트웨이, IP 주소와 유사 또한 변화를 "ETHOIPADDR"로 변경, 단지 file.sh에있는 내용을 복사, 자동으로 생성하기 위해 아래의 스크립트를 사용

tunctl -t tun1 
1

을 사용하여 새 터널을 추가 할 수 있습니다 브로드 캐스트 주소를 입력하고 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