Linux 内网转发设置教程

首页 2026-05-11 17:37:45

一、核心:开启 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 放行。

 
 
 
 
 
 
 
 
 
 

nat123映射怎么用?超详细步骤,外网访问内网轻松搞定
nat123域名怎么用?两种方式轻松搞定
nat123怎么用?简单几步实现内网穿透
内网穿透工具对比:nat123、花生壳与轻量新选择
远程访问内网很简单:用对工具,一“箭”穿透
ngrok下载完全指南:从入门到获取客户端
内网远程桌面软件:穿透局域网边界的数字窗口
从外网远程访问内网服务器的完整方案
Windows Server 2008端口转发完全教程:netsh命令添加/查看/删除/重置
为什么三层交换机转发比Linux服务器快?转发表硬件加速的秘密