目前我在Ubuntu 20.04 VPS中安装了Pihole(v5.12.2(。我已经安装了Nginx作为TLS上DNS的反向代理,它运行良好,但在Pihole的日志中,由于Nginx没有转发每个客户端的真实IP,所有内容都显示为127.0.0.1。
这是我目前的配置:
upstream dns-servers
{
server 127.0.0.1:53;
}
server {
listen 853 ssl;
ssl_certificate /etc/letsencrypt/live/domainname.here/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/domainname.here/privkey.pem;
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers HIGH:!aNULL:!MD5;
ssl_handshake_timeout 10s;
ssl_session_cache shared:SSL:20m;
ssl_session_timeout 4h;
proxy_pass dns-servers;
proxy_responses 1;
proxy_timeout 1s;
}
如果我尝试为proxy_set_header
或real_ip_header
添加指令,我会得到消息directive is not allowed here
。我还尝试使用这个指令proxy_bind $remote_addr transparent;
,尽管它被接受了,但它会导致每个请求都超时。
转发客户端真实IP以便Pihole正确接收的正确方法是什么?
在nginxserver
上下文中添加proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
,在pi孔doh-server.conf
中添加log_guessed_client_ip = true