From 5a036c6687542f59c4063e9cf71f4922e876b579 Mon Sep 17 00:00:00 2001 From: hhf Date: Sat, 7 Dec 2024 15:36:34 +0530 Subject: [PATCH] Add README.md --- README.md | 228 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 228 insertions(+) create mode 100644 README.md diff --git a/README.md b/README.md new file mode 100644 index 0000000..b9fcff6 --- /dev/null +++ b/README.md @@ -0,0 +1,228 @@ +![image.png](/attachments/bea0d886-4b8c-43a4-9fc6-a52b096a9c36) + +## Prerequisites + +Before starting, ensure you have: +- An Unraid server +- A VPS (preferably in Dallas for optimal routing) +- Tailscale installed on both Unraid and VPS +- Root/sudo access on both machines +- Basic command line knowledge + +## Part 1: Initial Setup + +### On Both Machines + +1. First, install Tailscale if you haven't already: + - On Unraid: Install from Community Applications + - On VPS: Follow installation guide at [Tailscale's website](https://tailscale.com/download) + +2. Log into Tailscale on both machines: + ```bash + tailscale up + ``` + +3. Note down the Tailscale IPs: + ```bash + tailscale ip -4 + ``` + Save both IPs - you'll need them later. + +## Part 2: Unraid Configuration + +### Step 1: Create the Configuration Script + +1. SSH into your Unraid server or use the terminal from the web interface. + +2. Create a new directory for our scripts: + ```bash + mkdir -p /boot/custom/scripts + cd /boot/custom/scripts + ``` + +3. Create the configuration script: + ```bash + nano unraid-config.sh + ``` + +4. Copy the Unraid script from above into this file. + +### Step 2: Configure the Script + +1. Modify these variables in the script: + ```bash + VPS_IP="your.vps.ip.address" + GAME_SUBNET="172.16.0.0/24" # Adjust if your subnet is different + ``` + +2. Make the script executable: + ```bash + chmod +x unraid-config.sh + ``` + +### Step 3: Run the Configuration + +1. Execute the script: + ```bash + ./unraid-config.sh + ``` + +2. Watch for any error messages in green or red text. + +### Step 4: Make Configuration Persistent + +1. Create a startup script: + ```bash + nano /boot/config/go + ``` + +2. Add this line: + ```bash + /boot/custom/scripts/unraid-config.sh + ``` + +3. Make it executable: + ```bash + chmod +x /boot/config/go + ``` + +## Part 3: VPS Configuration + +### Step 1: Initial VPS Setup + +1. SSH into your VPS: + ```bash + ssh username@your.vps.ip + ``` + +2. Create a directory for the script: + ```bash + mkdir ~/scripts + cd ~/scripts + ``` + +### Step 2: Create the Configuration Script + +1. Create the script file: + ```bash + nano vps-config.sh + ``` + +2. Copy the VPS script from above into this file. + +### Step 3: Configure the Script + +1. Modify these variables: + ```bash + UNRAID_TAILSCALE_IP="your.unraid.tailscale.ip" + WAN_INTERFACE="eth0" # Change if your interface is different + ``` + +2. Make the script executable: + ```bash + chmod +x vps-config.sh + ``` + +### Step 4: Run the Configuration + +1. Execute the script: + ```bash + sudo ./vps-config.sh + ``` + +2. Check for any error messages. + +## Part 4: Verification and Testing + +### Step 1: Check Connectivity + +1. From your Unraid server, ping the VPS through Tailscale: + ```bash + ping your.vps.tailscale.ip + ``` + +2. From the VPS, ping your Unraid server: + ```bash + ping your.unraid.tailscale.ip + ``` + +### Step 2: Test Game Server Ports + +1. Check if the ports are open: + ```bash + # On VPS + sudo netstat -tulpn | grep LISTEN + ``` + +2. Test UDP ports (8766, 8767, 16261, 19132): + ```bash + # From another machine + nc -uvz your.vps.ip 8766 + ``` + +3. Test TCP port ranges (16262, 27015-27050, 25500-25600): + ```bash + nc -vz your.vps.ip 27015 + ``` + +## Common Issues and Troubleshooting + +### Issue 1: Ports Not Forwarding +- Check iptables rules: + ```bash + sudo iptables -L -n -v + sudo iptables -t nat -L -n -v + ``` +- Verify IP forwarding is enabled: + ```bash + cat /proc/sys/net/ipv4/ip_forward + ``` + +### Issue 2: Tailscale Connectivity +- Check Tailscale status: + ```bash + tailscale status + ``` +- Verify routes: + ```bash + ip route show + ``` + +### Issue 3: Game Server Can't Connect +- Check server logs +- Verify firewall rules +- Ensure correct IP forwarding +- Check Tailscale ACLs + +## Maintenance + +### Regular Checks +1. Monitor system logs: + ```bash + journalctl -f + ``` + +2. Check iptables rules periodically: + ```bash + sudo iptables-save > rules-backup.txt + ``` + +3. Keep Tailscale updated on both machines. + +## Security Considerations + +1. Keep SSH ports secured and use key-based authentication +2. Regularly update both Unraid and VPS systems +3. Monitor traffic patterns for unusual activity +4. Keep backups of your configuration files +5. Use strong passwords for all services + +## Conclusion + +Your game server routing setup should now be complete and working. This configuration provides: +- Secure routing through Tailscale +- Proper traffic separation +- Optimized game server connectivity +- Persistent configuration across reboots + +Remember to test thoroughly before deploying game servers, and always keep backups of your configurations.