一部のタスクでは、タップインターフェイス設定済み+所有権の割り当てが必要です。だから、私はそれを手動でやっています:
Sudo tuntap -u <username>
Sudo ifconfig tap0 up
Sudo ip a a 192.168.1.1/24 dev tap0
または使用
ip tuntap add dev tap0 mode tap user <username>
これらのコマンドをシェルスクリプトに追加してスタートアップに追加せずに、再起動後にタップインターフェイス構成を永続的にするにはどうすればよいですか?
私が念頭に置いているのは、次のように/ etc/network/interfacesを通じてそれを行うことです:
iface tap1 inet static
address 192.168.1.121
netmask 255.255.255.0
pre-up /usr/sbin/tunctl -u ajn -t tap1
しかし、何らかの理由で機能しません。
何か案は?
私の人生において、なぜこの質問に反対票が投じられるべきか、私にはわかりません。明確で正しい、明確な答えがあります。私はそれを賛成しました。
Tunctlのような古いユーティリティを使用しているので、代わりにipを使用してください。 / etc/network/interfacesの正しいスタンザは次のとおりです。
iface tap1 inet manual
pre-up ip tuntap add tap1 mode tap user root
pre-up ip addr add 192.168.1.121/24 dev tap1
up ip link set dev tap1 up
post-up ip route del 192.168.1.0/24 dev tap1
post-up ip route add 192.168.1.121/32 dev tap1
post-down ip link del dev tap1
あなたの間違いはmanualの代わりにstaticを使用することでした。その理由は、仮想インターフェースにメインインターフェース(wlan0/eth0)と同じサブネット内のアドレスを与えようとしているため、ローカルルートを自動的に追加しようとすると、
ip route add 192.168.1.0/24 dev tap1
そのようなルートがすでに存在することがわかり、文句を言います。 staticの代わりにmanualを使用する場合、このルートを削除することが許可されますが、これはもちろん役に立ちません。
また、ルートを追加する必要があります
ip route add 192.168.1.121/32 dev tap1
ルートに例外があることをカーネルに通知する
ip route add 192.168.1.0/24 dev eth0/wlan0
それで全部です。
あなたがする必要があるかもしれないさらにいくつかのステップがあります:
55 local
254 main
253 default
0 unspec
1 rt2
#create a tap interface and make it persistent
iface tap1 inet manual
pre-up ip tuntap add tap1 mode tap user root
pre-up ip addr add 192.168.1.121/24 dev tap1
up ip link set dev tap1 up
post-up ip route del 192.168.1.0/24 dev tap1
post-up ip route add 192.168.1.121/32 dev tap1
post-down ip link del dev tap1
#configure the new routing table so that network 192.168.1.0 can be reached through the tap1 interface
post-up ip route add 192.168.1.0/24 dev tap1 src 192.168.1.121 table rt2
#set the default gateway to be 192.168.1.10
post-up ip route add default via 192.168.1.10 dev tap1 table rt2
#set rules so that traffic from and to 192.168.1.121 use the rt2 routing table
post-up ip rule add from 192.168.1.121/24 table rt2
post-up ip rule add to 192.168.1.121/24 table rt2
Sudo ifup tap1
テストするには:
ip route list table rt2
ip rule show