V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
wonk
V2EX  ›  Debian

真心求教 Debian 双网卡如何指定出入站

  •  
  •   wonk · 101 天前 via iPhone · 1259 次点击
    这是一个创建于 101 天前的主题,其中的信息可能已经有所发展或是发生改变。

    Debian12 双网卡 有各自网段和网关

    如何指定 A 网卡入站 B 网卡出站呢

    A 网卡有公网 ip 可以联通 B 网卡没有公网 ip

    试了路由表还是搞不定 希望大佬指点

    第 1 条附言  ·  101 天前
    @bingfengfeifei 多谢 回复, 目的是运营商转化,A 卡在 Nat 下面可以端口映射,有公网 ip ,B 卡也是 Nat ,但是没有公网 ip ,希望实现 A 卡承接进站流量,然后转给 B 出站,这样可以用 B 的公网 ip 地址
    16 条回复    2024-10-27 23:42:55 +08:00
    blueboyggh
        1
    blueboyggh  
       101 天前 via Android
    我回答不了楼主的问题,但是借问一下 debian12 如何设定网卡优先级?我按网上的设置了,只有 ipv4 生效,v6 不生效
    hefish
        2
    hefish  
       101 天前
    搜一下 LARTC 吧。
    luoyide2010
        3
    luoyide2010  
       101 天前
    策略路由搞不定吗?话说 A 网口入站 B 网口出站,用不了吧,TCP 连接建立不起来
    loyth06
        4
    loyth06  
       101 天前
    路由表应该可以吧,我试过 ip rule ,ip route 实现 A 进 A 出,B 进 B 出
    PolarBears
        5
    PolarBears  
       101 天前
    A 网卡不设置网关,只在 B 网卡设置网关试试?
    moudy
        6
    moudy  
       101 天前
    @luoyide2010 #3 路由给转就行
    mrtanwen
        7
    mrtanwen  
       101 天前
    前段时间刚研究过差不多的需求,用了 iptables 的 uid-owner 标记一个用户然后配置 nat to-source 为你要出口 IP 这样这个用户下运行的程序就能 A 进 B 出
    bingfengfeifei
        8
    bingfengfeifei  
       101 天前   ❤️ 1
    这种需求的场景是什么,你的设备是什么类型,类似路由器的网关设备?
    听你需求,很像是 NAT 设备,在 A 上面暴露服务,然后转发到 B 网段。
    这种情况下由于 A B 网段的路由不同,做一个 DNAT ,指向 B 的网段就实现了。

    你的 A 有公网 IP ,流量能进来的前提是对方的目的 IP 是 A 的 IP ,而你要转到内网,就需要修改目的 IP 吧。

    最好说一下具体的应用场景这样才好制定对策。
    如果单纯的听你描述是一个特定条件选路的场景(我有点想象不出来具体应用方式),可能是策略路由去解决。
    1. A 网卡 B 网卡使用策略路由表,每个网卡单独一张表,例如 A 网卡策略路由表 id 100 B 网卡 id 200
    2. 在 iptables NAT 表 prerouting 链对会话打标记 例如 0x8888
    3. 然后把 ip rule 里面根据 mark 去选择路由表
    4. 注意 rp_filter 参数的调整,要开启松散反向路由的限制。
    5. 还得注意反向流的问题
    zealot0630
        9
    zealot0630  
       101 天前 via Android
    挺难实现的,我这里有个 nftables 实现差不多功能,你可以参考一下

    https://github.com/kghost/config/blob/master/services/debian/vpn/nft-policy-route
    zealot0630
        10
    zealot0630  
       101 天前 via Android
    原理就是用 ct 追踪这条链接应该走哪个链路,然后用 policy routing 选择不同路由表
    cndns
        11
    cndns  
       101 天前
    在网卡里面设置
    metric 参数 具体谷歌搜索一下
    wonk
        12
    wonk  
    OP
       101 天前 via iPhone
    @bingfengfeifei 多谢 回复, 目的是运营商转化,A 卡在 Nat 下面可以端口映射,有公网 ip ,B 卡也是 Nat ,但是没有公网 ip ,希望实现 A 卡承接进站流量,然后转给 B 出站,这样可以用 B 的公网 ip 地址
    cndns
        13
    cndns  
       101 天前
    @wonk 你这种需求应该做不到的,运营商设备会检测数据包 源进源出
    002jnm
        14
    002jnm  
       101 天前
    用 netplan 比较简单,配置 metric 就行了。给你个参考:
    network:
    version: 2
    renderer: networkd
    ethernets:
    enp0s6:
    addresses: [ 10.0.0.12/24 ]
    routes:
    - to: 0.0.0.0/0
    via: 10.0.0.1
    metric: 201
    optional: true
    nameservers:
    addresses:
    - "8.8.8.8"
    enp1s0:
    addresses: [ 10.0.0.15/24 ]
    routes:
    - to: 0.0.0.0/0
    via: 10.0.0.1
    metric: 202
    optional: true
    nameservers:
    addresses:
    - "8.8.8.8"
    tool2dx
        15
    tool2dx  
       101 天前
    我们公司也是双宽带接入,ip4 统一走电信宽带,ip6 统一走移动宽带,互不影响,多线程流量还能叠加,完美。
    Heyzg
        16
    Heyzg  
       64 天前
    老哥找到解决办法了吗
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1221 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 18:01 · PVG 02:01 · LAX 10:01 · JFK 13:01
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.