Linux 内网转发设置教程

首页 2026-05-11 13:55:53

一、核心:开启 IP 转发

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

二、场景命令

场景1:内网上网(SNAT)

bash
# 动态IP(推荐)
iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -o eth0 -j MASQUERADE

# 固定公网IP
iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -o eth0 -j SNAT --to-source 1.2.3.4

场景2:内网之间互访

bash
# eth1(192.168.1.0/24) 与 eth2(10.0.0.0/24) 互通
iptables -A FORWARD -i eth1 -o eth2 -j ACCEPT
iptables -A FORWARD -i eth2 -o eth1 -j ACCEPT

场景3:内网端口转发(A机器 → B机器)

bash
# 访问 192.168.1.10:8080 → 转发到 10.0.0.100:80
iptables -t nat -A PREROUTING -d 192.168.1.10 -p tcp --dport 8080 -j DNAT --to-destination 10.0.0.100:80
iptables -t nat -A POSTROUTING -d 10.0.0.100 -p tcp --dport 80 -j MASQUERADE
iptables -A FORWARD -p tcp -d 10.0.0.100 --dport 80 -j ACCEPT

三、查看与维护

bash
# 查看规则
iptables -t nat -L -n -v
iptables -L FORWARD -n -v

# 检查转发是否生效
sysctl net.ipv4.ip_forward

四、避坑

 
 
问题 原因 解决
内网上不了网 缺 FORWARD 放行 iptables -A FORWARD -j ACCEPT
某网段不通 路由不对 检查网关配置和路由表
高并发丢包 连接跟踪表满 net.netfilter.nf_conntrack_max=1048576

三行搞定:开转发 → MASQUERADE → FORWARD 放行。

 
 
 
 
 
 
 
 
 
 

Linux 内网转发设置教程
Linux iptables 转发设置,Linux iptables 转发教程
Linux 端口转发完全指南
Linux 转发命令速查,Linux常见转发命令
Linux 地址转发完全指南:从内核参数到 NAT 实战
Linux NAT转发与网关实战:从iptables到高效流量转发程序
Win系统实现网络转发与端口映射:从 IPEnableRouter 到 RRAS 完整步骤
Win7 IP转发怎么开?3分钟让电脑变成“网络桥接器”
Windows网络转发到底能转哪些协议?为什么只支持TCP
win8 路由转发:Win8路由转发实用指南