У меня есть сервер L2TP, настроенный с помощью docker-compose, и nginx для фильтрации определенных хостов по имени хоста, но когда я пытаюсь подключиться, nginx читает исходный IP-адрес, а не IP-адрес, передаваемый через VPN.
Nginx показывает x.x.x.x
вместо 192.168.x.x
для IP.
В результате он выдает ошибку 403 (forbidden)
, когда я пытаюсь подключиться к любому удаленному IP, который не является таковымЯ разрешил, даже когда подключен к VPN, и даже когда VPN дает мне IP-адрес, такой как 192.168.43.12
И когда я пытаюсь network_mode: host
на VPN, он вообще не может маршрутизировать любой веб-трафик.
docker-compose.yml:
services:
vpn:
image: hwdsl2/ipsec-vpn-server
restart: always
env_file:
- ../config/vpn/vpn.env
ports:
- "500:500/udp"
- "4500:4500/udp"
- "1701:1701/udp"
privileged: true
hostname: example.com
volumes:
- /lib/modules:/lib/modules:ro
nginx:
build: ../config/nginx
restart: unless-stopped
ports:
- "80:80"
network_mode: host
nginx site conf:
server {
listen *:80;
server_name bt.example.com;
index index.html;
access_log /dev/stdout upstreamlog;
error_log /dev/stderr debug;
location / {
allow 127.0.0.1;
allow 192.168.0.0/16;
#allow x.x.x.x; # one remote IP I want to allow, normally uncommented
deny all;
proxy_pass http://localhost:9091;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}