如何让 Tap 接口在重启后依然有效?

如何让 Tap 接口在重启后依然有效?

有些任务需要有点击界面已配置 + 分配所有权。因此,我手动进行此操作:

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>

如何才能使 tap 接口配置在重启后保持不变,而无需将这些命令添加到 shell 脚本并添加到启动中

我想做的是通过/etc/网络/接口如下所示:

iface tap1 inet static
address 192.168.1.121
netmask 255.255.255.0
pre-up /usr/sbin/tunctl -u ajn -t tap1

但由于某种原因,它不起作用。

有任何想法吗?

答案1

我实在看不出为什么这个问题应该被否决。它很清晰、正确,并且有明确的答案。我已将其点赞。

您正在使用过时的实用程序,如 tunctl,您应该使用知识产权正确的诗节是/etc/网络/接口是:

    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

你的错误在于使用静止的代替手动的原因是,由于您尝试为虚拟接口提供与主接口 (wlan0/eth0) 位于同一子网的地址,因此当它尝试自动添加本地路由时,

    ip route add 192.168.1.0/24 dev tap1

它发现这样的路线已经存在,并且会发出警告。如果你使用手动的而不是静态的,你可以删除这个路由,当然这是没用的。

另外,你应该添加一条路线

     ip route add 192.168.1.121/32 dev tap1

通知你的内核路由有异常

     ip route add 192.168.1.0/24 dev eth0/wlan0 

就这样。

答案2

您可能还需要执行几个步骤:

  1. 添加新路由表 编辑 /etc/iproute2/rt_tables 添加新路由表。将其命名为路由表“rt2”,并将其首选项设置为 1:
    55     local
    254     main
    253     default
    0       unspec
    1       rt2
  1. 如上一个答案所述,创建一个 tap 接口,但随后您需要配置新的路由表并设置路由规则。添加到 /etc/network/interfaces:
   #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

答案3

遵循以下简单步骤:

步骤1安装uml-实用程序使用

sudo apt-get install uml-utilities

第2步:在以下位置添加以下命令/etc/网络/接口

auto tap0
iface tap0 inet static
address 192.168.100.1
netmask 255.255.255.0
pre-up /usr/bin/tunctl -t tap0

步骤3重启机器并执行命令ifconfig 你所做的更改应该反映出来

相关内容