如何限制只允许内网访问

查看 96|回复 8
作者:cnit   
使用 status.example.com 解析到 123.123.666.666 (公网 ip) 后添加如下配置
nginx conf
server {
    listen 80;
    server_name status.example.com;
    charset utf-8;
         
    location / {
        proxy_pass http://192.168.1.167:3001;
                proxy_set_header   X-Real-IP $remote_addr;
                proxy_set_header   X-Forwarded-For $proxy_add_x_forwarded_for;
                proxy_set_header   Host $host;
                proxy_set_header   X-Forwarded-Host $host;
                proxy_http_version 1.1;
                proxy_set_header   Upgrade $http_upgrade;
                proxy_set_header   Connection "upgrade";
    }
       

    error_page 500 502 503 504 /50x.html;
    location = /50x.html {
        root /usr/share/nginx/html;
    }
}
现在想要 限制只允许同内网的机器访问 ,尝试过添加
# 优先允许内网中的特定 IP 地址
allow 192.168.0.199; # 或者你想要允许的内网 IP 地址
# 接着允许特定网段的 IP 范围访问
allow 192.168.0.0/23;
# 最后拒绝所有其他 IP 地址
deny all;
但是测试发现要么都是允许要么都是 403
网络路径是 status.example.com > 123.123.666.666 > 深信服 > 内网机器(nginx)

内网, Nginx, 允许

InDom   
但凡看一眼 log ...
中间夹了一道,所以你获取的客户端 IP 是 深信服 的 IP 。
不知道这个 深信服 有没有在流量中添加源 IP 。
NessajCN   
你直接只监听内网 ip 不就好了
listen 80;
改成
listen :80;
9113946   
端口没映射到外网,你是怎么做到外网能访问的?
InDom   
@InDom 还有一个问题,如果你引导用户使用 公网 IP 访问,那么你获取的应该也是客户端的公网 IP 才对?
cnit
OP
  
@InDom

192.168.0.1 - [11/Dec/2023:17:43:13 +0800] "GET / HTTP/1.1" status.example.com 200 200 2012 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/110.0.0.0 Safari/537.36" - - 192.168.1.167:3001 0.031 0.031
日志是这样的
@NessajCN
这样的我试过,还说不能 reload 要完全退出在再启动,实际测试依然无效
cnit
OP
  
应该是 192.168.0.1 这个问题了 手机用 5G 流量访问也是这个
NessajCN   
@cnit 你配置没写对吧,是不是 sites-enabled 里面的配置把外面的覆盖了
ondeay   
内网的机器是通过外网 ip 访问你这个网址,allow 应该配置的是公司的出口公网 ip ,而不是内网 ip
您需要登录后才可以回帖 登录 | 立即注册

返回顶部