如果需要,设置域名
NaiveProxy 是一个简单的 HTTP 代理,适合快速搭建反向代理,配置 NaiveProxy 的步骤如下:
安装 NaiveProxy
安装 NaiveProxy 可以通过以下命令安装(假设您使用 Ubuntu/Debian 系统):
sudo apt-get install naiveproxy
配置 NaiveProxy
配置文件位于 /etc/naiveproxy.conf,默认路径为 /etc/naiveproxy.conf,如果文件不存在,NaiveProxy 会生成一个默认配置。
1 更改监听地址和端口
默认情况下,NaiveProxy监听在 ...:808,如果您希望它监听在特定地址和端口,请修改配置文件:
listen_address = 0...:808
2 启用 HTTPS
如果您希望 NaiveProxy 支持 HTTPS,需要启用 SSL 模块,并配置证书。
2.1 使用 Let's Encrypt 获取证书
安装 certbot:
sudo apt-get install python3-certbot python3
使用 Certbot 生成证书:
sudo certbot --versionsudo certbot auth
2.2 配置 SSL
在 NaiveProxy 配置文件中添加或启用 SSL 模块:
ssl = on ssl_certificate = /etc/letsencrypt/live/yourdomain.com/fullchain.pem ssl_private_key = /etc/letsencrypt/live/yourdomain.com/privkey.pem
2.3 启用 HTTPS
在配置文件中启用 HTTPS:
https = on
3 配置域名和路径映射
在 reverse_proxies 部分添加域名和路径映射:
reverse_proxies = [
{
"source": "example.com",
"url": "/app",
"tls": {
"enable": true,
"host": "app.example.com",
"cert_file": "/etc/letsencrypt/live/app.example.com/fullchain.pem",
"key_file": "/etc/letsencrypt/live/app.example.com/privkey.pem"
}
}
]
启动 NaiveProxy
启动 NaiveProxy 服务:
sudo systemctl start naiveproxy
验证配置
验证 NaiveProxy 是否正确运行,可以使用以下命令:
curl -I http://localhost:808
配置防火墙(iptables)
为了确保 NaiveProxy 可以通过防火墙:
1 Ubuntu/Debian
如果使用 Ubuntu/Debian,可以执行以下命令:
sudo iptables -A NAT -o eth -j DNAT --to-destination 192.168.1.1:80 sudo iptables -A POSTROUTING -o eth -j MASQUERADE
2 CentOS/Fedora
如果使用 CentOS/Fedora:
sudo iptables -t nat -A POSTROUTING -o eth -j MASQUERADE sudo iptables -A NAT -o eth -j DNAT --to-source 192.168.1.1
定期更新证书
使用 certbot 定期更新证书:
sudo certbot renew
监控与日志
可以使用以下工具监控 NaiveProxy:
1 Prometheus + Grafana
安装 Prometheus 和 Grafana:
sudo apt-get install prometheus grafana
配置 Prometheus 汇集器:
scrape_configs:
- job: 'naiveproxy'
scrape_interval: 5m
metrics_path: '/metrics'
scheme: http
target: localhost:808
2 日志处理
使用 logrotate 管理日志:
sudo apt-get install logrotate
配置日志旋转:
sudo nano /etc/logrotate.conf
/var/log/naiveproxy.log {
daily
size 1024K
max 5 days
create 0644
owner root
group root
rotate 5
compress
}
高级配置
1 添加过滤器
在 filters 部分添加过滤器:
filters = [
{
"name": "size_limit",
"options": {
"max_size": 1048576
}
}
]
2 添加前置脚本
在 filters 中添加前置脚本:
filters = [
{
"name": "replace_header",
"options": {
"headers": [
{
"key": "X-Frame-Options",
"value": "DENY"
}
]
}
}
]
故障排除
- 证书错误:检查证书文件是否正确安装。
- 权限问题:确保 NaiveProxy 运行用户有足够的权限。
- 防火墙问题:检查防火墙规则是否正确允许 NaiveProxy 穿透。
- 配置保存不正确:确保配置文件格式正确,避免语法错误。
使用命令行管理
- 启动:
sudo systemctl start naiveproxy - 停止:
sudo systemctl stop naiveproxy - 重载:
sudo systemctl reload naiveproxy
其他注意事项
- NaiveProxy 不支持所有 HTTP 特性,可能需要其他代理来处理复杂的需求。
- 建议为每个域名或应用程序单独配置,以避免配置冲突。
通过以上步骤,您可以成功配置并管理 NaiveProxy 服务器。
