安装必要软件
-
安装操作系统
- CentOS:
sudo yum update -y
- Ubuntu:
sudo apt update -y && sudo apt upgrade -y
- CentOS:
-
安装Nginx
- CentOS:
sudo yum install -y nginx
- Ubuntu:
sudo apt install -y nginx
- CentOS:
-
安装iproxy(ippool)
- CentOS:
sudo yum install -y ipool
- Ubuntu:
sudo apt install -y ipool
- CentOS:
-
安装Python(可选)
- CentOS:
sudo yum install -y python3
- Ubuntu:
sudo apt install -y python3
- CentOS:
配置Nginx
-
创建配置文件
-
打开Nginx配置文件:
sudo nano /etc/nginx/nginx.conf
-
events {} http { server { listen 80; proxy_pass http://localhost:8008; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; keepalive 1; } } -
保存并退出(Ctrl+O,Y)。
-
-
启用并重启Nginx
sudo systemctl enable nginx sudo systemctl restart nginx
创建代理池
-
初始化代理池
ippool init 192.168.1./24 100
- 参数:
168.1./24(指定A类网段),100(可用IP数量)。
- 参数:
-
更新代理池
ippool update
-
配置Nginx使用代理池
- 打开Nginx配置文件:
sudo nano /etc/nginx/sites-enabled/default
- 在
server块内添加以下内容:proxy.Proxy "iproxy 192.168.1./24"; proxy_pass 127...1:8008;
- 打开Nginx配置文件:
设置防火墙
-
CentOS(iptables)
sudo iptables -A NAT -d 0.../ -j DNAT --to-destination 127...1:8008 sudo iptables -A FORWARD -i eth -j ACCEPT sudo service iptables save sudo service iptables restart
-
Ubuntu(firewalld)
sudo firewallctl --permanent --add-service=http --add-port=80/tcp sudo firewallctl --permanent --add-service=https --add-port=443/tcp sudo firewallctl --permanent --add-masquerade sudo firewallctl --permanent --add-forward --source 0.../ --destination 10.../24 sudo firewallctl --reload
测试配置
-
检查Nginx配置
sudo nginx -t
-
使用curl测试
curl -I http://代理IP:80
- 期望返回
200 OK。
- 期望返回
-
使用telnet测试
telnet代理IP:80
按回回车,若连接成功,会显示空白屏幕。
高可用性和负载均衡
-
设置keepalive
- 修改Nginx配置:
proxy_pass http://localhost:8008; proxy_set_header Connection "keepalive";
- 修改Nginx配置:
-
负载均衡策略
- 修改Nginx配置:
proxy_pass http://localhost:8008; proxy_balance 1; proxy_hash_level 1;
- 修改Nginx配置:
优化配置
-
启用缓存
- 修改Nginx配置:
proxy_cache_path /var/cache/nginx/cache levels=1:2 keys_zone=cache:10m max_size=1g inactive=60m use_temp_path=off;
- 修改Nginx配置:
-
启用Gzip
gzip on;
-
日志管理
access_log /var/log/nginx/access.log;
安全配置
-
访问控制列表(ACL)
allow 192.168.1./24; deny all;
-
启用SSL
- 修改Nginx配置:
ssl on; ssl_protocols TLSv1 TLSv1.2 TLSv1.3; ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256; ssl_prefer_server_ciphers on; ssl_session_cache shared:10:10m;
- 修改Nginx配置:
-
密钥管理
- 创建证书:
sudo openssl req -x509 -newkey rsa:2048 -keyout server.key -out server.crt -days 365 -nodes
- 配置Nginx:
ssl_certificate server.crt; ssl_private_key server.key;
- 创建证书:
注意事项
-
防火墙规则
确保代理IP和真实服务器所在的网络允许通信。
-
真实服务器负载
确保真实服务器具备足够的处理能力,避免过载。
-
监控和维护
- 定期监控系统状态,及时处理问题。
- 使用脚本自动化代理池管理,如:
import ipool ip = ipool.get() print(ip.ip)
-
清理代理池
- 定期使用
ippool clean清理无效IP。
- 定期使用
通过以上步骤,您可以成功配置代理IP,实现IP隐藏和反向代理,确保每一步配置正确,并根据实际需求调整参数。









