linux系统网卡怎么设置网关(如何将一台Linux做成一个网关)

我们在内网的环境中,如果只有一台机器能够能外网,那么我们把这台机器做成一个网关gateway,从而实现其他机器的联网。如下图所示:

linux设置默认网关

网关上面有两个网卡,其中eth0(192.168.0.1)连接内网网段,eth1(198.51.100.1)连接公网。

原理非常简单: 通过网关iptables的SNAT,将内网流量的源IP地址统一修改成网关对外IP地址(eth1的IP)。具体操作如下:

网关配置

首先需要配置我们的网关,确保内网流量都走eth0网络

ip route add 192.168.0.0/16 dev eth0

然后开启网络转发并通过SNAT将IP改成对外IP。

echo 1 > /proc/sys/net/ipv4/ip_forward iptables -t nat -A POSTROUTING ! -d 192.168.0.0/16 -o eth1 -j MASQUERADE

注意上面,我并没有直接使用SANT,而是采用MASQUERADE。MASQUERADE可以理解成动态的SNAT,如果eth1网卡地址发生变化后,会动态更新源地址。如果使用SNAT,当然在本例中也是可以跑通的,如下所示

iptables -t nat -A POSTROUTING ! -d 192.168.0.0/16 -o eth1 -j SNAT --to-source 198.51.100.1

但如果修改了eth1的地址后,就需要重新设置。

其他内网节点配置

最后将内网中其他机器的网关指定到网关节点即可

ip route add default via 192.168.0.1 dev eth0

这样就完成了一个网关的配置。这个原理非常简单,但如果熟悉OpenStack的用户就会发现,OpenStack里面的网关的原理就是利用这种方式实现。

您可以还会对下面的文章感兴趣

最新评论

  1. 躺地日天
    躺地日天
    发布于:2022-04-27 05:51:52 回复TA
    198.51.100.1)连接公网。原理非常简单: 通过网关iptables的SNAT,将内网流量的源IP地址统一修改成网关对外IP地址(eth1的IP)。具体操作如下:网关配置首先需要配置我们的网关,确保内网流
  1. 熊仔吃掉月亮
    熊仔吃掉月亮
    发布于:2022-04-27 12:05:18 回复TA
    我们在内网的环境中,如果只有一台机器能够能外网,那么我们把这台机器做成一个网关gateway,从而实现其他机器的联网。如下图所示:网关上面有两个网卡,其中eth
  1. 帅到没人爱
    帅到没人爱
    发布于:2022-04-27 13:36:38 回复TA
    化后,会动态更新源地址。如果使用SNAT,当然在本例中也是可以跑通的,如下所示iptables -t nat -A POSTROUTING ! -d 192.168.0.0/16 -o eth1 -j SNAT --to-sourc
  1. 应颖聪洋
    应颖聪洋
    发布于:2022-04-27 02:57:32 回复TA
    如果你说我长得帅,我肯定你在骗我;如果你说我长得太帅了,我就相信你了。
  1. 闻宇馨茜
    闻宇馨茜
    发布于:2022-04-27 02:57:32 回复TA
    梦想是孤独的旅行,路上少不了质疑和嘲笑!

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

使用微信扫描二维码后

点击右上角发送给好友