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:
@@ -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+
|
||||
|
||||
Reference in New Issue
Block a user