Linux开启转发:让数据包在不同网卡间流动

时间:2026-05-09 13:31

"开启转发"是Linux网络中最基础也最常用的操作。简单说,就是让Linux内核允许数据包从一个网卡进入,从另一个网卡出去——这是Linux成为路由器、网关或VPN服务器的前提。

一、核心命令:开启IP转发

临时开启(重启后失效)

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

或使用sysctl命令:

bash
sysctl -w net.ipv4.ip_forward=1

永久开启

编辑 /etc/sysctl.conf 文件,找到或添加:

ini
net.ipv4.ip_forward = 1

使配置立即生效:

bash
sysctl -p

验证是否开启成功

bash
cat /proc/sys/net/ipv4/ip_forward
# 输出 1 表示已开启

二、开启后能做什么?

开启转发只是第一步,真正让数据包能"正确旅行",还需要配合路由或地址转换。以下是两个最典型的应用:

应用1:让内网设备上网(SNAT)

场景:你的Linux服务器有网卡A连接外网,网卡B连接内网(192.168.1.x)。想让内网的电脑通过这台服务器上网。

bash
# 开启转发后,配置源地址转换
iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -o 外网网卡名 -j MASQUERADE

这样内网设备将网关设为服务器内网IP后,就能访问互联网了。

应用2:把公网访问转到内网(DNAT)

场景:想让外网用户访问服务器的8080端口,实际访问的是内网某台Web服务器的80端口。

bash
# 开启转发后,配置目的地址转换
iptables -t nat -A PREROUTING -p tcp --dport 8080 -j DNAT --to-destination 192.168.1.100:80

三、保存配置(防止重启丢失)

Ubuntu/Debian:

bash
# 安装持久化工具
apt-get install iptables-persistent

# 保存规则
iptables-save > /etc/iptables/rules.v4

CentOS/RHEL 7+:

bash
# 安装服务
yum install iptables-services

# 保存规则
service iptables save

四、图形化管理工具推荐

如果你不想敲命令,或者需要管理更复杂的多节点转发架构,可以试试这款工具:

👉 https://www.80km.com/dkzf/

80km无痕网关特点:

  • 图形化Web界面,无需记忆命令行

  • 支持多台后端服务器的流量分发和故障转移

  • 隐藏后端真实IP,提升安全性

  • 几分钟即可完成配置

五、快速排查

转发开启后网络不通?检查以下几点:

  1. 确认转发已开启cat /proc/sys/net/ipv4/ip_forward

  2. 检查iptables规则iptables -t nat -L -n -v

  3. 查看防火墙是否阻挡iptables -L -n -v

  4. 检查网络接口状态ip addr 和 ip route

一句话总结

开启转发 = sysctl -w net.ipv4.ip_forward=1
这个命令让Linux内核允许数据包在网卡间流动。要让数据包真的按预期"旅行",记得配合iptables的SNAT(让内网上网)或DNAT(暴露内网服务)使用。

内网穿透工具自托管 vs 云端中转:穿云箭和花生壳优缺点深度分析
内网ip远程控制,借助内网IP实现远程控制的完整指南
远程访问内网IP:打破网络边界的连接艺术
理解Windows系统中的NAT转发功能
内网穿透工具自托管 vs 云端中转:穿云箭和花生壳优缺点分析
手把手配置SSR端口转发:UDP协议支持与高级设置详解
什么是nat123?nat123的核心功能
nat123端口映射:轻松实现外网访问内网
nat123下载:轻松获取内网穿透工具
nat123官网:老牌内网穿透工具