要让linux主机实现内网互通,核心是配置静态路由并开启ip转发;需确保route01双网卡正确配置、server01和server02分别设置对方网段的静态路由,且必须启用net.ipv4.ip_forward=1,否则数据包会被丢弃。

要让 Linux 主机实现内网互通,核心是配置静态路由 + 开启 IP 转发。这不是单纯加一条 route 就能通的事,而是需要两端(或中继设备)协同、路径双向可达。下面分场景说清楚关键动作。
确认网络拓扑和接口角色
先理清谁连谁:比如 server01(192.168.20.66/24)和 server02(172.16.10.66/24)不在同一网段,中间需经一台双网卡路由器 route01(192.168.20.254 和 172.16.10.254)。只有 route01 同时接入两个网段,它才具备“转发”能力。
- 在 route01 上执行 ip a 确认两个接口均已配置正确 IP 并处于 UP 状态
- server01 的默认网关应设为 192.168.20.254;server02 的默认网关应设为 172.16.10.254
- 若 server01/server02 没配网关,就得手动给它们各自加一条指向对方网段的静态路由
开启 IPv4 转发(必须做)
Linux 默认不转发数据包,即使路由表有路径,包也会被丢弃。必须显式启用:
- 临时生效:echo 1 > /proc/sys/net/ipv4/ip_forward
- 永久生效:编辑 /etc/sysctl.conf,添加或取消注释 net.ipv4.ip_forward = 1,再运行 sysctl -p
注意:仅配置路由但没开转发,ping 通但 ssh/curl 卡住 是最典型症状。
Linux 性能分析与调优专家,覆盖 CPU、内存、磁盘 I/O、网络、内核参数、编译优化、容器/K8s。适用场景:系统卡顿/高负载、内存不足/OOM/Swap 高、CPU 异常/iowait 高。
配置静态路由(按角色区分)
route01(路由器)无需额外加静态路由——只要两个接口都配了 IP,内核会自动生成直连路由(192.168.20.0/24 和 172.16.10.0/24),足够完成转发。
server01 和 server02 需要互相知道对方网段:
- server01 上加: ip route add 172.16.10.0/24 via 192.168.20.254
- server02 上加: ip route add 192.168.20.0/24 via 172.16.10.254
验证用 ip route show,删除用 ip route del 172.16.10.0/24。这些是临时路由,重启即失效;如需永久,按发行版写入对应配置文件(如 CentOS 的 route-eth0,Ubuntu Netplan 的 routes 字段)。
多网卡主机慎用默认网关
如果 route01 或某台服务器本身有多个网卡且都配了默认网关,route add default gw 会相互覆盖,导致回程路径错乱(请求从 eth1 进、响应从 eth0 出),引发 SSH 断连、应用超时。
- 单网卡场景:直接配默认网关即可
- 多网卡场景:不要配多个 default,改用策略路由(ip rule + ip route table),为每张网卡分配独立路由表和 from 规则
- 务必检查 /etc/iproute2/rt_tables 是否已注册新表名(如 100 tab_eth0)










