iptables如何添加非对称的NAT规则段

发布于 2022-09-11 19:39:15 字数 1095 浏览 28 评论 0

背景:内网穿透,想用server的port:20001-30000代理虚拟子网里另一台服务器的port:1-10000,其他都搞定了就差NAT了

目前进度:

将server的28000端口请求转发给虚拟子网10.8.0.8的8000端口,可以访问到

iptables -t nat -A PREROUTING -p tcp --dport 28000 -j DNAT --to-destination 10.8.0.8:8000
iptables -t nat -A PREROUTING -p udp --dport 28000 -j DNAT --to-destination 10.8.0.8:8000

尝试将28000-30000端口请求转发到8000-10000,结果是只有首条28000→8000有效,其他无效

iptables -t nat -A PREROUTING -p tcp --dport 28000:30000 -j DNAT --to-destination 10.8.0.8:8000-10000
iptables -t nat -A PREROUTING -p udp --dport 28000:30000 -j DNAT --to-destination 10.8.0.8:8000-10000

查阅到了一篇相关文章,文章结论如下

“当匹配的端口在映射端口的区间内时,那么端口号不会被修改。如果匹配端口不在映射端口的区间内,则大多数情况下映射端口号为最小的端口号,即映射端口号是不可预测的。

举例:

[1000-2000] 映射到[1000-2000]时会一一映射

[1000-2000] 映射到[3000-4000]结果不可预知,一般会映射到3000端口。”

这篇文章的结论符合目前的情况,但是接下来还能怎么做呢?

难道写个脚本添加10000条iptables规则进去?这也太...

希望能得到dalao解答,不胜感谢!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文