Linux 启用 IP 转发 (IPv4 / IPv6)

启用内核转发

IP 转发概述

默认情况下, 最新的 Linux 发行版通常会禁用 IP 转发功能。这种默认设置是合理的, 因为大多数用户并不需要启用 IP 转发功能。但是, 如果我们在设置一台 Linux 路由器/网关、VPN 服务器或简单的拨号服务器时, 就必须启用 IP 转发功能。

IP 转发使得 Linux 操作系统能够像路由器一样转发数据包, 或者更通用地说, 将数据包在不同的网络之间进行路由。在本教程中, 我们将学习如何在 Linux 系统上启用 IP 转发。这个过程相对简单, 同时我们也会了解如何将 IP 转发设置为临时启用或永久启用。

临时启用

临时启用IP转发不需要修改配置文件, 但这种设置会在系统重启后失效。

查看当前状态

要查看当前 IP 转发的状态, 执行以下命令

# IPv4
cat /proc/sys/net/ipv4/ip_forward

# IPv6
cat /proc/sys/net/ipv6/conf/all/forwarding

如果返回 0, 表示 IP 转发被禁用;如果返回 1, 表示 IP 转发已启用

临时启用 IP 转发

临时修改, 在重启或者使用 sysctl 时会恢复默认

# 启用 IPv4 转发
sysctl -w net.ipv4.ip_forward = 1

# 启用 IPv6 转发
sysctl -w net.ipv6.conf.all.forwarding = 1

永久启用

要永久启用 IP 转发, 需要修改系统配置文件 /etc/sysctl.conf

  1. 打开文件 /etc/sysctl.conf

    vim /etc/sysctl.conf
    
  2. 在文件末尾添加以下内容

    net.ipv4.ip_forward = 1
    net.ipv6.conf.all.forwarding = 1
    
  3. 使配置立即生效

    sysctl -p /etc/sysctl.conf
    

原文

How to enable IP forwarding on Linux (IPv4 / IPv6)?

最后更新于 2020-02-16
使用 Hugo 构建
主题 StackJimmy 设计
时间过了 2.5 年