"开启转发"是Linux网络中最基础也最常用的操作。简单说,就是让Linux内核允许数据包从一个网卡进入,从另一个网卡出去——这是Linux成为路由器、网关或VPN服务器的前提。
echo 1 > /proc/sys/net/ipv4/ip_forward
或使用sysctl命令:
sysctl -w net.ipv4.ip_forward=1
编辑 /etc/sysctl.conf 文件,找到或添加:
net.ipv4.ip_forward = 1
使配置立即生效:
sysctl -p
cat /proc/sys/net/ipv4/ip_forward # 输出 1 表示已开启
开启转发只是第一步,真正让数据包能"正确旅行",还需要配合路由或地址转换。以下是两个最典型的应用:
场景:你的Linux服务器有网卡A连接外网,网卡B连接内网(192.168.1.x)。想让内网的电脑通过这台服务器上网。
# 开启转发后,配置源地址转换 iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -o 外网网卡名 -j MASQUERADE
这样内网设备将网关设为服务器内网IP后,就能访问互联网了。
场景:想让外网用户访问服务器的8080端口,实际访问的是内网某台Web服务器的80端口。
# 开启转发后,配置目的地址转换 iptables -t nat -A PREROUTING -p tcp --dport 8080 -j DNAT --to-destination 192.168.1.100:80
Ubuntu/Debian:
# 安装持久化工具 apt-get install iptables-persistent # 保存规则 iptables-save > /etc/iptables/rules.v4
CentOS/RHEL 7+:
# 安装服务 yum install iptables-services # 保存规则 service iptables save
如果你不想敲命令,或者需要管理更复杂的多节点转发架构,可以试试这款工具:
80km无痕网关特点:
图形化Web界面,无需记忆命令行
支持多台后端服务器的流量分发和故障转移
隐藏后端真实IP,提升安全性
几分钟即可完成配置
转发开启后网络不通?检查以下几点:
确认转发已开启:cat /proc/sys/net/ipv4/ip_forward
检查iptables规则:iptables -t nat -L -n -v
查看防火墙是否阻挡:iptables -L -n -v
检查网络接口状态:ip addr 和 ip route
开启转发 = sysctl -w net.ipv4.ip_forward=1
这个命令让Linux内核允许数据包在网卡间流动。要让数据包真的按预期"旅行",记得配合iptables的SNAT(让内网上网)或DNAT(暴露内网服务)使用。