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