Server-Config UI (aktiv/passiv) und Port-Forwarding Tipps in README

- FTP-Tab: Server Configuration mit Active/Passive Radio-Buttons
- Passive Mode: Port-Range konfigurierbar (Default 30000-31000)
- Apply-Button startet Pure-FTPd automatisch neu
- Helper-Script: serverconfig show/active/passive Kommandos
- sudoers: systemctl restart, tee und rm für Pure-FTPd Config
- README: Port-Forwarding Anleitung für Windows (netsh) und Linux (socat/iptables)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-04-04 19:39:24 +02:00
parent 32d95bb334
commit 2c2c5c7821
6 changed files with 383 additions and 7 deletions
+90
View File
@@ -211,6 +211,96 @@ kde-dolphin-ftp-sharing-tab/
| `ro` | Read Only — nur Download |
| `rw` | Read-Write — Upload und Download |
## Tipps: Port-Forwarding für FTP
### Szenario
Ein Gerät (z.B. ein Dokumentenscanner) soll per FTP auf den Server scannen, hat aber **keinen direkten Zugang** zum Server-Netzwerk (z.B. VPN). Ein Windows- oder Linux-Rechner, der in **beiden Netzen** hängt, leitet die FTP-Ports weiter.
```
Scanner ──► Windows/Linux (Port-Forwarding) ──► VPN ──► FTP-Server
```
### Aktiver Modus (empfohlen für Port-Forwarding)
Im aktiven Modus müssen nur **2 Ports** weitergeleitet werden: **20** (Daten) und **21** (Steuerung).
### Passiver Modus
Im passiven Modus muss zusätzlich die **gesamte Port-Range** weitergeleitet werden (z.B. 30000-31000). Das ist aufwändiger, aber nötig wenn aktiver Modus nicht funktioniert.
### Windows: Port-Forwarding mit netsh
Als Administrator in der Eingabeaufforderung (cmd):
```batch
:: Aktiver Modus — Port 21 (Steuerung) und Port 20 (Daten) weiterleiten
netsh interface portproxy add v4tov4 listenport=21 listenaddress=0.0.0.0 connectport=21 connectaddress=<SERVER-VPN-IP>
netsh interface portproxy add v4tov4 listenport=20 listenaddress=0.0.0.0 connectport=20 connectaddress=<SERVER-VPN-IP>
:: Passiver Modus — zusätzlich die Port-Range weiterleiten
:: (PowerShell, da netsh keine Ranges unterstützt)
for ($p=30000; $p -le 31000; $p++) { netsh interface portproxy add v4tov4 listenport=$p listenaddress=0.0.0.0 connectport=$p connectaddress=<SERVER-VPN-IP> }
```
**Windows-Firewall öffnen:**
```batch
netsh advfirewall firewall add rule name="FTP Active" dir=in action=allow protocol=TCP localport=20,21
:: Für passiven Modus zusätzlich:
netsh advfirewall firewall add rule name="FTP Passive" dir=in action=allow protocol=TCP localport=30000-31000
```
**Port-Forwarding anzeigen / entfernen:**
```batch
:: Alle Weiterleitungen anzeigen
netsh interface portproxy show all
:: Einzelne Weiterleitung entfernen
netsh interface portproxy delete v4tov4 listenport=21 listenaddress=0.0.0.0
:: Alle Weiterleitungen entfernen
netsh interface portproxy reset
```
### Linux: Port-Forwarding mit iptables oder socat
**Variante 1: socat (einfach, gut zum Testen)**
```bash
# Aktiver Modus
sudo socat TCP-LISTEN:21,fork,reuseaddr TCP:<SERVER-VPN-IP>:21 &
sudo socat TCP-LISTEN:20,fork,reuseaddr TCP:<SERVER-VPN-IP>:20 &
# Passiver Modus — zusätzlich Port-Range
for p in $(seq 30000 31000); do
sudo socat TCP-LISTEN:$p,fork,reuseaddr TCP:<SERVER-VPN-IP>:$p &
done
```
**Variante 2: iptables (performanter, dauerhaft)**
```bash
# IP-Forwarding aktivieren
sudo sysctl -w net.ipv4.ip_forward=1
# Aktiver Modus
sudo iptables -t nat -A PREROUTING -p tcp --dport 21 -j DNAT --to-destination <SERVER-VPN-IP>:21
sudo iptables -t nat -A PREROUTING -p tcp --dport 20 -j DNAT --to-destination <SERVER-VPN-IP>:20
sudo iptables -t nat -A POSTROUTING -j MASQUERADE
# Passiver Modus — zusätzlich Port-Range
sudo iptables -t nat -A PREROUTING -p tcp --dport 30000:31000 -j DNAT --to-destination <SERVER-VPN-IP>
```
**Dauerhaft speichern:**
```bash
sudo apt install iptables-persistent
sudo netfilter-persistent save
```
## Lizenz
GPLv2+