Nginx
有什麼辦法可以讓一定範圍內的一組ip訪問我的網站?(Nginx)
假設,我想允許訪問我的項目的 IP 位於 192.168.1.1 和 192.168.1.40 之間。
Nginx 範例:
stream { #... server { listen 12345; deny 192.168.1.2; allow 192.168.1.1/24; allow 2001:0db8::/32; deny all; } }
我必須分別允許每個 IP,或者是否有任何技術可以訪問給定範圍內的 IP?
allow
anddeny
語句按順序進行評估,直到找到匹配項,因此您可以對 5 個連續語句施加嚴格的to192.168.1.1
inclusive192.168.1.40
範圍。例如:
deny 192.168.1.0; allow 192.168.1.0/27; allow 192.168.1.32/29; allow 192.168.1.40; deny all;
192.168.1.0/27
表示包含,第一個地址被前面的語句明確拒絕192.168.1.0
。192.168.1.31
192.168.1.32/29
代表包容192.168.1.32
。192.168.1.39
對於
192.168.1.130
to的範圍192.168.1.190
,首先查看最後一個字節的二進製表示:130 = 10000010 190 = 10111110
所以這可以通過允許
10xxxxxx
但首先拒絕1000000x
和來表示10111111
。例如:
deny 192.168.1.128/31; deny 192.168.1.191; allow 192.168.1.128/26; deny all;