Yeniden başlattıktan sonra musluk arayüzleri nasıl kalıcı hale getirilir?


24

Bazı görevler, dokunma arayüzlerinin yapılandırılmış + sahiplik atamasını gerektirir . Yani, el ile yapıyorum:

sudo tuntap -u <username>
sudo ifconfig tap0 up
sudo ip a a 192.168.1.1/24 dev tap0

veya kullanma

ip tuntap add dev tap0 mode tap user <username>

Bu komutları bir kabuk betiğine eklemeden ve başlangıcına eklemeden yeniden başlatmalardan sonra dokunma arabirimleri yapılandırmasını nasıl kalıcı yapabilirim

Aklımda olan şey, / etc / network / interfaces yoluyla aşağıdaki gibi yapmaktır:

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

Ama nedense işe yaramadı.

Herhangi bir fikir?

Yanıtlar:


20

Hayatım boyunca bu sorunun neden aşağı oy kullanılması gerektiğini göremiyorum. Açık, doğru, iyi tanımlanmış bir cevabı var. Ben onu oyladım.

Tunctl gibi eski programları kullanıyorsunuz, bunun yerine ip kullanmalısınız. / Etc / network / interfaces için doğru stanza :

    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

Hata, manuel yerine statik kullanıyordu . Bunun nedeni, sanal arabirime ana interfae (wlan0 / eth0) ile aynı alt ağda bir adres vermeye çalıştığınız için, otomatik olarak yerel bir rota eklemeye çalıştığında,

    ip route add 192.168.1.0/24 dev tap1

böyle bir yolun zaten var olduğunu bulur ve şikayet eder. Eğer kullanırsanız manuel yerine statik, sen elbette yararsız biridir bu rotayı silmek için izin verilir.

Ayrıca, bir rota eklemelisiniz

     ip route add 192.168.1.121/32 dev tap1

Çekirdeğinizi rotaya istisna olduğunu bildirmek

     ip route add 192.168.1.0/24 dev eth0/wlan0 

Bu kadar.


Ubuntu 17.10'da burada benim için bir şey çalışmıyor: tun0 oluşturulmadı - servis ağ durumu, arayüzün tun0mevcut olmadığını söylüyor . Herkes bir göz atmak isterse burada arayüz dosyası var: gist.github.com/velis74/ab75a46893eaed8bd08b8c6292b2737a
velis

@velis Yeni arayüzünüz tap0 , tun0 değil , bu yüzden bulunamadı. Lütfen tun ve tap arayüzlerinin temelde farklı olduğuna dikkat edin , en.wikipedia.org/wiki/TUN/TAP , hangisini oluşturmak istiyorsunuz?
MariusMatutiae

Evet, buna tap0 denir. Bu cevap, tun bir cihaz değil bir musluk cihazı oluşturmakla ilgilidir. Bunun başarısızlığımın sebebi nasıl olabileceğini göremiyorum. Pre-up add device komutu, komut satırından mükemmel şekilde çalışır.
velis

Görünüşe göre sadece bir auto tap0stanza eksikti . Gist buna göre güncellendi.
velis

0

Yapmanız gerekebilecek birkaç adım daha var:

  1. Yeni bir yönlendirme tablosu ekleyin Yeni bir yönlendirme tablosu eklemek için / etc / iproute2 / rt_tables dosyasını düzenleyin. Buna yönlendirme tablosu “rt2” deyin ve tercihlerini 1'e ayarlayın:
    55     local
    254     main
    253     default
    0       unspec
    1       rt2
  1. Önceki cevapta açıklandığı gibi, bir dokunuş arayüzü oluşturun, ancak sonra yeni yönlendirme tablolarını yapılandırmanız ve yönlendirme kurallarını ayarlamanız gerekir. / Etc / network / arayüzlerine ekleyin:
   #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

Test etmek için:

ip route list table rt2
ip rule show
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.