如何设置反向代理游戏服务器?

如何设置反向代理游戏服务器?

我首先在 Reddit 上发布了这个问题,在与他们禁止我的管理员讨论后,该问题被删除了。所以我决定尝试一下这个社区。如果您没有时间或不想请忽略我的消息。

我一直在尝试为 Team-speak、Rust 和未来的项目提供抗 ddos​​ 攻击。我不想使用 15 欧元的托管提供商,因为我已经拥有一个强大的服务器,用于诸如 minecraft:tcpshield、网站:Cloudflare 等。一切都已经很好了,我需要的只是一些保护(通过 vps 路由流量)。所以我花了 4 欧元买了最便宜的 vps 并打算用它作为反向代理。我目前正在使用天蓝色。我已经尝试过的东西有(nginxstream、GRE、UFW nat、iptables)但没有用。

(不支持GRE,只能通过艰难的方式找到)

(nginx)

stream {
upstream rust {
    server my_ip:28015;
}

server {
    listen 28015;
proxy_pass rustudp;
}
upstream rust {
    server my_ip:28015;
}

server {
    listen 28015 udp;
proxy_pass rustudp;
}
upstream rust1 {
    server my_ip:28016;
}

server {
    listen 28016;
proxy_pass rust1;
}
upstream rust1udp {
    server my_ip:28016;
}

server {
    listen 28016;
proxy_pass rust1udp;
}

}

(IP表)

iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 28015 -m conntrack --ctstate NEW -j DNAT --to my_ip:28015
iptables -t nat -A PREROUTING -i eth0 -p udp --dport 28015 -m conntrack --ctstate NEW -j DNAT --to my_ip:28015
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 28016 -m conntrack --ctstate NEW -j DNAT --to my_ip:28016
iptables -t nat -A PREROUTING -i eth0 -p udp --dport 28016 -m conntrack --ctstate NEW -j DNAT --to my_ip:28016
iptables -t nat -A PREROUTING -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
iptables -A POSTROUTING -t nat -j MASQUERADE

如果有人可以将有用的指南链接到正确的方向,我将非常感激,因为我找不到任何指南。

答案1

刚刚找到了解决方案,甚至不是一个困难的解决方案。删除 -m conntrack 和额外的东西解决了我的问题。不知道为什么没有人能够回答,但我得到了我想要的:)。

sudo iptables -t nat -A PREROUTING -p tcp --dport 28015 -j DNAT --to-destination ip:28015
sudo iptables -t nat -A PREROUTING -p udp --dport 28015 -j DNAT --to-destination ip:28015
sudo iptables -t nat -A PREROUTING -p tcp --dport 28016 -j DNAT --to-destination ip:28016
sudo iptables -t nat -A PREROUTING -p udp --dport 28016 -j DNAT --to-destination ip:28016
iptables -t nat -A POSTROUTING -j MASQUERADE

相关内容