Saya ingin menggunakan Raspberry Pi sebagai gateway VPN. RPi terhubung ke jaringan rumah saya dan internet melalui wlan0, and
perangkat apa pun yang terhubung ke eth0
koneksi VPN. Saya menggunakan pptp-linux
untuk membuat koneksi VPN dan semuanya bekerja dengan baik selama tahap prototyping saya. Namun, untuk menyelesaikan proyek saya telah menempatkan koneksi VPN di /etc/rc.local
skrip sehingga akan mulai saat boot. Sekarang gagal 50% dari waktu. Saya menduga itu sedang mencoba koneksi VPN sebelum saya terhubung dengan benar ke internet melalui wlan0
. Jika ini masalahnya, saya perlu tes untuk koneksi internet yang valid di awal rc.local
sebelum melanjutkan dengan skrip lainnya. Ada ide bagaimana saya bisa melakukan ini?
8
sleep 20
sebelum skrip Anda. Atau lebih baik, masukkan skrip Anda/etc/network/if-up.d
. Dengan cara itu skrip dijalankan setelah antarmuka jaringan naik.Jawaban:
Dari jawaban StackOverflow ini ;
sumber
langsung dari atas kepala saya:
ping router Anda
ping google.com
grep
ifconfig
output untuk gateway yang valid dan / atau alamat IP yang validsumber
grep
ping untuk jawaban yang valid. Dalam loop sementara sampai semua kondisi terpenuhi. Hanya ping saja tidak akan banyak membantu. Jivings mengutip sebaris kode yang bagus.grep
, ping menggunakan kode keluar untuk memberi tahu Anda tentang hasilnya, sepertiping -qc 1 192.168.1.1 && echo ok || echo error
Berdasarkan kode sampel Jivings dan beberapa logika saya sendiri.
Cara yang tepat adalah membuat fungsi yang mengembalikan boolean pada komparator while. tapi beginilah seharusnya tampilan shell shell.
sumber
Debian sekarang menggunakan pemula. Ini mungkin cara yang lebih sederhana untuk melakukannya dengan skrip init.d.
Anda mungkin perlu mencoba beberapa layanan berbeda untuk menunggu, tetapi
networking
(jika ada) ataunetwork-manager
mungkin yang baik untuk dicoba terlebih dahulu.Ini untuk Ubuntu, tetapi Anda seharusnya tidak menemukan terlalu banyak perbedaan http://upstart.ubuntu.com/cookbook/
sumber