# 8. Stały adres serwera

## Po co stały adres

Urządzenia znajdują serwer VPN po jego adresie, a router przekazuje port VPN na adres serwera w Twojej sieci. Jeśli
serwer dostaje adres z DHCP, adres może się zmienić (po restarcie albo gdy router przydzieli inny). Wtedy router
przekazuje ruch do niewłaściwej maszyny, nic się nie łączy, a interfejs WWW „przeprowadza się” pod inny adres.
Tunnelry ostrzega o tym na Pulpicie i na stronie **Serwer VPN**.

**Rezerwacja w routerze** (router zawsze daje tej maszynie ten sam adres) pomaga, ale nie jest w pełni niezawodna:
router może ją zapomnieć, zostać zresetowany lub wymieniony. Najpewniejszy jest stały adres ustawiony na samym
serwerze. Można zrobić jedno i drugie.

## Zanim zaczniesz

Rób to na **konsoli maszyny** (albo konsoli maszyny wirtualnej), nie przez SSH: połączenie zerwie się przy zmianie
adresu. Zbierz na serwerze potrzebne informacje:

```bash
ip -4 -br addr
ip route | grep default
```

Pierwsze polecenie pokazuje nazwę interfejsu sieciowego (na przykład `ens18`) oraz jego adres i maskę. Drugie pokazuje
bramę, zwykle Twój router. Potem wybierz nowy adres w tej samej sieci, którego nikt nie używa: musi leżeć **poza zakresem**
wydawanym przez DHCP routera (sprawdź ustawienia DHCP w routerze) i nie może odpowiadać na ping, zanim go ustawisz:

```bash
ping -c 2 192.168.17.50
```

W przykładach poniżej użyto interfejsu `ens18`, adresu `192.168.17.50`, bramy `192.168.17.1` i sieci
`192.168.17.0/24`; zamień je na swoje.

## Debian 13

Debian ustawia sieć w pliku `/etc/network/interfaces`. Zrób kopię i otwórz plik:

```bash
sudo cp /etc/network/interfaces /etc/network/interfaces.bak
sudo nano /etc/network/interfaces
```

Zamień linie interfejsu, w których jest `dhcp`, na:

```
allow-hotplug ens18
iface ens18 inet static
    address 192.168.17.50/24
    gateway 192.168.17.1
```

Serwery DNS ustawia się osobno:

```bash
printf "nameserver 192.168.17.1\nnameserver 1.1.1.1\n" | sudo tee /etc/resolv.conf
```

Zastosuj zmianę (w tym miejscu sesja SSH by się zerwała):

```bash
sudo systemctl restart networking
```

## Ubuntu 24.04

Ubuntu używa netplan. Znajdź plik i otwórz go (nazwa bywa różna):

```bash
ls /etc/netplan
sudo nano /etc/netplan/50-cloud-init.yaml
```

Ustaw interfejs tak (zachowaj wcięcia dokładnie, spacjami, nigdy tabulatorami):

```
network:
  version: 2
  ethernets:
    ens18:
      dhcp4: false
      addresses: [192.168.17.50/24]
      routes:
        - to: default
          via: 192.168.17.1
      nameservers:
        addresses: [192.168.17.1, 1.1.1.1]
```

Wypróbuj z automatyczną drogą powrotu: jeśli nie potwierdzisz w ciągu dwóch minut, netplan sam przywróci stare
ustawienia, więc pomyłka nie zamknie Ci dostępu:

```bash
sudo netplan try
```

Jeśli wszystko działa, naciśnij Enter, aby zostawić zmianę. Gdy maszyna powstała z obrazu chmurowego, cloud-init może
przy następnym starcie przywrócić stare ustawienia; wyłącz to poleceniem:

```bash
echo "network: {config: disabled}" | sudo tee /etc/cloud/cloud.cfg.d/99-disable-network-config.cfg
```

## Po zmianie

1. Sprawdź nowy adres i połączenie: `ip -4 -br addr` oraz `ping -c 2 1.1.1.1`.
2. **Zmień przekierowanie portu w routerze** (i rezerwację, jeśli ją masz) na nowy adres serwera.
3. Otwórz interfejs WWW pod nowym adresem, na przykład `https://192.168.17.50:8443`. Jego certyfikat powstał dla starego
   adresu, więc przeglądarka znów ostrzeże. Aby wystawić certyfikat dla nowego adresu, uruchom instalator jeszcze raz
   z `--address 192.168.17.50` (zob. [instalacja](https://tunnelry.com/pl/docs/install/index.md)); wszystkie dane zostają.
4. Otwórz **Serwer VPN** w Tunnelry: ostrzeżenie o DHCP powinno zniknąć w ciągu minuty, a Pulpit pokaże adres jako stały.

## Gdy stracisz dostęp

Konsola maszyny (lub maszyny wirtualnej w hipernadzorcy) zawsze działa. Przywróć stare ustawienia i zrestartuj sieć:

```bash
sudo cp /etc/network/interfaces.bak /etc/network/interfaces
sudo systemctl restart networking
```

Na Ubuntu, jeśli użyłeś `netplan try`, wystarczy poczekać: stare ustawienia wrócą po dwóch minutach.

Dalej: [odinstalowanie i rozwiązywanie problemów](https://tunnelry.com/pl/docs/uninstall-and-troubleshooting/index.md).
