我需要将本地计算机的 UDP 端口 28015 转发到另一台具有端口 UDP 28021 的计算机。Rust 游戏服务器。(使用备用端口将特定端口上的传入流量重定向到不同的 IP 地址)
已尝试:sysctl -w net.ipv4.ip_forward=1 sudo iptables -t nat -A PREROUTING -p udp --dport 28015 -j DNAT --to-destination another_server:28021 iptables -t nat -A POSTROUTING -j MASQUERADE
流量被重定向,但是当您进入服务器本身时,会弹出“Steam Auth Failed”错误。
问题不在于服务器,因为当尝试重定向到其他任何服务器而不是我的服务器时,都会弹出同样的错误。
答案1
你可以使用 来做到这一点socat
,在这种情况下不需要 NAT
$ socat udp-listen:28015,reuseaddr,fork udp:another_server:28021
如果你确实想使用 iptables,你可以使用以下命令
$ sudo iptables -t nat -A OUTPUT -m addrtype --src-type LOCAL --dst-type LOCAL -p udp --dport 28015 -j DNAT --to-destination another_server:28021
$ sudo iptables -t nat -A POSTROUTING -m addrtype --src-type LOCAL --dst-type UNICAST -j MASQUERADE
$ sysctl -w net.ipv4.conf.all.route_localnet=1