TL; DR : Saya mencari skrip atau pekerjaan cron, yang secara berkala akan berjalan pada host linux (fedora pada raspberry pi) yang akan memeriksa apakah aturan port forwarding masih ada di router dan menambahkannya jika tidak . Tujuannya adalah untuk selalu memiliki akses ke host linux raspberry pi melalui SSH, VNC dan antarmuka web transmisi, dari mesin apa pun di internet di luar jaringan rumah saya. Setup diberikan di bawah ini:
Router :
Beetel 440Tx1 ADSL2 router + modem + wifi.
Pengaturan :
Router terhubung ke internet (ISP Broadband) dan memiliki IP eksternal yang dinamis. Ini menyediakan jaringan rumah pribadi ke komputer saya dengan IP internal 192.168.xy bertindak sebagai DHCP juga.
Tuan rumah :
Sebuah host AR raspberry pi dengan Fedora Linux, berjalan sepanjang waktu dengan ssh, vnc, server daemon transmisi dimulai saat boot. Ini juga memiliki DUC no-ip.com dyndns gratis (klien pembaruan dinamis) yang secara rutin memeriksa IP eksternal dan mengikatnya ke host string. Jadi saya selalu dapat menemukan IP eksternal router saya dengan menyelesaikan string dyndns saya seperti myrouter.no-ip.org . Pi memiliki IP internal statis seperti 192.168.1.z.
Penerusan Pelabuhan :
Harus masuk ke router menggunakan GUI / browser dengan kredensial pabrik hanya jika terhubung ke jaringan itu baik melalui kabel ethernet atau dilindungi wi-fi
http://192.168.1.1/html/index1.html
Saya menyiapkan aturan dengan masuk untuk meneruskan lalu lintas apa pun di port 22, 5900, 9091 di IP eksternal ke program masing-masing pendengar (sshd, vncserver, transmisi-daemon) pada pi di 192.168.1.z.
Masalah :
Router ini kehilangan aturan port forwarding di atas ketika router (router) dihidupkan ulang, atau bahkan jika ada lonjakan daya listrik dan UPS harus sesaat melangkah, dan biasanya mendapatkan IP eksternal yang berbeda dari ISP saya secara dinamis.
Persyaratan :
Sebuah skrip atau tugas cron yang dapat berjalan di pi fedora linux saya yang dapat login ke router saya dan secara berkala polling untuk keberadaan aturan port forwarding dan membuatnya jika ada yang hilang. Bantuan dihargai.
Jawaban:
MiniUPnP adalah klien baris perintah UPnP yang memungkinkan Anda mengaktifkan penerusan porta. Sumber tersedia sehingga Anda harus dapat mengompilasinya ke Pi.
Saya pikir ini adalah sintaks yang Anda butuhkan, tapi saya tidak punya mesin untuk mengujinya. Anda hanya akan memasukkan yang berikut ini dalam skrip yang akan mengatur port UPnP untuk Anda
sumber
@reboot <cmd>
crontab Andaifconfig ...
bagian tidak bekerja untuk saya jadi saya menggunakanifconfig | sed -En 's/127.0.0.1//;s/.*inet (addr:)?(([0-9]*\.){3}[0-9]*).*/\2/p'
per jawaban ini .