Skip to content

Instantly share code, notes, and snippets.

@cotin18
Created April 4, 2021 15:23
Show Gist options
  • Select an option

  • Save cotin18/719b8938bfed3c70af8c0d9357bf302f to your computer and use it in GitHub Desktop.

Select an option

Save cotin18/719b8938bfed3c70af8c0d9357bf302f to your computer and use it in GitHub Desktop.
Build a backend instance for Minecraft packet forwarding
#!/bin/bash
export EXPOSED_PORT=25565
export BACKEND_HOST=10.10.10.10:25565
cat <<END | sudo tee /etc/sysctl.d/55-enable-ip-forward.conf
# `/sbin/sysctl net.ipv4.ip_forward`
net.ipv4.ip_forward = 1
END
sudo sysctl -p /etc/sysctl.d/55-enable-ip-forward.conf
curl -L git.io/deploy-google-bbr.sh | sudo bash
curl -L git.io/deploy-iptables.sh.dev | sudo bash
cat <<END | sudo tee -a /etc/iptables/rules.v4
*nat
:PREROUTING ACCEPT [0:0]
:INPUT ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
:POSTROUTING ACCEPT [0:0]
# Port Forwarding
-A PREROUTING -p tcp -m tcp --dport 25565 -j DNAT --to-destination 10.10.10.10
-A POSTROUTING -j MASQUERADE
COMMIT
END
sudo sed -i "s/20\/s/1\/s/" /etc/iptables/rules.v4
sudo sed -i "s/25565/${EXPOSED_PORT}/" /etc/iptables/rules.v4
sudo sed -i "s/10.10.10.10/${BACKEND_HOST}/" /etc/iptables/rules.v4
sudo sed -ri "s/(-A .+ connlimit)/#\1/" /etc/iptables/rules.v4
sudo systemctl restart netfilter-persistent
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment