Προς το περιεχόμενο

localhost != 127.0.0.1


Προτεινόμενες αναρτήσεις

Δημοσ.

Αντιμετώπισα το εξής περίεργο πριν από λίγο καιρό σε μία διανομή.

Η διανομή είναι η Scientific Linux.

Χρήσιμοποιεί έναν webserver για ένα web interface για τη λειτουργία του.

 

Με την έναρξη του server, ανοίγει τον browser στην θέση

127.0.0.1:port/home_page.html

και ιδού το γραφικό περιβάλλον.

 

Ωστόσο, μετά από την αποσύνδεση του server από το διαδίκτυο (ακόμα και αν είναι συνδεμένο στο router), σε κάποιο σημείο, η διεύθυνση παραμένει χωρίς απόκριση από τον browser.

Αν κάποιος αλλάξει στη διεύθυνση την IP 127.0.0.1 σε localhost, όλα πάνε καλά.

 

Αν κάποιος κάνει ping localhost ή ping 127.0.0.1 έχει την ίδια απόκριση.

 

Στο αρχείο /etc/hosts, υπάρχει μεταξύ άλλων το:

127.0.0.1   localhost.localdomain   localhost

Στο /etc/networks το

loopback 127.0.0.0

 

Όταν ο server είναι πάλι on-line, τα πάντα επιστρέφουν στο κανονικό.

 

Μπορεί κάποιος να μαντέψει γιατί μπορεί ένας browser στη μια περίπτωση να ανταποκρίνεται στο loopback domain name αλλά όχι στην IP;

Δημοσ.

Leonidas_fs, κατά πρώτον, ευχαριστώ για την απάντηση.

 

Κατά πάσα πιθανότητα, θα μου παρέκαμπτε το πρόβλημα.

Και το γράφω γιατί αν χρησιμοποιήσω την εξωτερική διεύθυνση του server για να ανοίξω το user interface στο firefox τοπικά (μέσω ssh), έχω ένα UI για να δουλέψω.

 

Ωστόσο, αφ' ενός, ο χρήστης μου δεν μπορεί να είναι su και το μηχάνημα είναι προϊόν μιας μεγάλης εταιρίας που δε θέλει να δώσει πρόσβαση τόσο ψηλά (ή χαμηλά, ανάλογα πώς το βλέπεις), επομένως θα ήταν πιο εύκολο να αλλάξω τη διεύθυνση από http://127.0.0.1[*]σε http://localhost[*] στο html αρχείο που ανοίγει εξ αρχής, το οποίο βρίσκεται στο home του χρήστη μου και να πω πως παρέκαμψα το πρόβλημα και με αυτό τον τρόπο.

 

Αφ' ετέρου, δε θα μου έλυνε την απορία:

Γιατί όταν η συσκευή είναι off-line, συμπεριφέρεται με αυτό τον τρόπο;

Είχε κανείς κάποια παρόμοια εμπειρία;

Αν ναι, βρήκε λύση;

Αν ναι, ποια;

Δημοσ.

wild guess αλλά κοίτα μήπως είναι θέμα browser

όταν δεν έχεις δίκτυο, ο browser ξεκινάει σε offline mode, και παίζουν διάφορα bugs

σε firefox, δοκίμασε να ξετικάρεις το File -> Work Offline, θα παίξει?

Δημοσ.

Δυστυχώς, γιατί την ψάχνω ακόμα τη λύση, έχω ελέγξει το "work offline" και δεν είναι επιλεγμένο.

Διχάζομαι, ανάμεσα στις ρυθμίσεις δικτύου και τις ρυθμίσεις του web server της συσκευής, χωρίς να μπορώ να αποκλείσω και τον browser, δεδομένου του ότι είναι μοναδικός στο σύστημα.

Δημοσ.

Μπορείς να δεις αν ο browser χρησιμοποιεί τίποτα proxy; Αν όχι, μπορείς να δεις τι επιστρέφει ο dns οταν κανεις request για localhost με/χωρις Internet και να συγκρινεις τα αποτελέσματα; Αφού κάνεις ping φαντάζομαι ότι λειτουργεί, αλλά το socket δεν το βλέπει, δηλαδή τον συνδυασμό IP:Port. Εχεις πρόσβαση στα logs αυτου του server; Αν ναι, αυξησε το verbosity και παρακολουθησε τι συμβαινει οταν κανεις request απο τον browser.

