Skip to content

Łączenie się z maszyną developerską spoza maszyny macierzystej (WiP)

AThit7 edited this page Jul 1, 2024 · 7 revisions

W czasie pracy nad projektem może zajść potrzeba wyświetlenia strony na urządzeniu mobilnym. Co prawda większość popularnych przeglądarek oferuje responsive design mode – możliwość zasymulowania widoku strony tak jak gdyby wyświetlana była na urządzeniu mobilnym, ale z różnych przyczyn może on nie być wystarczający. W takiej sytuacji można połączyć się z serwerem developerskim z dowolnego urządzenia w naszej sieci lokalnej.

Łączenie się z maszyną macierzystą

Na wielu urządzaniach (zwłaszcza działających na Ubuntu lub Windowsie), może okazać się, że żadna dodatkowa konfiguracja nie jest potrzebna. Możemy wówczas połączyć się z serwerem deweloperskim, wpisując w pole adresu przeglądarki np. 192.168.0.5:8000, gdzie 192.168.0.5 to przykładowy adres maszyny macierzystej a :8000 to port, na którym działa serwer. Zamiast adresu IP maszyny, możemy podać jej hostname – np. ubuntu:8000.

Na systemach Linux adres IP urządzenia i hostname można sprawdzić za pomocą następujących poleceń:

$ ip adress
$ hostnamectl hostname

Natomiast na systemach Windows za pomocą poleceń ipconfig i hostname.

Odblokowanie portu

Jeśli po wykonaniu powyższych instrukcji nie możemy połączyć się z serwerem, prawdopodobnie oznacza to, że nasz firewall blokuje to połączenie. W zależności od wykorzystywanego firewalla niezbędne będzie wykonanie innych poleceń, natomiast my ograniczymy się do programu iptables, który służy do konfiguracji zasad filtrowania pakietów firewalla wbudowanego w jądro Linuxa oraz do ufw, który jest prostszym frontendem dla iptabels.

Możemy sprawadzić czy nasz system korzysta z ufw za pomocą polecenia:

# ufw status

iptables

Jeśli nasz system nie korzysta z ufw, nie musimy go instalować lub włączać. Możemy skorzystać z podstawowego narzędzia, jakim jest iptabels.

W celu dodania zasady, która umożliwi konkretnemu urządzeniu łącznie się z portem 8000 maszyn macierzystej poprzez TCP, należy wykonać polecenie:

# iptables -A INPUT -p tcp --dport 8000 -s a.b.c.d -j ACCEPT

gdzie a.b.c.d to adres urządzenia, z którego chcemy się połączyć (np. 192.168.0.6). Możemy również pozwolić na połączenia z dowolnego urządzenia w sieci lokalnej. W tym celu jako adres należy podać adres podsieci np. 192.168.0.0/24.

W celu usunięcia dodanej w ten sposób zasady filtrowania korzystamy z podobnego polecania, jedyna zmiana to -D (delete) zamiast -A (append):

# iptables -D INPUT -p tcp --dport 8000 -s a.b.c.d -j ACCEPT

ufw

Korzystając z ufw, należy wykonać analogiczne polecenie:

# ufw allow from a.b.c.d to any port 8000 proto tcp

A w celu usunięcia zasady:

# ufw delete allow from a.b.c.d to any port 8000 proto tcp