在Linux系统上实现IP转发的方法

2016-03-31 15:26 114 1 收藏

今天图老师小编要跟大家分享在Linux系统上实现IP转发的方法,精心挑选的教程简单易学,喜欢的朋友一起来学习吧!

【 tulaoshi.com - 服务器 】

在Linux系统上实现IP转发的方法

   大家好,今天我们学习一下在 Linux 上用 iptables 实现从一个网络接口到另一个接口的IP转发(数据包转发)。IP转发的概念是,使 Linux 机器像路由器一样将数据从一个网络发送到另一个网络。所以,它能作为一个路由器或者代理服务器,实现将一个连接的互联网或者网络连接共享给多个客户端机器。

  这是一些启用IP转发或网络包转发方法的简单步骤。

  1. 启用 IPv4 转发

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

  代码如下:

(本文来源于图老师网站,更多请访问https://www.tulaoshi.com/fuwuqi/)

  $ sudo -s

  # echo 1 /proc/sys/net/ipv4/ip_forward

2015724165356408.png (438×39)

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

  代码如下:

(本文来源于图老师网站,更多请访问https://www.tulaoshi.com/fuwuqi/)

  # nano /etc/sysctl.conf

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

  代码如下:

(本文来源于图老师网站,更多请访问https://www.tulaoshi.com/fuwuqi/)

  net.ipv4.ip_forward = 1

2015724165418216.png (684×490)

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

  代码如下:

(本文来源于图老师网站,更多请访问https://www.tulaoshi.com/fuwuqi/)

  # sysctl -p /etc/sysctl.conf

2015724165456073.png (400×78)

  2. 配置 Iptables 防火墙

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

  代码如下:

(本文来源于图老师网站,更多请访问https://www.tulaoshi.com/fuwuqi/)

  # ifconfig -a

2015724165518427.png (684×541)

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

  代码如下:

(本文来源于图老师网站,更多请访问https://www.tulaoshi.com/fuwuqi/)

  # 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

(本文来源于图老师网站,更多请访问https://www.tulaoshi.com/fuwuqi/)
2015724165630146.png (644×71)

  3. 配置 NAT

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

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

2015724165656811.png (517×35)

  总结

  最后,我们在我们以 iptables 作为防火墙 Linux 机器上成功的配置了从一个接口到另一个接口的数据包转发。这篇文章教给你将你的私有接口连接到互联网,不需要桥接接口,而是将从一个接口进来的数据包路由到另一个接口。就是这些,如果你有任何问题、建议、反馈,请写到下面的评论框中,然后我们可以改进或更新我们的内容。非常感谢!享受吧 :-)

来源:https://www.tulaoshi.com/n/20160331/2050526.html

延伸阅读
  原始文件:Linux IP Alias mini HOWTO 翻译日期:1997/10/23 翻译维护:cwhuang@phys.ntu.edu.tw ---------------------------------------------------------------------------------------------- 本文最後修改日期: January 13th 1997. 如何在 Linux 机器上设定 IP 别名(aliasing) G...
标签: 服务器
在Linux上怎么安装和配置DenyHosts工具以便进行自动屏ip   使用DenyHosts能够进行自动屏ip的功能,掌握DenyHosts在Linux系统中的安装是很有必要的,那么在Linux系统中要如何安装DenyHosts工具呢?安装后又要如何配置呢?这都是用户需要学习的。 denyhosts是一个安全工具,用Python编写的,用于监视服务器访问日志,防止虚拟专用...
标签: 电脑入门
Linux中的iotop命令主要用于显示硬盘IO,但该命令只存在于kernelv2.6.20之后的版本, 那么要如何安装iotop命令呢?下面图老师小编就给大家介绍下如何在Linux上安装iotop命令。 iotop命令是界面风格类似top命令。这个命令只有在kernelv2.6.20及以后的版本中才有。python版本需要 python2.7及以上版本 官方的说明: Linux has always been a...
网络浏览 1、Netscape Communicator X Window的图形环境可使Netscape Communicator充分发挥全部功能,Linux 版Communicator与Windows用的版本一样,具有新闻阅读器和功能丰富的电子邮件 客户管理器。 2、gFTP 该软件图形界面简洁明了,不必记忆任何命令,可直接用鼠标...
标签: 电脑入门
OpenMP是一种多处理器多线程的编程语言,能够支持多个平台,包括Linux系统,那么Linux下要如何进行openmp多线程编程呢?一起来了解下吧。 关键语法: 代码如下: #inlcude 《omp.h》 #pragma omp parallel for #pragma omp for reduction(+: 变量) #pragma omp critical//锁 { } #pragma omp parallel for private(x,y)//每...

经验教程

661

收藏

82
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部