linux 转发开启,linux 如何开启转发

时间:2026-05-11 14:06

一、核心命令

bash
# 临时开启(立即生效,重启失效)
echo 1 > /proc/sys/net/ipv4/ip_forward

# 或使用 sysctl
sysctl -w net.ipv4.ip_forward=1

验证是否开启

bash
sysctl net.ipv4.ip_forward
# 输出应为:net.ipv4.ip_forward = 1

二、永久开启(重启后依然有效)

bash
# 写入配置文件
echo "net.ipv4.ip_forward=1" >> /etc/sysctl.conf

# 立即加载生效
sysctl -p

一行搞定永久开启

bash
echo "net.ipv4.ip_forward=1" >> /etc/sysctl.conf && sysctl -p

三、开启后能干什么?

 
 
场景 用途
NAT 上网 内网设备通过 Linux 共享公网 IP
端口转发 把外部请求转给内网服务器
VPN 服务 让客户端访问内网资源
容器网络 Docker 容器之间互通
路由器 多个网段之间互相通信

配合 iptables 使用示例

bash
# NAT 上网
iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -o eth0 -j MASQUERADE

# 端口转发(8080→内网机器80)
iptables -t nat -A PREROUTING -p tcp --dport 8080 -j DNAT --to-destination 192.168.1.100:80
iptables -t nat -A POSTROUTING -j MASQUERADE

四、检查与排错

bash
# 检查是否开启
cat /proc/sys/net/ipv4/ip_forward

# 查看转发规则
iptables -t nat -L -n
iptables -L FORWARD -n

# 查看路由表
ip route

五、避坑指南

 
 
问题 原因 解决
重启后失效 没写配置文件 执行永久开启命令
转发不生效 只开了转发没配规则 添加 iptables NAT 规则
连不上 FORWARD 链没放行 iptables -A FORWARD -j ACCEPT

六、替代方案:80km无痕网关

开启内核转发后,如果觉得 iptables 语法复杂,可以用 80km无痕网关(曾用名:80KM端口流量转发程序) 简化配置。

json
// forwarder.json
{
    "listen": "0.0.0.0:8080",
    "routers": [
        {"from": "0.0.0.0/0", "to": "192.168.1.100:80"}
    ]
}
bash
80km-forwarder -config forwarder.json

无需记忆 iptables 语法,JSON 配置即完成端口转发。


一句话总结sysctl -w net.ipv4.ip_forward=1 开启转发,配合 iptables 或 80km无痕网关 实现流量转发。

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