日期:2014-05-16  浏览次数:20803 次

Linux系统下启用IP转发功能

linux发行版默认情况下是不开启ip转发功能的。这是一个好的做法,因为大多数人是用不到ip转发的,但是如果我们架设一个linux路由或者vpn服务我们就需要开启该服务了。下面我会通过几种方式开通它。检查ip转发是否开启

  我们需要通过访问sysctl的内核ipv4.ip_forward来判断转发是否开启。

  使用 sysctl:

  sysctl net.ipv4.ip_forward net.ipv4.ip_forward = 0

  或者检查/proc下的文件:

  cat /proc/sys/net/ipv4/ip_forward 0

  正如我们所见,ipv4转发没有开启 (值为 0)。

  启动ip转发

  通过sysctl我们可以开启ipv4的转发功能 (无需重启):

  sysctl -w net.ipv4.ip_forward=1

  或者

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

  这种设置只是暂时的; 它的效果会随着计算机的重启而失效。

  通过在 /etc/sysctl.conf 设置参数

  如果你想使ip转发永久生效,就请修改 /etc/sysctl.conf ,在这里我们可以增加一条 net.ipv4.ip_forward = 1

  /etc/sysctl.conf: net.ipv4.ip_forward = 1

  如果你的ipv4转发项已被设为0那么你只需要将它改为1.

  要想是更改生效,你需要执行以下指令:

  sysctl -p /etc/sysctl.conf

  在红帽系列的发行版上可以通过重启网络服务使之生效:

  service network restart

  而在debian/ubuntu系列的发行版则用这样的命令:

  /etc/init.d/procps.sh restart