Hi, I have a docker-compose.yml with three services (guacamole, guacd, postgres). Guacamole has a port forwarding from 8085 to 8080.
If a request comes from the same network 192.168.178.0/24 (e.g. nginx reverse proxy), the correct IP address is displayed as the source IP.
If a request comes from the 192.168.2.0/24 network (e.g. a client that is allowed to enter the DMZ directly via a firewall rule; no NAT), Guacamole displays the IP of the Docker gateway as the source IP.
I’m a bit at a loss at the moment. I’m not sure why in one case the correct IP is displayed and in the other case the IP of the Docker Gateway
Thanks for any help
+---------------------+ SRC-IP: 172.22.0.1
| 192.168.2.20 |-----------------------
| Random Client | |
+---------------------+ |
| Port: 8085
+--------------------+
| 192.168.178.20 |
| Server with Docker |
+--------------------+
| Port: 8085
+---------------------+ |
| 192.168.178.50 | |
| nginx reverse proxy |-----------------------
+---------------------+ SRC-IP: 192.168.178.50
docker-compose.yml
version: '3.8'
services:
guacdb:
container_name: guacamoledb
image: postgres:15-alpine
restart: unless-stopped
environment:
...
volumes:
- './db-data:/var/lib/postgresql/data'
guacd:
container_name: guacd
image: guacamole/guacd:1.5.4
restart: unless-stopped
ports:
- 4822:4822
guacamole:
container_name: guacamole
image: guacamole/guacamole:1.5.4
restart: unless-stopped
ports:
- 8085:8080
environment:
...
depends_on:
- guacdb
- guacd
volumes:
db-data:
/etc/daemon.json
{
"debug": true,
"ipv6": false,
"userland-proxy": false
}