手把手教你用Linux做内网中转服务器(端口转发+网段互通)
一、什么是内网转发Linux内网转发是指将一台Linux服务器作为网络中转站把从一个网卡或端口接收到的数据包转发到另一个目标地址。它常被用于让无公网IP的内网服务被外网访问、打通不同网段的隔离网络、或者隐藏真实业务服务器的IP。二、开启内核IP转发内网转发的第一步是开启Linux内核的IP转发功能否则系统会丢弃非本机的数据包。临时开启重启失效bashecho 1 /proc/sys/net/ipv4/ip_forward永久开启编辑 /etc/sysctl.confbashnet.ipv4.ip_forward 1sysctl -p 使配置生效三、两种主要的转发方式| 转发方式 | 实现工具 | 适用场景 | 特点 ||---------|---------|---------|------|| 端口转发 | iptables/firewalld | 将特定端口的流量转发到另一台服务器 | 精确控制适合暴露内网服务 || IP转发SNAT | iptables | 整个网段或所有流量通过中转服务器路由 | 让内网设备共享公网出口或连接不同网段 |1. iptables端口转发TCP/UDPbash将访问本机8080端口的流量转发到内网192.168.1.100:80iptables -t nat -A PREROUTING -p tcp --dport 8080 -j DNAT --to-destination 192.168.1.100:80iptables -t nat -A POSTROUTING -j MASQUERADE 关键让返回包能正确路由2. IP转发SNAT共享上网/网段互通如果想让内网其他设备通过这台Linux服务器上网需要添加SNAT规则bashiptables -t nat -A POSTROUTING -s 192.168.1.0/24 -o eth0 -j MASQUERADE这条命令让从内网网段发出的流量在经过eth0网卡出去时源IP被替换为eth0的IP从而实现“上网共享”。四、应用场景举例| 场景 | 解决方案 ||------|---------|| 外网访问内网Web服务 | 端口转发公网IP:8080 → 内网服务器:80 || 内网设备通过一台服务器上网 | IP转发 SNAT 内网设备设置中转机为网关 || 打通两个不同网段的VPC | 中转服务器开启IP转发配置静态路由 |五、关键注意事项- 防火墙放行确保iptables或firewalld的FORWARD链允许转发流量- 开启MASQUERADE端口转发务必添加MASQUERADE规则否则回包无法送达客户端- SELinux干扰可临时setenforce 0测试是否为SELinux导致转发失败一句话总结开启ip_forward → 用iptables添加DNATMASQUERADE规则 → 配置防火墙允许转发即可实现Linux内网转发。