我正在运行一个媒体艺术项目,使用 Rasp Pi 3 作为具有强制门户的无线接入点。我使用 iptables 将数据包重定向到 Sinatra,我可以获得设备发送的请求 URL。
问题是,如果用户的请求是 HTTPS 网站,如 Facebook、Google 或任何其他网站,显然无法读取数据包。
因此,我尝试构建一个反向端口并将 iptables 的重定向目标更改为 nginx 服务器,以便通过以下链接在 HTTPS 下解码请求 URL:http: //www.htpcguides.com/enforce-ssl-secure-nginx -反向代理-linux/
这就是我更改 iptables 的方式
sudo iptables -t nat -A PREROUTING -p tcp --dport 443 -j DNAT --to-destination 127.0.0.1:443
sudo iptables -t nat -A PREROUTING -p tcp --dport 53 -j DNAT --to-destination 127.0.0.1:53
sudo iptables -t nat -A PREROUTING -p tcp --dport 80 -j DNAT --to-destination 192.168.0.1:4567
这就是我配置我的 nginx 的方式:(端口 4567 是 sinatra 监听的)
server {
listen 80;
server_name 192.168.0.1 localhost;
return 301 http://192.168.0.1:4567;
access_log /var/log/nginx/backintime-access80.log;
error_log /var/log/nginx/backintime-error80.log;
}
server {
listen 443 ssl;
server_name 192.168.0.1 localhost;
root /home/backintime/new-back-in-time/public/;
ssl_certificate /etc/ssl/backintime.studio.ssl/backintime.studio.crt;
ssl_certificate_key /etc/ssl/backintime.studio.ssl/backintime.studio.key;
location / {
proxy_pass http://192.168.0.1:4567;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header client_ip $remote_addr;
proxy_set_header remote_ip $remote_addr;
}
access_log /var/log/nginx/backintime-access.log;
error_log /var/log/nginx/backintime-error.log;
}
现在我被困在这里。我认为 nginx 服务器无法识别我通过 iptables 重定向的数据包。其次是 proxy_pass 似乎没有向我的 sinatra 发送任何东西。
有没有其他方法可以解决这个问题?或者我工作的哪一部分是错的?
谢谢。