Proxyproto ist eine leichtgewichtige Bibliothek, die älteren Programmen hilft, mit dem Proxy-Protokoll umzugehen. Es unterstützt sowohl IPv4 als auch IPv6.
Funktioniert unter Linux und macOS
Es gibt viele veraltete Programme, die das Proxy-Protokoll nicht unterstützen (insbesondere Closed-Source-Programme). Wenn sie hinter einem Load-Balancer oder Reserve-Proxy laufen, ist es schwierig, die Quell-IP-Adresse beizubehalten.
Proxyproto fängt den Prozess accept()
ab, wartet auf eine neue eingehende Verbindung und lauscht auf den Proxy-Protokoll-Header vom Upstream-Proxy (z. B. HAProxy, NGINX …).
Sobald der Header gelesen wurde, ersetzt Proxyproto die Quell-IP durch die vom Upstream-Proxy bereitgestellte IP.
git clone --depth=1 https://github.com/ba0f3/proxyproto.nim.git proxyproto
cd proxyproto
nim c -d:release src/proxyproto
Direkt in einem Nim-Programm verwenden, das eingehende Verbindungen akzeptiert
import proxyproto
Für bestehende Programme verwenden Sie LD_PRELOAD
$LD_PRELOAD =./src/libproxyproto.so nc -vkl -p 4444
[PROXY] initializing
[PROXY] hook accept OK
listening on [any] 4444 ...
Kauf mir etwas Bier https://paypal.me/ba0f3