启用IP转发需先临时执行sudo sysctl -w net.ipv4.ip\_forward=1,再永久修改/etc/sysctl.conf添加net.ipv4.ip\_forward = 1并运行sudo sysctl -p生效;验证用cat /proc/sys/net/ipv4/ip_forward或sysctl net.ipv4.ip_forward,返回1即成功。

您正在使用麒麟操作系统,需要在终端中启用IP转发功能以实现Linux内核层面的网络包路由转发,例如搭建网关、NAT共享上网或配置Docker桥接网络,否则即使配置了iptables规则或dockerd参数,数据包仍会被内核直接丢弃。
临时开启IP转发(重启失效)
这一步操作起来很简单,直接执行命令即可生效,无需重启服务或系统。
打开终端,输入以下命令并回车:
sudo sysctl -w net.ipv4.ip_forward=1
执行后终端将返回 net.ipv4.ip_forward = 1,表示已启用。该设置仅在当前运行的内核中生效,系统重启后会恢复为0。
永久开启IP转发(重启后仍有效)
永久生效必须修改内核参数配置文件,否则每次开机都要手动执行临时命令,对服务器或长期运行设备极不实用。
第一步:用文本编辑器打开sysctl配置文件
sudo vim /etc/sysctl.conf
第二步:在文件末尾新增一行(不要删除或修改已有内容)
net.ipv4.ip_forward = 1
第三步:保存并退出编辑器(按Esc键→输入:wq→回车)
第四步:加载新配置使更改立即生效
sudo sysctl -p
【注意:若执行sysctl -p时提示“net.ipv4.ip_forward”被重复定义,说明/etc/sysctl.conf中已存在该行且值为0,请手动将其改为1后再执行】
验证IP转发是否真正启用
方法一:检查内核参数实时值
cat /proc/sys/net/ipv4/ip_forward
返回值为1即表示已开启;返回0说明未生效,需回头检查前两步是否遗漏。
方法二:查看sysctl当前加载的全部配置中该项状态
sysctl net.ipv4.ip_forward
该命令输出格式为 net.ipv4.ip_forward = 1,比cat方式更明确,且能排除临时写入失败的干扰。

















