良许Linux教程网 干货合集 Linux 上用 IP转发使内部网络连接到互联网

Linux 上用 IP转发使内部网络连接到互联网

本篇文章主要为大家分享一下Linux系统中如何用 iptables 实现从一个网络接口到另一个接口的IP转发(数据包转发),有需要的小伙伴可以参考一下。 Linux 上用 IP转发使内部网络连接到互联网

1. 启用 IPv4 转发

首先,我们需要在我们的 Linux 操作系统上启用 IPv4 转发。要做到这点,我们需要用 sudo 模式在 shell 或终端下执行下面的命令。

 $ sudo -s# echo 1 > /proc/sys/net/ipv4/ip_forward

0?wx_fmt=png&tp=webp&wxfrom=5

注意:上面的命令能马上启用ip转发,但只是临时的,直到下一次重启。要永久启用,我们需要使用我们惯用的文本编辑器打开 /etc/sysctl.conf 文件。

 # nano /etc/sysctl.conf

然后,增加 net.ipv4.ip_forward = 1 到文件中,或者删除那行的注释,保存并退出文件。

 net.ipv4.ip_forward = 1

0?wx_fmt=png&tp=webp&wxfrom=5

运行下面的命令启用更改。

 # sysctl -p /etc/sysctl.conf

0?wx_fmt=png&tp=webp&wxfrom=5

2. 配置 Iptables 防火墙

我们需要允许特定的(或者所有的)数据包通过我们的路由器。在这之前,我们要知道连接我们 Linux 的网络设备的接口名称。我们可以通过在终端或者 shell 运行以下命令获得接口名称。

 # ifconfig -a

0?wx_fmt=png&tp=webp&wxfrom=5

这里,在我们的机器中, eth2 是连接到互联网或者网络的网卡接口, wlan2 是我们要使用 iptables 从 eth2 转发数据包的接口。要实现转发,我们需要运行以下命令。

 # iptables -A FORWARD -i wlan2 -o eth2 -j ACCEPT

注意:请用你 Linux 机器中的可用设备名称替换 wlan2 和 eth2。

现在,由于netfilter/iptables是一个无状态的防火墙,我们需要让 iptables 允许已建立的连接通过。要做到这点,我们要运行下面的命令。

 # iptables -A FORWARD -i eth2 -o wlan2 -m state --state ESTABLISHED,RELATED  -j ACCEPT

0?wx_fmt=png&tp=webp&wxfrom=5

3. 配置 NAT

然后,最后我们需要通过执行下面的命令修改发送到互联网的数据包的源地址为 eth2。

 # iptables -t nat -A POSTROUTING -o eth2 -j MASQUERADE

0?wx_fmt=png&tp=webp&wxfrom=5

以上就是良许教程网为各位朋友分享的Linux系统相关内容。想要了解更多Linux相关知识记得关注公众号“良许Linux”,或扫描下方二维码进行关注,更多干货等着你!

137e00002230ad9f26e78-265x300

本文由 良许Linux教程网 发布,可自由转载、引用,但需署名作者且注明文章出处。如转载至微信公众号,请在文末添加作者公众号二维码。
良许

作者: 良许

良许,世界500强企业Linux开发工程师,公众号【良许Linux】的作者,全网拥有超30W粉丝。个人标签:创业者,CSDN学院讲师,副业达人,流量玩家,摄影爱好者。
上一篇
下一篇

发表评论

联系我们

联系我们

公众号:良许Linux

在线咨询: QQ交谈

邮箱: yychuyu@163.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

关注微博
返回顶部