21

Некоторые задачи требуют настройки интерфейсов касания + назначения владельца. Итак, я делаю это вручную:

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

Но по какой-то причине это не работает.

Есть идеи?

1 ответ1

19

Я не вижу, на всю жизнь, почему этот вопрос должен быть отвергнут. Это ясно, правильно, у него есть четко определенный ответ. Я проголосовал за это.

Вы используете устаревшие утилиты, такие как 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

Ваша ошибка заключалась в использовании статического вместо ручного. Причина в том, что, поскольку вы пытаетесь дать виртуальному интерфейсу адрес в той же подсети, что и ваше основное межфайонное соединение (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 

Это все.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .