首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >NAT在不同的接口上伪装,用Nftables访问不同的网络

NAT在不同的接口上伪装,用Nftables访问不同的网络
EN

Server Fault用户
提问于 2021-12-14 10:03:38
回答 1查看 1.6K关注 0票数 0

我有一个连接到两个网络的服务器:

  • 10.0.0.0/24通过接口wlan0
  • 通过接口eth0实现192.168.1.0/24

我想要设置一个Wireguard,使这两个网络可以从外部访问。我在配置中激活了ip转发(使用sysctl)。现在我需要设置一个NAT,以便通过两个本地网络从VPN服务器路由我的请求。我使用nftable来设置NAT。

我的问题是,对于只有一个接口的机器,我将使用以下配置:

代码语言:javascript
复制
table ip nat {
    chain prerouting {
        type nat hook prerouting priority 0;
    }
    chain postrouting {
        type nat hook postrouting priority 100;
        ip saddr 10.2.0.0/24 oifname eth0 masquerade
    }
}

但在这里,我不想通过eth0路由所有东西,我想具体地通过wlan0路由10.0.0.0/24的所有内容,通过eth0路由192.168.1.0/24的所有内容。如何使用nftable实现这一点?

EN

回答 1

Server Fault用户

回答已采纳

发布于 2021-12-15 08:46:20

最后,我自己找到了答案,下面是如何做到的:您必须使用ip daddr参数根据目标地址进行筛选。我的最后一套规则如下:

代码语言:javascript
复制
table ip nat {

        chain PREROUTING {
            type nat hook prerouting priority filter; policy accept;
        }
    
        chain POSTROUTING {
            type nat hook postrouting priority srcnat; policy accept;
            ip saddr 10.2.0.0/24 ip daddr 192.168.0.0/16 oifname "eth0" masquerade
            ip saddr 10.2.0.0/24 ip daddr 10.0.0.0/24 oifname "wlan0" masquerade
        }
}

这工作得很好。

票数 0
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/1086271

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档