====== Zugriff auf lokale Webseiten ======
[[it_entwicklung:netzwerk_zugriff:tailscale:start|← Tailscale]] · [[:start|Startseite]]
----
Über Tailscale können die auf **EasyRider** betriebenen lokalen Webseiten auch von außerhalb des eigenen Heimnetzes aufgerufen werden.
Der Zugriff erfolgt über das private Tailscale-Netz. Eine Portfreigabe am Internet-Router ist nicht erforderlich.
===== Voraussetzungen =====
Damit der Zugriff funktioniert, müssen sowohl EasyRider als auch das zugreifende Gerät mit Tailscale verbunden sein.
Auf **EasyRider** müssen außerdem Apache und die benötigten lokalen Dienste laufen.
===== EasyRider =====
Für den Zugriff müssen auf EasyRider folgende Voraussetzungen erfüllt sein:
* EasyRider ist eingeschaltet.
* Eine Internetverbindung besteht.
* Tailscale läuft und ist verbunden.
* XAMPP ist gestartet.
* Apache läuft.
EasyRider ist über MagicDNS unter folgendem Namen erreichbar:
`easyrider`
===== Smartphone =====
Auf dem Smartphone muss Tailscale installiert und mit demselben Tailscale-Netz wie EasyRider verbunden sein.
Vor dem Zugriff:
- Internetverbindung über WLAN oder Mobilfunk herstellen.
- Tailscale starten.
- Prüfen, dass Tailscale **Connected** anzeigt.
- Browser öffnen.
- Gewünschte Webseite über die entsprechende Adresse aufrufen.
Eine Exit Node wird für diesen Zugriff nicht benötigt.
Die Einstellung **Choose exit node** kann auf **None** bleiben.
===== Webseiten und Ports =====
Die lokalen Webseiten werden über getrennte Apache-Ports bereitgestellt.
^ Webseite ^ Port ^ Adresse über Tailscale ^
| **RoWaWiki** | 8081 | `http://easyrider:8081` |
| **TheCruiserWiki** | 8082 | `http://easyrider:8082` |
| **TheCruiserBlog** | 8083 | `http://easyrider:8083` |
===== Apache – zusätzliche Ports =====
Apache muss auf den verwendeten Ports lauschen.
In:
`E:\xampp\apache\conf\httpd.conf`
sind folgende Einträge vorhanden:
Listen 80
Listen 8081
Listen 8082
Listen 8083
Port 80 wird weiterhin für die normalen lokalen VirtualHosts verwendet.
Die Ports 8081 bis 8083 dienen dem Zugriff über Tailscale.
===== Apache – RoWaWiki =====
In:
`E:\xampp\apache\conf\extra\httpd-vhosts.conf`
ist für RoWaWiki folgender zusätzlicher VirtualHost eingerichtet:
# ============================================================
# RoWaWiki – Zugriff über Tailscale
# ============================================================
DocumentRoot "E:/xampp/htdocs/rowawiki"
Options FollowSymLinks
AllowOverride All
Require ip 100.64.0.0/10
DirectoryIndex index.php index.html
ErrorLog "logs/rowawiki-tailscale-error.log"
CustomLog "logs/rowawiki-tailscale-access.log" combined
===== Apache – TheCruiserWiki =====
Für TheCruiserWiki ist folgender zusätzlicher VirtualHost eingerichtet:
# ============================================================
# TheCruiserWiki – Zugriff über Tailscale
# ============================================================
DocumentRoot "E:/xampp/htdocs/thecruiserwiki"
Options FollowSymLinks
AllowOverride All
Require ip 100.64.0.0/10
DirectoryIndex index.php index.html
ErrorLog "logs/thecruiserwiki-tailscale-error.log"
CustomLog "logs/thecruiserwiki-tailscale-access.log" combined
===== Apache – TheCruiserBlog =====
Für TheCruiserBlog ist folgender zusätzlicher VirtualHost eingerichtet:
# ============================================================
# TheCruiserBlog – Zugriff über Tailscale
# ============================================================
DocumentRoot "E:/xampp/htdocs/thecruiserblog"
Options FollowSymLinks
AllowOverride All
Require ip 100.64.0.0/10
DirectoryIndex index.php index.html
ErrorLog "logs/thecruiserblog-tailscale-error.log"
CustomLog "logs/thecruiserblog-tailscale-access.log" combined
===== Lokale VirtualHosts =====
Die normalen lokalen VirtualHosts auf Port 80 bleiben vom Tailscale-Zugriff getrennt.
Sie verwenden weiterhin:
Require local
Dadurch bleiben die bisherigen lokalen Adressen erhalten:
* `http://rowawiki.local`
* `http://thecruiserwiki.local`
* `http://thecruiserblog.local`
===== WordPress – TheCruiserBlog =====
WordPress verwendet lokal weiterhin:
`http://thecruiserblog.local`
als WordPress- und Website-Adresse.
Damit WordPress beim Zugriff über Tailscale CSS, JavaScript, Bilder und andere Ressourcen über die richtige Adresse ausliefert, wurde in:
`E:\xampp\htdocs\thecruiserblog\wp-config.php`
vor:
/* That's all, stop editing! Happy publishing. */
folgender Block ergänzt:
/* Zugriff über Tailscale */
if ( isset($_SERVER['HTTP_HOST']) && $_SERVER['HTTP_HOST'] === 'easyrider:8083' ) {
define( 'WP_HOME', 'http://easyrider:8083' );
define( 'WP_SITEURL', 'http://easyrider:8083' );
}
Dadurch kann dieselbe WordPress-Installation über beide Adressen verwendet werden:
^ Verwendung ^ Adresse ^
| Lokal auf EasyRider | `http://thecruiserblog.local` |
| Über Tailscale | `http://easyrider:8083` |
===== Sicherheit =====
Die Tailscale-VirtualHosts verwenden:
Require ip 100.64.0.0/10
Damit akzeptiert Apache für diese VirtualHosts nur Verbindungen aus dem von Tailscale verwendeten IPv4-Adressbereich.
Es wurde **keine Portfreigabe am Internet-Router** eingerichtet.
Die Webseiten werden daher nicht über diese Ports direkt für das öffentliche Internet bereitgestellt.
===== Nach Änderungen an Apache =====
Nach Änderungen an `httpd.conf` oder `httpd-vhosts.conf` muss Apache neu gestartet werden.
Im XAMPP Control Panel:
- Apache **Stop**
- kurz warten
- Apache **Start**
Anschließend prüfen, ob Apache wieder ordnungsgemäß läuft.
===== Fehlerbehebung =====
Wenn eine Webseite von unterwegs nicht erreichbar ist, zunächst folgende Punkte prüfen:
- Ist EasyRider eingeschaltet?
- Hat EasyRider eine Internetverbindung?
- Läuft Tailscale auf EasyRider?
- Ist EasyRider in Tailscale erreichbar?
- Läuft Apache in XAMPP?
- Hat das Smartphone eine Internetverbindung?
- Ist Tailscale auf dem Smartphone **Connected**?
- Wird die richtige Adresse einschließlich Port verwendet?
Beispiel für RoWaWiki:
`http://easyrider:8081`
Ein Aufruf von:
`http://easyrider`
ohne Port führt nicht zu einem der speziell eingerichteten Tailscale-VirtualHosts.
===== Schnellübersicht =====
**EasyRider:**
`Einschalten → Internet → Tailscale verbunden → Apache starten`
**Smartphone:**
`Internet → Tailscale Connected → Browser → Webseite aufrufen`
^ Anwendung ^ Adresse ^
| **RoWaWiki** | `http://easyrider:8081` |
| **TheCruiserWiki** | `http://easyrider:8082` |
| **TheCruiserBlog** | `http://easyrider:8083` |
[[#zugriff_auf_lokale_webseiten|↑]]