Ανοίξτε τον server σας μέσα απο το nmt σας

krunar

Established Member
23 October 2007
225
Για αρχή πήρες ένα από αυτά τα media tank και άρχισες να βλέπεις σαν τρελός.
Μετά από λίγο συνειδητοποίησες ότι μέσα σου κρύβεται ένας συλλέκτης ταινιών, σειρών, μουσικής κτλ, οπότε αποφάσισες να ανασύρεις τον παλιό σου pc και να το κάνεις server. Και επειδή είσαι και λίγο freak δεν το έστησες στο σπίτι μέσα αλλά στο υπόγειο/ταρατσάκι/σπίτι του σκύλου, έδωσες και πρόσβαση στον γείτονα/κουμπάρο/μπατζανάκη. και μια ωραία μέρα σου ήρθε η ΔΕΗ και δεν ήξερες από πού να φύγεις. Η γυναίκα δεν μαγειρεύει, θερμοσίφωνα έχεις ηλιακό… βρέθηκε ο φταίχτης.

Τι ωραία που θα ήταν να μπορούσες να ανοίξεις τον Server με ένα κουμπί από το σαλόνι?Πάμε λοιπόν

1. Server
Πρώτα από όλα χρειαζόμαστε ο server μας να υποστηρίζει το λεγόμενο wake on lan. Τσεκάρουμε το manual της μητρικής μας καθώς και την κάρτα δικτύου μας (ο δικός μου που είναι 7-8 ετών τα υποστηρίζει). Κάνουμε τις κατάλληλες ρυθμίσεις και αλλάζουμε και τα power settings έτσι ώστε να μπαίνει σε sleep από μόνος του ((στην δικιά μου περίπτωση τα 20 λεπτά δεν δούλεψαν καθώς τον πήρε ο ύπνος στην μέση της ταινίας οπότε πήγα στις 2 ώρες, θα πρότεινα όμως να πειραματιστείτε λίγο)
Για να επιβεβαιώσουμε ότι παίζει το wake on lan μπορούμε να χρησιμοποιήσουμε το tool από ΕΔΩ ( το κατεβάζουμε και χωρίς install τεστάρουμε – για να βεβαιωθείτε ότι παίζει ανοιχτεί και ένα ping με –t να βαράει τον server)
2. Dyndns
Πάμε στο γνωστό site ή σε όποιο άλλο παρεμφερές και φτιάχνουμε ένα account
3. Router
Στον router μας θα χρειαστεί
Α. να υποστηρίζει dyndns και να δώσουμε τα στοιχεία μας από το βήμα 2
Β. να κάνουμε Port forwarding τις πόρτες 7 ή 9 (κάντε και τις 2 για TCP και UDP καλού κακού)
Γ. Να πειράξουμε το arp table (μέσα από το command live του router) έτσι ώστε το entry για την IP του server να είναι στατική. Το ποιο πιθανό είναι να χρειαστεί να το ξανά-κάνουμε μετά από ένα restart του router αλλά αν έχετε καλό router δεν θα είναι συχνέ ..διαφορετικά, πάρτε ένα καλό router :D
Τα Α και Β είναι trivial για ένα σημερινό router. Για το Γ θα πρέπει να το κοιτάξετε αν και οι περισσότεροι το υποστηρίζουν
4. SCRIPT
Αν έχετε κάποιο Nmt με apps πάνω, τότε μπορείτε να βρείτε κάποιο script που να ξυπνάει τον server σας. Eπειδή οι περισσότεροι όμως έχουν nmt χωρίς δίσκους, θα πω την γενική λύση.
Σε αυτή την περίπτωση θα χρειαστείτε ένα site που να μπορεί να εκτελέσει php. Αν δεν έχετε, μην αγχώνεστε, υπάρχουν site όπως το http://www.000webhost.com/ που δίνουν free host (δεν το έχω δοκιμάσει ακόμα καθώς το δικό μου είναι σε άλλο server). Εκεί θα πρέπει να ανεβάσετε το παρακάτω script

PHP:
 <?
# Wake on LAN - (c) [email protected], upgraded by Murzik
# Modified by Allan Barizo http://www.hackernotcracker.com
flush();
function WakeOnLan($addr, $mac,$socket_number) {
  $addr_byte = explode(':', $mac);
  $hw_addr = '';
  for ($a=0; $a <6; $a++) $hw_addr .= chr(hexdec($addr_byte[$a]));
  $msg = chr(255).chr(255).chr(255).chr(255).chr(255).chr(255);
  for ($a = 1; $a <= 16; $a++) $msg .= $hw_addr;
  // send it to the broadcast address using UDP
  // SQL_BROADCAST option isn't help!!
  $s = socket_create(AF_INET, SOCK_DGRAM, SOL_UDP);
  if ($s == false) {
    echo "Error creating socket!\n";
    echo "Error code is '".socket_last_error($s)."' - " . socket_strerror(socket_last_error($s));
    return FALSE;
    }
  else {
    // setting a broadcast option to socket:
    $opt_ret = socket_set_option($s, 1, 6, TRUE);
    if($opt_ret <0) {
      echo "setsockopt() failed, error: " . strerror($opt_ret) . "\n";
      return FALSE;
      }
    if(socket_sendto($s, $msg, strlen($msg), 0, $addr, $socket_number)) {
      echo "Magic Packet sent successfully!";
      socket_close($s);
      return TRUE;
      }
    else {
      echo "Magic packet failed!";
      return FALSE;
      }
    }
  }
// Port number where the computer is listening. Usually, any number between 1-50000 will do. Normally people choose 7 or 9.
$socket_number = "ΧΧΧΧ";
// MAC Address of the listening computer's network device
$mac_addy = "ΧΧ:ΧΧ:ΧΧ:ΧΧ";
// IP address of the listening computer. Input the domain name if you are using a hostname (like when under Dynamic DNS/IP)
$ip_addy = gethostbyname("ΧΧΧΧΧ.dyndns.XXX");
WakeOnLan($ip_addy, $mac_addy,$socket_number)
?><br />
Προσοχή, στο παραπάνω script θα πρέπει σε 3 σημεία να βάλετε τα δικά σας στοιχεία: το port, την mac address του server και το dyndns address σας (τα έχω μαρκάρει με ΧΧΧ).
Αφού σώσετε το script στο site σας, θα είναι προσβάσιμο, μέσα από κάποια διεύθυνση του στυλ http://myname.hostoi.com/wol.php
5. NMT
Τώρα μπορείτε να πάτε στο nmt σας (egreat για μέσα) και μέσα από τα web services να κάνετε add και να προσθέσετε την παραπάνω διεύθυνση. Την επόμενη φορά λοιπόν που θέλετε να δείτε μια ταινία και ο server κοιμάται, επισκεφτείτε μέσα από το nmt το link που φτιάξατε, και περιμένετε 1-2 λεπτά. Πλέον μπορείτε να ξυπνήσετε τον server σας από το nmt σας, το κινητό σας, με iphone app , με android app , με facebook app (not tested by me).

Υστερόγραφο
Ως συνήθως, έκανα ένα σχετικό search πριν postaro και δεν βρήκα κάτι αντίστοιχο, αν όμως έχει ήδη αναφερθεί το θέμα ας το σβήσει κάποιος moderator
Κάποιες έννοιες όπως, dyndns, bios and lan settings κτλ τις αναφέρω επιγραμματικά καθώς θεωρώ ότι για κάποιον με media server είναι γνωστά. Αν όμως σας φαίνονται κινέζικα…no worries..στο google θα τα βρείτε όλα. Διαφορετικά, εδώ είμαστε για ότι χρειαστείτε. Η διαδικασία δεν είναι των 5 λεπτών, αλλά ούτε και για να παλεύεις μια βδομάδα (εμένα μου πήρε 3 βδομαδες..αλλά δεν είχα guide) και πιστέψτε με, γλιτώνεις πολλά λεφτά.

Εύχομαι να κατάφερα να μειώσω κάποιους λογαριασμούς ρεύματος :D
 
Μια άλλη λύση είναι η χρήση ενός NAS Linux δίσκου τύπου WD MyBOOK World ο οποίος καταναλώνει ελάχιστη ενέργεια και μπορεί να δουλέψει και ως torrent - rapidshare downloader.

Δείτε και εδώ
http://mybookworld.wikidot.com/
http://www.emarket.gr/item.php?id=31798391

Πλάκα πλάκα....το site αυτό που έβαλες της emarket λέει ότι δίνει σε προσφορά τον δίσκο αυτόν σε πολύ καλή τιμή . (εάν σκεφτείς ότι πωλείται γύρω στα 140 ευρώ) Επίσης - εύχομαι να μην είναι λάθος τους - έχουν φωτογραφία έναν δίσκο που εκτός από ethernet και 1 usb έχει περισσότερες θύρες. Εάν είναι έτσι είναι ακόμα ακριβότερος .
 
Re: Απάντηση: Ανοίξτε τον server σας μέσα απο το nmt σας

ή απλά να κατεβάσετε το app στο iPhone που λέγεται iWOL -bye-
με το iwol ξεχνας τα βήματα 4 και 5. Ελπίζω μόνο να κρατάει την mac.

Απο την άλλη εγω χρειαζόμουν κάτι που να δουλεύει για 2 nmt (σε διαφορετικά σπίτια) και να μπορεί να το χρησιμοποιεί η γυναικα...και iphone δεν της παίρνω που να χτυπιέται κάτω :D
 
συμφωνει, ενα iphone λυνει πολλά προβλήματα (αν μπορείς να πάρεις και τηλέφωνο ακόμα καλυτερα :D)
αλλά το Link μέσα στο egreat είναι πολύ πιο βολικό imo.
Το επόμενο που θέλω να ψάξω είναι να ξυπνας τον server κάνοντας μια κλήση :D