Linux Sihirli Paket Komutu Oluşturucu
Linux'tan Wake on LAN sihirli paketi gönderen yerel bir bash veya zsh komutu oluşturun. Python 3, Perl veya bash /dev/udp kullanır; wakeonlan ya da etherwake yüklemeniz gerekmez.
Girdi
Çıktı
Readme
Wake on LAN sihirli paketi nedir?
Wake on LAN, uyku modundaki veya kapalı bir bilgisayarı ağ üzerinden açar. Ağ kartı güç almaya devam eder ve bir sihirli paketi dinler: 6 bayt FF'nin ardından bilgisayarın MAC adresi 16 kez gelir; toplam 102 bayt eder. Paket genellikle UDP üzerinden 9 veya 7 numaralı porta yayın olarak gönderilir; böylece yerel ağdaki her makine paketi alır ve yalnızca eşleşen bilgisayar açılır. Önce bilgisayarın BIOS veya UEFI ayarlarından Wake on LAN özelliğinin etkinleştirilmesi gerekir.
wakeonlan ve etherwake gibi araçlar bu paketi gönderir, ancak bunlar her zaman kurulu olmayabilir ve bir sunucuya veya NAS'a bu araçları eklemek istemeyebilirsiniz.
Araç açıklaması
Bu araç, paketi Linux'ta zaten bulunan araçlarla gönderen tek satırlık bir komut oluşturur. Uyandırılacak bilgisayarın MAC adresini 00:11:22:AA:BB:CC, 00-11-22-AA-BB-CC, 0011.22AA.BBCC biçiminde veya araya ayraç koymadan 12 onaltılık basamak olarak girin ve Gönderim yöntemi bölümünden gönderme yöntemini seçin:
- Python 3 veya Perl: bash ve zsh içinde çalışır, root erişimi gerektirmez ve yayın gönderebilir
- Bash /dev/udp: Kurulum gerektirmez, ancak yalnızca bash içinde çalışır; zsh içinde çalışmaz ve yayın gönderemez
Yayın veya IP adresi varsayılan olarak 255.255.255.255, UDP portu ise 9 olarak ayarlanır. bash bir yayın adresine paket gönderdiğinde Linux "Permission denied" yanıtını verir. Bu nedenle, adresi .255 ile biten bir adres seçerseniz araç sizi uyarır. Bunun yerine bilgisayarın kendi IP adresini kullanın.
Komut tarayıcınızda oluşturulur. Komutu kopyalayıp aynı ağdaki herhangi bir Linux makinesinde çalıştırın.
Örnekler
00:11:22:AA:BB:CC adresi için, 9 numaralı portta Python 3 ile yayın gönderme:
python3 -c 'import socket;s=socket.socket(socket.AF_INET,socket.SOCK_DGRAM);s.setsockopt(socket.SOL_SOCKET,socket.SO_BROADCAST,1);s.sendto(bytes.fromhex("ff"*6+"001122aabbcc"*16),("255.255.255.255",9))'bash ile doğrudan 192.168.1.20 adresindeki bilgisayara gönderme:
printf "$(printf '\\xff%.0s' {1..6})$(printf '\\x00\\x11\\x22\\xaa\\xbb\\xcc%.0s' {1..16})" > /dev/udp/192.168.1.20/9Özellikler
- Komutun Python 3, Perl ve bash sürümleri
- İki nokta, tire veya nokta içeren ya da ayraç içermeyen MAC adreslerini kabul eder
- bash sürümünün bir yayın adresine erişemediği durumlarda uyarır