V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Distributions
Ubuntu
Fedora
CentOS
中文资源站
网易开源镜像站
ericbize
V2EX  ›  Linux

想问一下怎么设置才能转发流量

  •  
  •   ericbize · 2017-04-22 14:19:03 +08:00 · 3823 次点击
    这是一个创建于 2522 天前的主题,其中的信息可能已经有所发展或是发生改变。
    老师要我们在电脑上开三个虚拟机,两个是内网,通过 nat 上网(单网卡),一个是内外网(双网卡), 那么我已经把三台机器的内网地址给设定好了,剩下的就是那台双网卡的机器怎么设置才能转发数据?

    ipv4 forward 转发
    iptables 要怎么设置,谢谢
    用的是 ubuntu 16.04

    <a href="http://imgur.com/n7nJ8kY"><img src="" title="source: imgur.com" /></a>
    10 条回复    2017-04-22 22:12:50 +08:00
    hepin1989
        1
    hepin1989  
       2017-04-22 14:22:13 +08:00   ❤️ 1
    虽然对这块儿不懂,不过基于软件实现的不是更加灵活么?
    [《 Netty 实战》即将上市了}( https://www.v2ex.com/t/356574)
    ericbize
        2
    ericbize  
    OP
       2017-04-22 14:26:03 +08:00
    @hepin1989 明显老师是要我们弄 nat 转发, (我用 vpn 转发更好→_→ )
    hepin1989
        3
    hepin1989  
       2017-04-22 14:33:35 +08:00   ❤️ 1
    @ericbize 如果是这样的话,那么肯定是按照老师的要求做了, iptable 您看下吧。还有 lvs 。
    [《 Netty 实战》即将上市了]( https://www.v2ex.com/t/356574)
    mrsatangel
        4
    mrsatangel  
       2017-04-22 14:36:46 +08:00   ❤️ 1
    iptables -t nat -A POSTROUTING -s 192.168.3.0/255.255.255.0 -o <外网 iface> -j MASQUERADE
    raysonx
        5
    raysonx  
       2017-04-22 14:37:08 +08:00 via Android   ❤️ 1
    以下步骤仅供参考,其中步骤二到四仅适用于 ipv4 。 ipv6 协议同理变通。
    1.双网卡的 vm 作为另两台的默认网关。
    2.双网卡机器开启路由模式: sysctl net.ipv4.ip_forward=1
    3.双网卡机器记得防火墙要允许从内外网网卡之间的转发。例如 iptables -I FORWARD -i 内网网卡 -o 外网网卡 -j ACCEPT 和 iptables -I FORWARD -i 外网网卡 -o 内网网卡 -j ACCEPT
    4.双网卡机器开 nat ,例如 iptables -t nat -I POSTROUTING
    -o 外网网卡 -j MASQUERADE
    raysonx
        6
    raysonx  
       2017-04-22 14:38:53 +08:00 via Android   ❤️ 1
    注意 Linux 的 nat 功能是由防火墙实现的,所以不能禁防火墙
    holyzhou
        7
    holyzhou  
       2017-04-22 14:45:46 +08:00   ❤️ 2
    @hepin1989 别误人子弟了好吗 怎么可能用软件做更好 系统层的东西,而且 iptables 跟 lvs 又扯上了 这广告做的 @livid

    @ericbize 实际上你充当网络代理的那台机器上有两块网卡就够了。
    1. 把充当路由器的那台机器的路由转发打开, 动 sysctl.conf
    2. 在这台充当路由器的机器上增加 iptables 规则,接受你需要被代理网段从你另一块网卡(nat 的那块网卡)出去
    3. 将需要被代理的机器的网关调整为充当路由器的这台机器(同网段的网卡 ip)

    根据你图上来说,就是做了两层 nat
    ericbize
        8
    ericbize  
    OP
       2017-04-22 18:59:08 +08:00
    还想请教,怎么样才能重启有效, 和 大小写 有影响吗? 谢谢
    @raysonx
    raysonx
        9
    raysonx  
       2017-04-22 20:34:33 +08:00 via Android   ❤️ 1
    @ericbize 大小写有影响。我是用手机打的字,出现错误也有可能,仅供参考。
    sysctl 用来更改内核参数,要重启生效的话要把配置写在 /etc/sysctl.conf 。
    iptables 的配置取决于发行版,可以用 iptables save 生成配置文件。
    ericbize
        10
    ericbize  
    OP
       2017-04-22 22:12:50 +08:00
    @raysonx 谢谢,没有打错字。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   5071 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 28ms · UTC 05:38 · PVG 13:38 · LAX 22:38 · JFK 01:38
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.