Mam problemy z przekierowywaniem połączeń spoza sieci podczas tetheringu z telefonem. Nie rozumiem ogólnie routerów i sieci, więc proszę o wyrozumiałość.
Moje urządzenie z Androidem to urządzenie podłączone bezpośrednio do Internetu. Aby umożliwić dostęp do mojego komputera ze świata zewnętrznego za pośrednictwem urządzenia z Androidem, obecnie używam bezpłatnej aplikacji o nazwie Port Forwarder, a mój telefon jest zrootowany, więc potrzebuję autoryzacji. Port, na którym obsługuję połączenia na serwerze, to 80. Dostęp do adresu IP serwera (wewnątrz sieci) za pomocą <local_ip.addr.ess.here>:80
I mogę uzyskać do niego dostęp, więc to działa.
Problem polega na tym, że kiedy próbuję uzyskać do niego dostęp spoza sieci, aplikacja mówi mi, żebym ustawił źródło na 80 i miejsce docelowe, cokolwiek to jest (ich przykładem jest 8080); oczywiście ustawiłem go na 80, ponieważ tego właśnie słucha serwer. Dlatego próbuję uzyskać dostęp do serwera z zewnątrz, <phone.public_ip.adr.ess>:80
ale to nie działa.
Jak zauważyłeś, nie mam pojęcia, co robię, a znalezienie przewodników było trudne, nawet dla standardowych routerów. Czy ktoś z powodzeniem korzystał z tej aplikacji i może mógłby mi pomóc? Prawdopodobnie pominąłem ważne informacje z powodu ignorancji, jeśli tak, daj mi znać, a zaktualizuję pytanie.
źródło
192.168.*.*
, ale czasem także172.*.*.*
lub10.*.*.*
patrz Wikipedia ), jest widoczny tylko w sieci lokalnej i nie można uzyskać do niego dostępu bezpośrednio z „zewnętrznego świata”. Potrzebne są tutaj ustawienia przekierowania portów w routerze i lepiej je omówić na ServerFault .adb logcat
) Podczas próby uzyskania dostępu z zewnątrz, aby sprawdzić, czy przynajmniej dotrze ono do twojego urządzenia i może zapisuje jakieś wskazówki.Odpowiedzi:
Nie jestem pewien, którą wersję używasz, oto moja rada. Przyczyną prawdopodobnie zablokowania jest zapora systemu Android i silne zasady Se-Linux.
Ponieważ masz pełny dostęp do katalogu głównego, możesz uzyskać powłokę za pomocą ADB i to sprawdzić. Wpisz,
su -
a dostaniesz się do rootowania. Używam TerminalEmulatora, ale możesz użyć natywnego, jeśli jest dostarczany z systemem operacyjnym.Jeśli dobrze cię zrozumiałem, Twój telefon działa jak router w trybie modemu. Jest to potrzebne do przekazywania pakietów:
echo 1 > /proc/sys/net/ipv4/ip_forward
Sprawdź, czy to pomoże. Najprawdopodobniej będziesz musiał grać z iptables, zezwól na port 80,443 na porcie modemu. To nie jest pełna odpowiedź, ale opublikowanie jej jako komentarza jest zbyt długie.
źródło
Odpowiedź brzmi: twój dostawca blokuje port 80, jednak jeśli przełączysz się na port 443, nie będzie mógł go zablokować, ponieważ port 443 musi mieć odblokowaną dwukierunkową komunikację dla https w celu wysyłania i odbierania odpowiedzi. Dlatego zmiana z http na https: // najprawdopodobniej powinna rozwiązać problem.
źródło