老师要我们在电脑上开三个虚拟机,两个是内网,通过 nat 上网(单网卡),一个是内外网(双网卡), 那么我已经把三台机器的内网地址给设定好了,剩下的就是那台双网卡的机器怎么设置才能转发数据?
ipv4 forward 转发
iptables 要怎么设置,谢谢
用的是 ubuntu 16.04
" title="source: imgur.com" />虽然对这块儿不懂,不过基于软件实现的不是更加灵活么?
[《 Netty 实战》即将上市了}( https://www.v2ex.com/t/356574)
明显老师是要我们弄 nat 转发, (我用 vpn 转发更好→_→ )
如果是这样的话,那么肯定是按照老师的要求做了, iptable 您看下吧。还有 lvs 。
[《 Netty 实战》即将上市了]( https://www.v2ex.com/t/356574)
iptables -t nat -A POSTROUTING -s 192.168.3.0/255.255.255.0 -o <外网 iface> -j MASQUERADE
以下步骤仅供参考,其中步骤二到四仅适用于 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
注意 Linux 的 nat 功能是由防火墙实现的,所以不能禁防火墙
别误人子弟了好吗 怎么可能用软件做更好 系统层的东西,而且 iptables 跟 lvs 又扯上了 这广告做的 实际上你充当网络代理的那台机器上有两块网卡就够了。
1. 把充当路由器的那台机器的路由转发打开, 动 sysctl.conf
2. 在这台充当路由器的机器上增加 iptables 规则,接受你需要被代理网段从你另一块网卡(nat 的那块网卡)出去
3. 将需要被代理的机器的网关调整为充当路由器的这台机器(同网段的网卡 ip)
根据你图上来说,就是做了两层 nat
还想请教,怎么样才能重启有效, 和 大小写 有影响吗? 谢谢
@raysonx
大小写有影响。我是用手机打的字,出现错误也有可能,仅供参考。
sysctl 用来更改内核参数,要重启生效的话要把配置写在 /etc/sysctl.conf 。
iptables 的配置取决于发行版,可以用 iptables save 生成配置文件。
谢谢,没有打错字。