{"id":207,"date":"2023-03-29T20:33:05","date_gmt":"2023-03-29T19:33:05","guid":{"rendered":"http:\/\/192.168.41.160:8081\/?p=207"},"modified":"2026-02-05T13:53:16","modified_gmt":"2026-02-05T12:53:16","slug":"haproxy-tcp-proxy-minecraft","status":"publish","type":"post","link":"https:\/\/timo-brunn.de\/index.php\/2023\/03\/29\/haproxy-tcp-proxy-minecraft\/","title":{"rendered":"Goodbye NGINX: Wie Ich HAProxy als TCP Proxy Benutze"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<div class=\"wp-block-columns alignwide is-layout-flex wp-container-core-columns-is-layout-3a88641f wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\"><div class=\"has-text-align-right wp-block-post-date\"><time datetime=\"2023-03-29T20:33:05+02:00\">M\u00e4rz 29, 2023<\/time><\/div>\n\n\n<h2 class=\"wp-block-heading\">Vorwort<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Ich habe mich vor kurzen von einem meiner NGINX Reverse Proxy&#8217;s verabschiedet und diesen gegen einen<a rel=\"noreferrer noopener\" href=\"http:\/\/192.168.41.160:8081\/index.php\/2023\/03\/06\/haproxy-reverse-proxy-ssl-termination-ip-forwarding\/\" target=\"_blank\"> HAProxy ersetzt.<\/a><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">In letzter Zeit habe ich versucht, das Deployment von meinen Minecraft Servern zu vereinfachen.<br>Seit einiger Weile benutze ich hier einen auf das Spiel zugeschnittenen Proxy. Dieser funktioniert leider nicht mit allen Versionen.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">HAProxy besitzt zwei grundlegende Modi, in denen der Proxy arbeiten kann. HTTP und TCP.<br>Minecraft nutzt f\u00fcr die Kommunikation mit dem Client (im Gegensatz zu vielen anderen Spielen) das TCP Protokoll.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Da HAProxy TCP Paketdaten analysieren kann, k\u00f6nnen wir damit, auf Basis des Payloads, Pakete weiterleiten (oder auch blockieren)<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">TCP Analyse <\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Als Erstes m\u00fcssen wir einen Punkt im TCP Paket finden, mit dem wir erkennen, welchen Server der Client versucht zu erreichen.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Hierf\u00fcr f\u00fchre ich auf meinem Server entsprechend den <a rel=\"noreferrer noopener\" href=\"https:\/\/www.tcpdump.org\/manpages\/tcpdump.1.html\" data-type=\"URL\" data-id=\"https:\/\/www.tcpdump.org\/manpages\/tcpdump.1.html\" target=\"_blank\">TCPDUMP <\/a>Befehl aus: (Wireshark auf dem Client funktioniert auch entsprechend)<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"bash\" class=\"language-bash\">sudo tcpdump -i enp6s0.2 -Q in -w .\/tcpdump.pcap 'tcp port 61400'<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Mein Server l\u00e4uft hier auf Port 61400.<br>Meine Netzwerkkarte den Namen &#8222;enp6s0.2&#8220;<br>Der Output von TCPDUMP wird unter dem aktuellen Pfad als tcpdump.pcap gespeichert.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Die PCAP-Datei k\u00f6nnen wir dann in Wireshark \u00f6ffnen.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Bei Minecraft sendet der Client eine Anfrage an den Port mit dem angefragten FQDN im Payload (Payload = Data).<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"388\" src=\"http:\/\/192.168.41.160:8081\/wp-content\/uploads\/2023\/03\/image-1-1-1024x388.jpg\" alt=\"\" class=\"wp-image-227\" srcset=\"https:\/\/timo-brunn.de\/wp-content\/uploads\/2023\/03\/image-1-1-1024x388.jpg 1024w, https:\/\/timo-brunn.de\/wp-content\/uploads\/2023\/03\/image-1-1-300x114.jpg 300w, https:\/\/timo-brunn.de\/wp-content\/uploads\/2023\/03\/image-1-1-768x291.jpg 768w, https:\/\/timo-brunn.de\/wp-content\/uploads\/2023\/03\/image-1-1.jpg 1168w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Das ist perfekt, da das Paket nur einer Session angeh\u00f6ren muss, damit wir die gesamte Session umleiten k\u00f6nnen.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Anlegen der HAProxy Konfiguration<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Anhand des Pakets habe ich nun eine Konfiguration f\u00fcr HAProxy angelegt.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"toml\" class=\"language-toml\">frontend minecraft\n   mode tcp #Den Modus auf TCP setzen\n   bind :25565 #Minecraft nutzt standardm\u00e4\u00dfig den Port 25565\n\n   tcp-request inspect-delay 100ms #Verz\u00f6gert die Zustellung zum Backend, damit Pakete analysiert werden k\u00f6nnen\n   acl is_test req.payload(5,0) -m sub test.mc.sleepeehead.club #Siehe unter dieser box\n   tcp-request content accept if WAIT_END #Akzeptiert das TCP Paket, wenn der inspect-delay erreicht ist\n   use_backend mc-test if is_test #Nutzt das backend \"mc-test\" wenn die ACL \"is_test\" OK zur\u00fcck gibt<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Das Sample req.payload hat 2 Werte, die wir ihm \u00fcbergeben k\u00f6nnen. Der erste ist das Offset Byte aka ab welcher Stelle der Wert beginnt mit dem wir vergleichen. Der zweite gibt die L\u00e4nge an. 0 = Maximale L\u00e4nge<br>Ich empfehle, die L\u00e4nge entsprechend zu w\u00e4hlen. Das beschleunigt die Verarbeitung.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">In meinem Payload sind die Daten wie folgend:<br>1f00f80518746573742e6d632e736c6565706565686561642e636c756263dd01<br><br>Mit dem Offset 5, beginnt es ab der Hexstelle nr. 5 (aka 6. Stelle). Also sieht der Wert mit dem HAProxy die ACL bearbeitet so aus:<br>746573742e6d632e736c6565706565686561642e636c756263dd01<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">In ASCII sieht das dann so aus: (manche Kontrollzeichen fehlen)<br>test.mc.sleepeehead.clubc\u00dd\u0001<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Der Wert wird von HAProxy automatisch in ASCII umgewandelt und kann direkt mit -m sub verglichen werden.<br>Wer das Vergleichen in HEX machen m\u00f6chte, kann das so:<br>acl is_test req.payload(5,0)<strong>,<\/strong><em><strong>hex<\/strong> <\/em>-m sub 746573742e6d632e736c6565706565686561642e636c7562<br><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Weitere Erkl\u00e4rung gibts hier:<br><a rel=\"noreferrer noopener\" href=\"https:\/\/cbonte.github.io\/haproxy-dconv\/2.6\/configuration.html#req.payload\" target=\"_blank\">https:\/\/cbonte.github.io\/haproxy-dconv\/2.6\/configuration.html#req.payload<\/a><br>und hier:<br><a rel=\"noreferrer noopener\" href=\"https:\/\/cbonte.github.io\/haproxy-dconv\/2.6\/configuration.html#7.1.3\" target=\"_blank\">https:\/\/cbonte.github.io\/haproxy-dconv\/2.6\/configuration.html#7.1.3<\/a><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Das Backend k\u00f6nnen wir ganz simpel anlegen:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"toml\" class=\"language-toml\">backend mc-test\n  mode tcp\n  server mc-test 192.168.4.20:61400<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Falls der Server im Backend das <a rel=\"noreferrer noopener\" href=\"https:\/\/www.haproxy.com\/blog\/use-the-proxy-protocol-to-preserve-a-clients-ip-address\/\" data-type=\"URL\" data-id=\"https:\/\/www.haproxy.com\/blog\/use-the-proxy-protocol-to-preserve-a-clients-ip-address\/\" target=\"_blank\">Proxy-Protokoll<\/a> spricht, kann sogar die eigentliche Client-IP \u00fcbertragen werden.<br>Bei Minecraft kann das der Velocity Proxy.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Das kann aktiviert werden, indem man send-proxy der Server Zeile hinzuf\u00fcgt:<br>server mc-test 192.168.4.20:61400 <strong><em>send-proxy<\/em><\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Dann wieder die Konfiguration pr\u00fcfen<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"bash\" class=\"language-bash\">sudo haproxy -f \/etc\/haproxy\/haproxy.cfg -c<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">und dann den HAProxy reloaden<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"bash\" class=\"language-bash\">sudo systemctl reload haproxy<\/code><\/pre>\n<\/div>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>Vorwort Ich habe mich vor kurzen von einem meiner NGINX Reverse Proxy&#8217;s verabschiedet und diesen gegen einen HAProxy ersetzt. In letzter Zeit habe ich versucht, das Deployment von meinen Minecraft Servern zu vereinfachen.Seit einiger Weile benutze ich hier einen auf das Spiel zugeschnittenen Proxy. Dieser funktioniert leider nicht mit allen Versionen. HAProxy besitzt zwei grundlegende [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[12,31,6,32],"tags":[15,14,29,19,25,33,20,21,34,35,30],"class_list":["post-207","post","type-post","status-publish","format-standard","hentry","category-german","category-linux","category-reverse-proxy","category-ubuntu","tag-deutsch","tag-german","tag-haproxy","tag-ip-forwarding","tag-ip-weiterleitung","tag-minecraft","tag-proxy","tag-reverse-proxy","tag-tcp-proxy","tag-tcpdump","tag-ubuntu"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 4.9.9 - aioseo.com -->\n\t<meta name=\"description\" content=\"Vorwort Ich habe mich vor kurzen von einem meiner NGINX Reverse Proxy&#039;s verabschiedet und diesen gegen einen HAProxy ersetzt. In letzter Zeit habe ich versucht, das Deployment von meinen Minecraft Servern zu vereinfachen.Seit einiger Weile benutze ich hier einen auf das Spiel zugeschnittenen Proxy. Dieser funktioniert leider nicht mit allen Versionen. HAProxy besitzt zwei grundlegende\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"timo\"\/>\n\t<meta name=\"keywords\" content=\"deutsch,german,haproxy,ip forwarding,ip weiterleitung,minecraft,proxy,reverse proxy,tcp proxy,tcpdump,ubuntu,linux\" \/>\n\t<link rel=\"canonical\" href=\"https:\/\/timo-brunn.de\/index.php\/2023\/03\/29\/haproxy-tcp-proxy-minecraft\/\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 4.9.9\" \/>\n\t\t<meta property=\"og:locale\" content=\"de_DE\" \/>\n\t\t<meta property=\"og:site_name\" content=\"Timo Brunn - IT-Service in Enterprise-Qualit\u00e4t\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"Goodbye NGINX: Wie Ich HAProxy als TCP Proxy Benutze - Timo Brunn\" \/>\n\t\t<meta property=\"og:description\" content=\"Vorwort Ich habe mich vor kurzen von einem meiner NGINX Reverse Proxy&#039;s verabschiedet und diesen gegen einen HAProxy ersetzt. In letzter Zeit habe ich versucht, das Deployment von meinen Minecraft Servern zu vereinfachen.Seit einiger Weile benutze ich hier einen auf das Spiel zugeschnittenen Proxy. Dieser funktioniert leider nicht mit allen Versionen. HAProxy besitzt zwei grundlegende\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/timo-brunn.de\/index.php\/2023\/03\/29\/haproxy-tcp-proxy-minecraft\/\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/timo-brunn.de\/wp-content\/uploads\/2024\/09\/logo-e1726011270432.png\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/timo-brunn.de\/wp-content\/uploads\/2024\/09\/logo-e1726011270432.png\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2023-03-29T19:33:05+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2026-02-05T12:53:16+00:00\" \/>\n\t\t<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n\t\t<meta name=\"twitter:title\" content=\"Goodbye NGINX: Wie Ich HAProxy als TCP Proxy Benutze - Timo Brunn\" \/>\n\t\t<meta name=\"twitter:description\" content=\"Vorwort Ich habe mich vor kurzen von einem meiner NGINX Reverse Proxy&#039;s verabschiedet und diesen gegen einen HAProxy ersetzt. In letzter Zeit habe ich versucht, das Deployment von meinen Minecraft Servern zu vereinfachen.Seit einiger Weile benutze ich hier einen auf das Spiel zugeschnittenen Proxy. Dieser funktioniert leider nicht mit allen Versionen. HAProxy besitzt zwei grundlegende\" \/>\n\t\t<meta name=\"twitter:image\" content=\"https:\/\/timo-brunn.de\/wp-content\/uploads\/2024\/09\/logo-e1726011270432.png\" \/>\n\t\t<script type=\"application\/ld+json\" class=\"aioseo-schema\">\n\t\t\t{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"BlogPosting\",\"@id\":\"https:\\\/\\\/timo-brunn.de\\\/index.php\\\/2023\\\/03\\\/29\\\/haproxy-tcp-proxy-minecraft\\\/#blogposting\",\"name\":\"Goodbye NGINX: Wie Ich HAProxy als TCP Proxy Benutze - Timo Brunn\",\"headline\":\"Goodbye NGINX: Wie Ich HAProxy als TCP Proxy Benutze\",\"author\":{\"@id\":\"https:\\\/\\\/timo-brunn.de\\\/index.php\\\/author\\\/timo\\\/#author\"},\"publisher\":{\"@id\":\"https:\\\/\\\/timo-brunn.de\\\/#organization\"},\"image\":{\"@type\":\"ImageObject\",\"url\":\"http:\\\/\\\/192.168.41.160:8081\\\/wp-content\\\/uploads\\\/2023\\\/03\\\/image-1-1-1024x388.jpg\",\"@id\":\"https:\\\/\\\/timo-brunn.de\\\/index.php\\\/2023\\\/03\\\/29\\\/haproxy-tcp-proxy-minecraft\\\/#articleImage\"},\"datePublished\":\"2023-03-29T20:33:05+02:00\",\"dateModified\":\"2026-02-05T13:53:16+01:00\",\"inLanguage\":\"de-DE\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/timo-brunn.de\\\/index.php\\\/2023\\\/03\\\/29\\\/haproxy-tcp-proxy-minecraft\\\/#webpage\"},\"isPartOf\":{\"@id\":\"https:\\\/\\\/timo-brunn.de\\\/index.php\\\/2023\\\/03\\\/29\\\/haproxy-tcp-proxy-minecraft\\\/#webpage\"},\"articleSection\":\"German, Linux, Reverse Proxy, Ubuntu, deutsch, german, HAProxy, ip forwarding, IP weiterleitung, minecraft, proxy, reverse proxy, tcp proxy, tcpdump, ubuntu\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/timo-brunn.de\\\/index.php\\\/2023\\\/03\\\/29\\\/haproxy-tcp-proxy-minecraft\\\/#breadcrumblist\",\"itemListElement\":[{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/timo-brunn.de#listItem\",\"position\":1,\"name\":\"Zu Hause\",\"item\":\"https:\\\/\\\/timo-brunn.de\",\"nextItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/timo-brunn.de\\\/index.php\\\/category\\\/netzwerk\\\/#listItem\",\"name\":\"Netzwerk\"}},{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/timo-brunn.de\\\/index.php\\\/category\\\/netzwerk\\\/#listItem\",\"position\":2,\"name\":\"Netzwerk\",\"item\":\"https:\\\/\\\/timo-brunn.de\\\/index.php\\\/category\\\/netzwerk\\\/\",\"nextItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/timo-brunn.de\\\/index.php\\\/category\\\/netzwerk\\\/reverse-proxy\\\/#listItem\",\"name\":\"Reverse Proxy\"},\"previousItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/timo-brunn.de#listItem\",\"name\":\"Zu Hause\"}},{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/timo-brunn.de\\\/index.php\\\/category\\\/netzwerk\\\/reverse-proxy\\\/#listItem\",\"position\":3,\"name\":\"Reverse Proxy\",\"item\":\"https:\\\/\\\/timo-brunn.de\\\/index.php\\\/category\\\/netzwerk\\\/reverse-proxy\\\/\",\"nextItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/timo-brunn.de\\\/index.php\\\/2023\\\/03\\\/29\\\/haproxy-tcp-proxy-minecraft\\\/#listItem\",\"name\":\"Goodbye NGINX: Wie Ich HAProxy als TCP Proxy Benutze\"},\"previousItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/timo-brunn.de\\\/index.php\\\/category\\\/netzwerk\\\/#listItem\",\"name\":\"Netzwerk\"}},{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/timo-brunn.de\\\/index.php\\\/2023\\\/03\\\/29\\\/haproxy-tcp-proxy-minecraft\\\/#listItem\",\"position\":4,\"name\":\"Goodbye NGINX: Wie Ich HAProxy als TCP Proxy Benutze\",\"previousItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/timo-brunn.de\\\/index.php\\\/category\\\/netzwerk\\\/reverse-proxy\\\/#listItem\",\"name\":\"Reverse Proxy\"}}]},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/timo-brunn.de\\\/#organization\",\"name\":\"Timo Brunn\",\"description\":\"IT-Service in Enterprise-Qualit\\u00e4t\",\"url\":\"https:\\\/\\\/timo-brunn.de\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https:\\\/\\\/timo-brunn.de\\\/wp-content\\\/uploads\\\/2024\\\/09\\\/logo_tiny.jpg\",\"@id\":\"https:\\\/\\\/timo-brunn.de\\\/index.php\\\/2023\\\/03\\\/29\\\/haproxy-tcp-proxy-minecraft\\\/#organizationLogo\",\"width\":100,\"height\":72},\"image\":{\"@id\":\"https:\\\/\\\/timo-brunn.de\\\/index.php\\\/2023\\\/03\\\/29\\\/haproxy-tcp-proxy-minecraft\\\/#organizationLogo\"},\"sameAs\":[\"https:\\\/\\\/instagram.com\\\/computerswithtimo\",\"https:\\\/\\\/www.linkedin.com\\\/in\\\/timo-brunn-a7954126a\\\/\",\"https:\\\/\\\/github.com\\\/ComputersWithTimo\\\/\"]},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/timo-brunn.de\\\/index.php\\\/author\\\/timo\\\/#author\",\"url\":\"https:\\\/\\\/timo-brunn.de\\\/index.php\\\/author\\\/timo\\\/\",\"name\":\"timo\",\"image\":{\"@type\":\"ImageObject\",\"@id\":\"https:\\\/\\\/timo-brunn.de\\\/index.php\\\/2023\\\/03\\\/29\\\/haproxy-tcp-proxy-minecraft\\\/#authorImage\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/0bf07e6eb632b47b5b77100e335a73eb2fbae15619aa71509ec109103cde09de?s=96&d=mm&r=g\",\"width\":96,\"height\":96,\"caption\":\"timo\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/timo-brunn.de\\\/index.php\\\/2023\\\/03\\\/29\\\/haproxy-tcp-proxy-minecraft\\\/#webpage\",\"url\":\"https:\\\/\\\/timo-brunn.de\\\/index.php\\\/2023\\\/03\\\/29\\\/haproxy-tcp-proxy-minecraft\\\/\",\"name\":\"Goodbye NGINX: Wie Ich HAProxy als TCP Proxy Benutze - Timo Brunn\",\"description\":\"Vorwort Ich habe mich vor kurzen von einem meiner NGINX Reverse Proxy's verabschiedet und diesen gegen einen HAProxy ersetzt. In letzter Zeit habe ich versucht, das Deployment von meinen Minecraft Servern zu vereinfachen.Seit einiger Weile benutze ich hier einen auf das Spiel zugeschnittenen Proxy. Dieser funktioniert leider nicht mit allen Versionen. HAProxy besitzt zwei grundlegende\",\"inLanguage\":\"de-DE\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/timo-brunn.de\\\/#website\"},\"breadcrumb\":{\"@id\":\"https:\\\/\\\/timo-brunn.de\\\/index.php\\\/2023\\\/03\\\/29\\\/haproxy-tcp-proxy-minecraft\\\/#breadcrumblist\"},\"author\":{\"@id\":\"https:\\\/\\\/timo-brunn.de\\\/index.php\\\/author\\\/timo\\\/#author\"},\"creator\":{\"@id\":\"https:\\\/\\\/timo-brunn.de\\\/index.php\\\/author\\\/timo\\\/#author\"},\"datePublished\":\"2023-03-29T20:33:05+02:00\",\"dateModified\":\"2026-02-05T13:53:16+01:00\"},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/timo-brunn.de\\\/#website\",\"url\":\"https:\\\/\\\/timo-brunn.de\\\/\",\"name\":\"Timo Brunn\",\"description\":\"IT-Service in Enterprise-Qualit\\u00e4t\",\"inLanguage\":\"de-DE\",\"publisher\":{\"@id\":\"https:\\\/\\\/timo-brunn.de\\\/#organization\"}}]}\n\t\t<\/script>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"Goodbye NGINX: Wie Ich HAProxy als TCP Proxy Benutze - Timo Brunn","description":"Vorwort Ich habe mich vor kurzen von einem meiner NGINX Reverse Proxy's verabschiedet und diesen gegen einen HAProxy ersetzt. In letzter Zeit habe ich versucht, das Deployment von meinen Minecraft Servern zu vereinfachen.Seit einiger Weile benutze ich hier einen auf das Spiel zugeschnittenen Proxy. Dieser funktioniert leider nicht mit allen Versionen. HAProxy besitzt zwei grundlegende","canonical_url":"https:\/\/timo-brunn.de\/index.php\/2023\/03\/29\/haproxy-tcp-proxy-minecraft\/","robots":"max-image-preview:large","keywords":"deutsch,german,haproxy,ip forwarding,ip weiterleitung,minecraft,proxy,reverse proxy,tcp proxy,tcpdump,ubuntu,linux","webmasterTools":{"miscellaneous":""},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"BlogPosting","@id":"https:\/\/timo-brunn.de\/index.php\/2023\/03\/29\/haproxy-tcp-proxy-minecraft\/#blogposting","name":"Goodbye NGINX: Wie Ich HAProxy als TCP Proxy Benutze - Timo Brunn","headline":"Goodbye NGINX: Wie Ich HAProxy als TCP Proxy Benutze","author":{"@id":"https:\/\/timo-brunn.de\/index.php\/author\/timo\/#author"},"publisher":{"@id":"https:\/\/timo-brunn.de\/#organization"},"image":{"@type":"ImageObject","url":"http:\/\/192.168.41.160:8081\/wp-content\/uploads\/2023\/03\/image-1-1-1024x388.jpg","@id":"https:\/\/timo-brunn.de\/index.php\/2023\/03\/29\/haproxy-tcp-proxy-minecraft\/#articleImage"},"datePublished":"2023-03-29T20:33:05+02:00","dateModified":"2026-02-05T13:53:16+01:00","inLanguage":"de-DE","mainEntityOfPage":{"@id":"https:\/\/timo-brunn.de\/index.php\/2023\/03\/29\/haproxy-tcp-proxy-minecraft\/#webpage"},"isPartOf":{"@id":"https:\/\/timo-brunn.de\/index.php\/2023\/03\/29\/haproxy-tcp-proxy-minecraft\/#webpage"},"articleSection":"German, Linux, Reverse Proxy, Ubuntu, deutsch, german, HAProxy, ip forwarding, IP weiterleitung, minecraft, proxy, reverse proxy, tcp proxy, tcpdump, ubuntu"},{"@type":"BreadcrumbList","@id":"https:\/\/timo-brunn.de\/index.php\/2023\/03\/29\/haproxy-tcp-proxy-minecraft\/#breadcrumblist","itemListElement":[{"@type":"ListItem","@id":"https:\/\/timo-brunn.de#listItem","position":1,"name":"Zu Hause","item":"https:\/\/timo-brunn.de","nextItem":{"@type":"ListItem","@id":"https:\/\/timo-brunn.de\/index.php\/category\/netzwerk\/#listItem","name":"Netzwerk"}},{"@type":"ListItem","@id":"https:\/\/timo-brunn.de\/index.php\/category\/netzwerk\/#listItem","position":2,"name":"Netzwerk","item":"https:\/\/timo-brunn.de\/index.php\/category\/netzwerk\/","nextItem":{"@type":"ListItem","@id":"https:\/\/timo-brunn.de\/index.php\/category\/netzwerk\/reverse-proxy\/#listItem","name":"Reverse Proxy"},"previousItem":{"@type":"ListItem","@id":"https:\/\/timo-brunn.de#listItem","name":"Zu Hause"}},{"@type":"ListItem","@id":"https:\/\/timo-brunn.de\/index.php\/category\/netzwerk\/reverse-proxy\/#listItem","position":3,"name":"Reverse Proxy","item":"https:\/\/timo-brunn.de\/index.php\/category\/netzwerk\/reverse-proxy\/","nextItem":{"@type":"ListItem","@id":"https:\/\/timo-brunn.de\/index.php\/2023\/03\/29\/haproxy-tcp-proxy-minecraft\/#listItem","name":"Goodbye NGINX: Wie Ich HAProxy als TCP Proxy Benutze"},"previousItem":{"@type":"ListItem","@id":"https:\/\/timo-brunn.de\/index.php\/category\/netzwerk\/#listItem","name":"Netzwerk"}},{"@type":"ListItem","@id":"https:\/\/timo-brunn.de\/index.php\/2023\/03\/29\/haproxy-tcp-proxy-minecraft\/#listItem","position":4,"name":"Goodbye NGINX: Wie Ich HAProxy als TCP Proxy Benutze","previousItem":{"@type":"ListItem","@id":"https:\/\/timo-brunn.de\/index.php\/category\/netzwerk\/reverse-proxy\/#listItem","name":"Reverse Proxy"}}]},{"@type":"Organization","@id":"https:\/\/timo-brunn.de\/#organization","name":"Timo Brunn","description":"IT-Service in Enterprise-Qualit\u00e4t","url":"https:\/\/timo-brunn.de\/","logo":{"@type":"ImageObject","url":"https:\/\/timo-brunn.de\/wp-content\/uploads\/2024\/09\/logo_tiny.jpg","@id":"https:\/\/timo-brunn.de\/index.php\/2023\/03\/29\/haproxy-tcp-proxy-minecraft\/#organizationLogo","width":100,"height":72},"image":{"@id":"https:\/\/timo-brunn.de\/index.php\/2023\/03\/29\/haproxy-tcp-proxy-minecraft\/#organizationLogo"},"sameAs":["https:\/\/instagram.com\/computerswithtimo","https:\/\/www.linkedin.com\/in\/timo-brunn-a7954126a\/","https:\/\/github.com\/ComputersWithTimo\/"]},{"@type":"Person","@id":"https:\/\/timo-brunn.de\/index.php\/author\/timo\/#author","url":"https:\/\/timo-brunn.de\/index.php\/author\/timo\/","name":"timo","image":{"@type":"ImageObject","@id":"https:\/\/timo-brunn.de\/index.php\/2023\/03\/29\/haproxy-tcp-proxy-minecraft\/#authorImage","url":"https:\/\/secure.gravatar.com\/avatar\/0bf07e6eb632b47b5b77100e335a73eb2fbae15619aa71509ec109103cde09de?s=96&d=mm&r=g","width":96,"height":96,"caption":"timo"}},{"@type":"WebPage","@id":"https:\/\/timo-brunn.de\/index.php\/2023\/03\/29\/haproxy-tcp-proxy-minecraft\/#webpage","url":"https:\/\/timo-brunn.de\/index.php\/2023\/03\/29\/haproxy-tcp-proxy-minecraft\/","name":"Goodbye NGINX: Wie Ich HAProxy als TCP Proxy Benutze - Timo Brunn","description":"Vorwort Ich habe mich vor kurzen von einem meiner NGINX Reverse Proxy's verabschiedet und diesen gegen einen HAProxy ersetzt. In letzter Zeit habe ich versucht, das Deployment von meinen Minecraft Servern zu vereinfachen.Seit einiger Weile benutze ich hier einen auf das Spiel zugeschnittenen Proxy. Dieser funktioniert leider nicht mit allen Versionen. HAProxy besitzt zwei grundlegende","inLanguage":"de-DE","isPartOf":{"@id":"https:\/\/timo-brunn.de\/#website"},"breadcrumb":{"@id":"https:\/\/timo-brunn.de\/index.php\/2023\/03\/29\/haproxy-tcp-proxy-minecraft\/#breadcrumblist"},"author":{"@id":"https:\/\/timo-brunn.de\/index.php\/author\/timo\/#author"},"creator":{"@id":"https:\/\/timo-brunn.de\/index.php\/author\/timo\/#author"},"datePublished":"2023-03-29T20:33:05+02:00","dateModified":"2026-02-05T13:53:16+01:00"},{"@type":"WebSite","@id":"https:\/\/timo-brunn.de\/#website","url":"https:\/\/timo-brunn.de\/","name":"Timo Brunn","description":"IT-Service in Enterprise-Qualit\u00e4t","inLanguage":"de-DE","publisher":{"@id":"https:\/\/timo-brunn.de\/#organization"}}]},"og:locale":"de_DE","og:site_name":"Timo Brunn - IT-Service in Enterprise-Qualit\u00e4t","og:type":"article","og:title":"Goodbye NGINX: Wie Ich HAProxy als TCP Proxy Benutze - Timo Brunn","og:description":"Vorwort Ich habe mich vor kurzen von einem meiner NGINX Reverse Proxy's verabschiedet und diesen gegen einen HAProxy ersetzt. In letzter Zeit habe ich versucht, das Deployment von meinen Minecraft Servern zu vereinfachen.Seit einiger Weile benutze ich hier einen auf das Spiel zugeschnittenen Proxy. Dieser funktioniert leider nicht mit allen Versionen. HAProxy besitzt zwei grundlegende","og:url":"https:\/\/timo-brunn.de\/index.php\/2023\/03\/29\/haproxy-tcp-proxy-minecraft\/","og:image":"https:\/\/timo-brunn.de\/wp-content\/uploads\/2024\/09\/logo-e1726011270432.png","og:image:secure_url":"https:\/\/timo-brunn.de\/wp-content\/uploads\/2024\/09\/logo-e1726011270432.png","article:published_time":"2023-03-29T19:33:05+00:00","article:modified_time":"2026-02-05T12:53:16+00:00","twitter:card":"summary_large_image","twitter:title":"Goodbye NGINX: Wie Ich HAProxy als TCP Proxy Benutze - Timo Brunn","twitter:description":"Vorwort Ich habe mich vor kurzen von einem meiner NGINX Reverse Proxy's verabschiedet und diesen gegen einen HAProxy ersetzt. In letzter Zeit habe ich versucht, das Deployment von meinen Minecraft Servern zu vereinfachen.Seit einiger Weile benutze ich hier einen auf das Spiel zugeschnittenen Proxy. Dieser funktioniert leider nicht mit allen Versionen. HAProxy besitzt zwei grundlegende","twitter:image":"https:\/\/timo-brunn.de\/wp-content\/uploads\/2024\/09\/logo-e1726011270432.png"},"aioseo_meta_data":{"post_id":"207","title":null,"description":null,"keywords":null,"keyphrases":{"focus":{"keyphrase":"","score":0,"analysis":{"keyphraseInTitle":{"score":0,"maxScore":9,"error":1}}},"additional":[]},"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":"","og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"BlogPosting","isEnabled":true},"graphs":[]},"schema_type":"default","schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":"-1","robots_max_videopreview":"-1","robots_max_imagepreview":"large","priority":null,"frequency":"default","local_seo":null,"breadcrumb_settings":null,"limit_modified_date":false,"ai":{"faqs":[],"keyPoints":[],"titles":[],"descriptions":[],"socialPosts":{"email":[],"linkedin":[],"twitter":[],"facebook":[],"instagram":[]}},"created":"2024-09-10 23:18:41","updated":"2026-02-05 12:58:38","seo_analyzer_scan_date":null},"aioseo_breadcrumb":"<div class=\"aioseo-breadcrumbs\"><span class=\"aioseo-breadcrumb\">\n\t\t\t<a href=\"https:\/\/timo-brunn.de\" title=\"Zu Hause\">Zu Hause<\/a>\n\t\t<\/span><span class=\"aioseo-breadcrumb-separator\">&raquo;<\/span><span class=\"aioseo-breadcrumb\">\n\t\t\t<a href=\"https:\/\/timo-brunn.de\/index.php\/category\/netzwerk\/\" title=\"Netzwerk\">Netzwerk<\/a>\n\t\t<\/span><span class=\"aioseo-breadcrumb-separator\">&raquo;<\/span><span class=\"aioseo-breadcrumb\">\n\t\t\t<a href=\"https:\/\/timo-brunn.de\/index.php\/category\/netzwerk\/reverse-proxy\/\" title=\"Reverse Proxy\">Reverse Proxy<\/a>\n\t\t<\/span><span class=\"aioseo-breadcrumb-separator\">&raquo;<\/span><span class=\"aioseo-breadcrumb\">\n\t\t\tGoodbye NGINX: Wie Ich HAProxy als TCP Proxy Benutze\n\t\t<\/span><\/div>","aioseo_breadcrumb_json":[{"label":"Zu Hause","link":"https:\/\/timo-brunn.de"},{"label":"Netzwerk","link":"https:\/\/timo-brunn.de\/index.php\/category\/netzwerk\/"},{"label":"Reverse Proxy","link":"https:\/\/timo-brunn.de\/index.php\/category\/netzwerk\/reverse-proxy\/"},{"label":"Goodbye NGINX: Wie Ich HAProxy als TCP Proxy Benutze","link":"https:\/\/timo-brunn.de\/index.php\/2023\/03\/29\/haproxy-tcp-proxy-minecraft\/"}],"_links":{"self":[{"href":"https:\/\/timo-brunn.de\/index.php\/wp-json\/wp\/v2\/posts\/207","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/timo-brunn.de\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/timo-brunn.de\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/timo-brunn.de\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/timo-brunn.de\/index.php\/wp-json\/wp\/v2\/comments?post=207"}],"version-history":[{"count":26,"href":"https:\/\/timo-brunn.de\/index.php\/wp-json\/wp\/v2\/posts\/207\/revisions"}],"predecessor-version":[{"id":490,"href":"https:\/\/timo-brunn.de\/index.php\/wp-json\/wp\/v2\/posts\/207\/revisions\/490"}],"wp:attachment":[{"href":"https:\/\/timo-brunn.de\/index.php\/wp-json\/wp\/v2\/media?parent=207"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/timo-brunn.de\/index.php\/wp-json\/wp\/v2\/categories?post=207"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/timo-brunn.de\/index.php\/wp-json\/wp\/v2\/tags?post=207"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}