Distributions
› Ubuntu
› Fedora
› CentOS
中文资源站
› 网易开源镜像站
ihciah
0.2D
0.03D
V2EX  ›  Linux

[求助]linux 如何在两个 tun 之间转发数据包?

  •  
  •   ihciah ·
    ihciah · Apr 24, 2015 · 6231 views
    This topic created in 4211 days ago, the information mentioned may be changed or developed.

    在同一台机器(A)上同时开了一个openvpn的服务端和客户端
    客户端连接B主机,设备tun3,10.8.0.x
    服务端对其他机器提供ovpn服务,设备tun9,10.9.0.1
    如何将tun9的数据包经过tun3中转呢?

    谢谢!

    6 replies  •  2015-04-26 09:10:39 +08:00
    aarwwefdds
    aarwwefdds
    Apr 24, 2015❤️1
    1
    你需要策略路由。。用ip route命令新建一个路由表1。用ip rule 将来自10.9.0.1/16的数据包走路由表1 然后设定路由表1的默认路由到tun3设备的网关

    一般的做法还得到“B”设置返回的路由,不过如果你不介意多次NAT,可以用iptables直接设置NAT表POSTROUTING链默认指向MASQUERADE就可以了
    catinsnow
    catinsnow
    Apr 24, 2015 via Android❤️1
    2
    定义个路由表默认走tun3, 用策略路由 ip rule让10.9.0段IP lookup 这个表。
    tmqhliu
    tmqhliu
    Apr 24, 2015❤️1
    3
    内核开启转发功能,然后再添加路由即可
    ihciah
    ihciah
    OP
    Apr 24, 2015
    4
    感谢大家!
    问题解决:
    iptables -t nat -A POSTROUTING -s 10.9.0.0/24 -o tun3 -j MASQUERADE

    发现虽然转了两层openvpn,浏览网页正常,DNS正常,iOS的ingress依旧提示无法建立安全连接QAQ
    opkgopkg
    opkgopkg
    Apr 25, 2015 via Android
    5
    萌。
    liuchen9586
    liuchen9586
    Apr 26, 2015
    6
    https://www.v2ex.com/t/180070

    也许我写的这个教程能帮到你
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   2180 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 39ms · UTC 15:58 · PVG 23:58 · LAX 07:58 · JFK 10:58
    ♥ Do have faith in what you're doing.