nginx正向代理

server {  
    listen 8080;  
    resolver 1.1.1.1; 
    location / {  
        proxy_bind $server_addr;   #绑定请求的出口ip
        # proxy_bind $remote_addr transparent; #这行很关键,启用透明代理
        # proxy_set_header X-Real-IP $remote_addr; #这行是可选,把客户端IP头加到http自定义字段而已
        proxy_pass $scheme://$http_host$request_uri;
        proxy_set_header Host $http_host;
        proxy_buffers 256 4k;
        proxy_max_temp_file_size 0k; 
        proxy_connect_timeout 30;
        proxy_send_timeout 60;
        proxy_read_timeout 60;
        proxy_next_upstream error timeout invalid_header http_502;
        proxy_set_header Upgrade                        $http_upgrade;
        proxy_set_header Connection             "upgrade";
    }  
deny 127.0.0.1;
}

连接那个IP 出口就是那个 IP

 

nginx打印IP方法

location /myip {
    default_type text/plain;
    return 200 "$remote_addr\n";
}

 

验证脚本

#!/bin/bash
TARGET_URL="验证地址/ip"  # 建议加 https
while read -r proxy; do
    # 使用 curl 测试代理,获取返回 IP
    result=$(curl -s -x "http://$proxy:8080" --connect-timeout 3 --max-time 5 "$TARGET_URL")
    if [ "$result" = "$proxy" ]; then
        echo "$result ✅"
    else
        echo "$proxy ❌ ($result)"
    fi
done

方法bash shell.sh <ip_list.txt

 

 

随机ip方案,需要oepnresty+lua来支持

access_by_lua_block {
    local ips = {
        "192.168.1.10",
        "192.168.1.11",
        "192.168.1.12",
        ...
    }

    local ip = ips[math.random(#ips)]
    ngx.var.local_bind_ip = ip
}


proxy_bind $local_bind_ip;

添加新评论 »