有 A,B,C 三台机器,AB 、BC 互通,AC 不通,A IP 不确定,BC IP 确定,。现在希望通过 B 来实现让 A 访问 C 的 1234 UDP 端口。如果使用 IP tables 应该如何配置? (不使用 nginx ) tables, iptables, udp, Nginx
这不就是端口转发么 https://www.google.com/search?q=iptables+%E7%AB%AF%E5%8F%A3%E8%BD%AC%E5%8F%91%E9%85%8D%E7%BD%AE&newwindow=1&sca_esv=567123728&sxsrf=AM9HkKmcJ4qg-_k3rIXCUO4oi4ThyXZwXg%3A1695262584345&source=hp&ei=eKcLZbqNE_Kr0PEPysGj8A8&iflsig=AO6bgOgAAAAAZQu1iJRC7zBUtsBsz8En2CpnsIKah6jF&ved=0ahUKEwi6qY6h0bqBAxXyFTQIHcrgCP4Q4dUDCAk&uact=5&oq=iptables+%E7%AB%AF%E5%8F%A3%E8%BD%AC%E5%8F%91%E9%85%8D%E7%BD%AE&gs_lp=Egdnd3Mtd2l6IhtpcHRhYmxlcyDnq6_lj6Povazlj5HphY3nva4yBRAAGKIEMgUQABiiBEjbIlAAWO8gcAN4AJABAZgB0QKgAe0qqgEGMi0yMS4xuAEDyAEA-AEC-AEBwgIIEAAYywEYgATCAgUQABiABMICBxAAGAwYgAQ&sclient=gws-wiz 一搜一堆教程的吧
听起来不难,就是在 B 上设置条件。 1. 判断所有从 A 发起的 UDP 包,通过 iptables 修改 DNAT ,目标地址为 C 2. 判断所有从 C 返回的 UDP 包,通过 iptables 修改 SNAT ,目标地址为 A 只是从理论上可行,具体有什么大坑就不清楚了。
@LitterGopher #2 第一条说的就是没问题的 iptables -t nat -A PREROUTING -p udp --dport 1234 -j DNAT --to-destination C 的 IP iptables -t nat -A POSTROUTING -s A 的 IP -p udp --dport 1234 -j SNAT --to-source B 的 IP 就是这样啊,但是需要调整 A 的路由表在 A 访问 C 是下一跳是 B 脾气不要这么差