如何把 iptables 当代理用

查看 70|回复 5
作者:LitterGopher   
有 A,B,C 三台机器,AB 、BC 互通,AC 不通,A IP 不确定,BC IP 确定,。现在希望通过 B 来实现让 A 访问 C 的 1234 UDP 端口。如果使用 IP tables 应该如何配置?
(不使用 nginx )

tables, iptables, udp, Nginx

sujin190   
这不就是端口转发么
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
一搜一堆教程的吧
LitterGopher
OP
  
@sujin190 是端口转发,但问题在于这些教程如果解决了我的问题我还需要用这种第效率的方法么(前两页的所有内容都看过了)?
tool2d   
听起来不难,就是在 B 上设置条件。
1. 判断所有从 A 发起的 UDP 包,通过 iptables 修改 DNAT ,目标地址为 C
2. 判断所有从 C 返回的 UDP 包,通过 iptables 修改 SNAT ,目标地址为 A
只是从理论上可行,具体有什么大坑就不清楚了。
sujin190   
@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
脾气不要这么差
sujin190   
A 的 IP 不确定,第二条可以不写就是了
iptables -t nat -A POSTROUTING -p udp --dport 1234 -j SNAT --to-source B 的 IP
您需要登录后才可以回帖 登录 | 立即注册

返回顶部