Δημοσ.

Θα ελέγξω τα proxy settings όταν ξαναβρεθώ επί τόπου.

 

Το request το εννοείς χρησιμοποιώντας τον browser (address bar), ή μέσω τερματικού; Δεν είμαι βέβαιος.

Για το τι πρόσβαση έχω στα logs, θα πρέπει να το ελέγξω.

Το diagnostic package δημιουργείται κρυπτογραφημένο, για τα μάτια της παραγωγού εταιρίας μόνο, αλλά μπορεί να μπορώ να δω το αρχείο στην θέση του, χωρίς να δημιουργήσω αναφορά.

Δημοσ.

@sundance_kid
Το φαινόμενο υπάρχει ακόμα και όταν οι συσκευή/ες είναι stand alone.
Δεν φαίνεται να υπάρχει σχέση με το router.

Δοκιμάζοντας να διαγράψω από τις ρυθμίσεις του δικτύου τη διεύθυνση του gateway, δεν έγινε τίποτα.

Ούτε δοκιμάζοντας να διαγράψω τις διευθύνσεις των DNS servers, αλλά αυτό είναι άσχετο.

@irenegr
Ευχαριστώ για τον χρόνο σου, αλλά διαβάζοντας τα αρχικά posts, φαίνεται να αφορά περιπτώσεις που είναι τσεκαρισμένο το "work offline" στις επιλογές του browser.

Συγνώμη που είμαι λακωνικός, την ίδια στιγμή που βρίσκω ενδιαφέρον και ανταπόκριση στην ερώτησή μου, αλλά αν δε βρεθώ ξανά επί τόπου, λίγα είναι αυτά για τα οποία μπορώ να μεταφέρω με τη σειρά μου, ως ανταπόκριση/feedback.

Δημοσ.

Κάνε κανένα strace αν μπορείς αλλά σχετίζεται με systemcalls του nsswitch.conf. Λύνεται με recursive sed αλλάζοντας το 127.0.0.1 με localhost στο κώδικα σου.

Δημοσ.

Καθηγητά, να με συμπαθάς, αλλά στις είκοσι λέξεις, μου έλειπαν οι δεκαεννιά για να έχω πλήρη κατανόηση...

Δηλαδή τι είναι το s-trace και τι το nsswitch.conf (σαν config αρχείο τίνος).

Sed...? (αυτό το recursive).

Δημοσ.

name services είναι. Όταν στο /etc/nsswitch.conf λες hosts files dns

αυτό εκτελεί διάφορες systemcalls όπως η gethostbyname() για να βρει την ip/όνομα του host από το αρχείο /etc/hosts κ αν δε το βρει πάει κ ρωτάει το επόμενο (DNS). Στη περίπτωση σου όταν δεν έχεις δίκτυο δώσε route -n και ifconfig αν μπορείς. Τι webserver τρέχει; Αυτό είναι κοινό λάθος σε apache πάντως.

Δημοσ.

Στο ifconfig δε βλέπω να επιστρέφει κάτι παράξενο:

(Παράθεση από το παρελθόν)

 

lo        Link encap:Local Loopback  
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:2351097495 errors:0 dropped:0 overruns:0 frame:0
          TX packets:2351097495 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:4182199375 (3.8 GiB)  TX bytes:4182199375 (3.8 GiB)
 

ενώ το route -n δεν επιστρέφει κάποιο interface "lo", μόνο τις eth# συνδέσεις, χωρίς να φαίνεται κάποιο conflict, κοιτώντας destination και genmask, με εξαίρεση ίσως την γραμμή:

 

Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
...

0.0.0.0             GatewayIP      0.0.0.0              UG     0          0        0      eth1
 

Το nsswitch.conf θα το αναζητήσω.

Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε

Πρέπει να είστε μέλος για να αφήσετε σχόλιο

Δημιουργία λογαριασμού

Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!

Δημιουργία νέου λογαριασμού

Σύνδεση

Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.

Συνδεθείτε τώρα
  • Δημιουργία νέου...