Paksa Raspberry untuk mendapatkan internet dari jaringan tertentu

13

Saya mengkonfigurasi RPi saya untuk terhubung ke dongle 3G saat boot dengan mengatur ppp dan wvdial aktif

/etc/network/interfaces

Pi melakukan booting dan saya memiliki koneksi internet. Sempurna.

Sekarang masalah saya adalah bahwa setiap kali saya menghubungkan Pi ke komputer saya melalui ethernet (menggunakan tutorial ini ) koneksi internet terputus. Bahkan setelah memutuskan sambungan dari komputer saya masih tidak terhubung, saya perlu reboot agar bisa mendapatkan koneksi internet lagi.

Apakah ada cara untuk membuat Pi tetap terhubung ke internet melalui antarmuka dongle daripada mencoba membuatnya melalui koneksi ke komputer saya?

Jonathanwiesel
sumber
Apakah kedua koneksi menggunakan DHCP?
Lawrence
Seperti apa output ifconfig Anda?
Bex
Menetapkan metrik yang lebih tinggi pada eth0 daripada ppp0 akan mencapai apa yang Anda inginkan. Metrik bawah adalah prioritas yang lebih tinggi.
Lawrence

Jawaban:

6

Dengan asumsi Anda bekerja dengan linux (raspian, debian, dll ...):

Anda mengajukan dua pertanyaan berbeda, Pertama saya akan menjawab pertanyaan judul:

Paksa Raspberry untuk mendapatkan internet dari jaringan tertentu

Saya akan mengunci kata "jaringan" Anda (tidak seperti "antarmuka") dan menjawabnya dengan pengertian IP murni:

Jika Anda memiliki beberapa koneksi yang dapat menyediakan internet, Anda mengontrol yang akan digunakan melalui tabel rute.

Untuk melihat tabel routing yang biasa saya gunakan netstat -rn( -runtuk "show routing", -nuntuk "show me number, jangan coba dan lakukan pencarian DNS, yang mungkin hang jika internet saya tidak terkonfigurasi dengan benar"). Contoh yang sangat sederhana akan terlihat seperti ini:

pi@homeServer ~ $ netstat -rn
Kernel IP routing table
Destination     Gateway         Genmask         Flags   MSS Window  irtt Iface
0.0.0.0         192.168.9.1     0.0.0.0         UG        0 0          0 eth0
192.168.9.0     0.0.0.0         255.255.255.0   U         0 0          0 eth0
172.20.10.0     0.0.0.0         255.255.255.240 U         0 0          0 wlan0
pi@homeServer ~ $ 

Garis dalam output yang menunjukkan ke arah mana paket IP akan pergi adalah garis dengan tujuan 0.0.0.0dan genmask 0.0.0.0, yang biasanya dikenal sebagai default route(topeng 0.0.0.0semua wildcard, itu benar-benar penanda rute default), dan karena saat ini menunjuk ke alamat tertentu dalam kisaran `192.168.9 ', lalu lintas internet akan melalui antarmuka ethernet.

Jika saya ingin mengalihkan internet saya ke jaringan lain saya akan (sebagai root) menggunakan routeperintah, dan dalam hal ini, mengingat bahwa koneksi wifi saya tidak point-to-point saya harus tahu alamat ip dari router yang dapat meneruskan lalu lintas keluar dari jaringan itu (Dalam kasus saya yaitu 172.20.10.1) jadi saya akan melakukan:

  1. Hapus rute default saat ini

    sudo route del default
    
  2. Tambahkan rute default baru untuk jaringan lain

    sudo route add default gw 172.20.10.1
    

FYI sementara routeapa yang saya gunakan, saya melihat beberapa menganggapnya sudah usang dan sebagai gantinya merekomendasikan menggunakan ip routeperintah, lihat komentar @Fred di bawah ini untuk sintaks. referensi untuk penghentian

Apakah ada cara agar tetap terhubung melalui antarmuka dongle

Sudah lama sejak saya bekerja dengan pppdan wvdial, dan tanpa konfigurasi (atau setidaknya referensi untuk panduan yang Anda ikuti dalam pengaturannya) sangat sulit untuk menebak masalah yang Anda hadapi, tetapi sebagai beberapa ide:

  • Apakah koneksi benar-benar turun atau apakah Anda baru saja kehilangan rute default ketika eth0 Anda muncul?
    • Periksa ini di keduanya netstat -rndan ifconfig.
    • Apakah ada antarmuka netstat -rn? jika demikian, apakah ada rute default ke sana?
    • Dalam ifconfigmelakukan Anda melihat antarmuka untuk dongle (mungkin ppp)? itu UP?
  • Saya tidak ingat di mana ppp/ wvdiallog, tapi itu harus diperiksa. Log itu akan memberi tahu Anda kondisi koneksi, dan harus memberi tahu Anda jika seluruh sistem telah dimatikan karena suatu alasan
  • Jika Anda melihat antarmuka, coba pingsesuatu (... apa saja ...) di atasnya, dan lihat apakah koneksi muncul.
    • Saya tahu ppp/ wvdialcombo memiliki beberapa kemampuan koneksi otomatis (tergantung pada konfigurasi)
      • Jadi, jika koneksi muncul dengan ping (atau koneksi tetap terjaga sepanjang waktu): bisa jadi rute default (ppp) hilang ketika Anda membuka ethernet.
      • Jika ini masalahnya, Anda hanya perlu menambahkan rute default dan seluruh sistem akan kembali online.
Mike Lutz
sumber
2
ip routetidak cukup menggunakan sintaks yang sama. Namun, Anda dapat menyalin dan menempelkan outputnya untuk digunakan sebagai input. Misalnya, jika ditampilkan default via 192.168.9.1 dev eth0, Anda dapat menghapus rute itu hanya dengan mengeksekusi ip route del default via 192.168.9.1 dev eth0. Anda dapat dengan mudah menggunakan output sebagai templat untuk menambahkan perintah baru, mis ip route add default via 172.20.10.1 dev wlan0.
Fred