When ssl_first=1 (default), proxy validation first attempts an SSL handshake. If it fails, falls back to the configured secondary check (head, judges, or irc). This separates SSL capability detection from basic connectivity testing. New config options: - ssl_first: enable SSL-first pattern (default: 1) - checktype: secondary check type (head, judges, irc)
164 lines
3.2 KiB
Plaintext
164 lines
3.2 KiB
Plaintext
# PPF Configuration
|
|
# Copy this file to config.ini and adjust as needed.
|
|
|
|
[common]
|
|
# Comma-separated list of Tor SOCKS5 proxy addresses
|
|
tor_hosts = 127.0.0.1:9050
|
|
|
|
# Network timeouts (seconds)
|
|
timeout_connect = 10
|
|
timeout_read = 15
|
|
|
|
# Enable cProfile profiling (writes to data/profile.stats)
|
|
profiling = 0
|
|
|
|
[watchd]
|
|
# Proxy validation daemon settings
|
|
|
|
# Database file for proxy storage
|
|
database = proxies.sqlite
|
|
|
|
# SSL-first mode: try SSL handshake first, fallback to secondary check on failure
|
|
ssl_first = 1
|
|
|
|
# Secondary check type (used when ssl_first fails, or as primary when ssl_first=0)
|
|
# judges - HTTP judge servers that echo back request headers
|
|
# irc - IRC server connection test (port 6667)
|
|
# head - HTTP HEAD request test (port 80)
|
|
checktype = head
|
|
|
|
# Thread configuration
|
|
threads = 50
|
|
min_threads = 5
|
|
|
|
# Timeout for proxy test connections (seconds)
|
|
timeout = 15
|
|
|
|
# Adaptive timeout: extra time per failure (seconds)
|
|
timeout_fail_inc = 1.5
|
|
timeout_fail_max = 15
|
|
|
|
# Number of failures before proxy marked dead
|
|
max_fail = 5
|
|
|
|
# Check intervals (seconds)
|
|
checktime = 1800
|
|
perfail_checktime = 3600
|
|
|
|
# Minimum success rate to accept results (percentage)
|
|
outage_threshold = 4.0
|
|
|
|
# Batch size for database writes
|
|
submit_after = 200
|
|
|
|
# Days before removing dead proxies
|
|
stale_days = 30
|
|
|
|
# Seconds between stats reports (0 = disabled)
|
|
stats_interval = 300
|
|
|
|
# Re-test old (previously dead) proxies
|
|
oldies = 0
|
|
oldies_checktime = 43200
|
|
oldies_multi = 10
|
|
|
|
# Server list file for IRC/head checks
|
|
source_file = servers.txt
|
|
|
|
# Enable Tor circuit health monitoring
|
|
tor_safeguard = 1
|
|
|
|
# Thread scaling
|
|
scale_cooldown = 10
|
|
scale_threshold = 10.0
|
|
|
|
# Debug output
|
|
debug = 0
|
|
|
|
[ppf]
|
|
# URL harvester settings
|
|
|
|
# Database file (usually same as watchd)
|
|
database = proxies.sqlite
|
|
|
|
# Number of URL fetcher threads
|
|
threads = 3
|
|
|
|
# Timeout for URL fetches (seconds)
|
|
timeout = 15
|
|
|
|
# HTTP connection retries
|
|
http_retries = 1
|
|
|
|
# Check intervals for URLs (seconds)
|
|
checktime = 3600
|
|
perfail_checktime = 3600
|
|
|
|
# Number of failures before URL marked dead
|
|
max_fail = 5
|
|
|
|
# Only extract URLs from same domain
|
|
extract_samedomain = 0
|
|
|
|
# Max age in days for proxy list URLs
|
|
# URLs older than this that never produced proxies are skipped
|
|
list_max_age_days = 7
|
|
|
|
# Debug output
|
|
debug = 0
|
|
|
|
[scraper]
|
|
# Search engine scraper settings
|
|
|
|
# Enable scraper
|
|
enabled = 1
|
|
|
|
# Number of scraper threads
|
|
threads = 3
|
|
|
|
# Search engines: searx, duckduckgo, startpage, brave, ecosia,
|
|
# mojeek, qwant, yandex, github, gitlab, codeberg, gitea
|
|
engines = searx,duckduckgo,github
|
|
|
|
# Query mode: p=proxies, s=search, w=websites (combine: psw)
|
|
query = psw
|
|
|
|
# Max pages to fetch per query
|
|
max_pages = 5
|
|
|
|
# Rate limiting: backoff delays (seconds)
|
|
backoff_base = 30
|
|
backoff_max = 3600
|
|
fail_threshold = 2
|
|
|
|
# LibreTranslate for multilingual queries (optional)
|
|
libretranslate_enabled = 0
|
|
libretranslate_url = https://lt.mymx.me/translate
|
|
|
|
# Debug output
|
|
debug = 0
|
|
|
|
[httpd]
|
|
# Web dashboard settings
|
|
|
|
# Enable web dashboard
|
|
enabled = 1
|
|
|
|
# Listen address (use 0.0.0.0 for all interfaces)
|
|
listenip = 127.0.0.1
|
|
|
|
# Listen port
|
|
port = 8081
|
|
|
|
[worker]
|
|
# Distributed worker settings (for --worker mode)
|
|
|
|
# Proxies per work batch
|
|
batch_size = 100
|
|
|
|
# Heartbeat interval in seconds
|
|
heartbeat = 60
|
|
|
|
# Seconds before unclaimed work is released
|
|
claim_timeout = 300
|