You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

CentOS 7.9环境下配置NAT网关实现私有服务器访问互联网的问题排查与解决请求

CentOS 7.9环境下配置NAT网关实现私有服务器访问互联网的问题排查与解决请求

一、现有配置核心问题分析

从你提供的环境信息和命令输出来看,Server02无法通过NAT网关访问互联网主要由以下几个关键问题导致:

  • 内核IP转发未开启:Linux系统默认关闭IP数据包转发功能,这是作为网关的必要前提
  • NAT网关(Server01)缺少私有子网路由:路由表中没有指向Server02所在192.168.110.0/24网段的转发规则,无法正确处理私有子网的流量
  • Server02网关配置错误:当前网关设置为192.168.110.254,但该地址并非NAT网关在私有子网的绑定IP,导致流量无法正确投递到网关
  • Firewalld地址伪装(Masquerade)未启用:从截断的firewall-cmd输出看,地址伪装功能未正常配置,这是实现SNAT(源地址转换)让私有子网流量通过公网网卡出站的核心配置

二、分步配置与修复方案

1. 在NAT网关(Server01)开启内核IP转发

临时生效(重启后失效,用于快速测试):

sudo sysctl -w net.ipv4.ip_forward=1

永久生效(写入系统配置,重启后保留):

echo "net.ipv4.ip_forward=1" | sudo tee -a /etc/sysctl.conf
sudo sysctl -p

验证生效状态:

sysctl net.ipv4.ip_forward

输出应为net.ipv4.ip_forward = 1

2. 修正NAT网关(Server01)的路由与私有子网网卡配置

假设Server01有第二块网卡(如eth1)用于连接私有子网,先为该网卡配置IP(对应Server02原网关地址):

# 临时配置IP(重启后失效)
sudo ip addr add 192.168.110.254/24 dev eth1
sudo ip link set eth1 up
# 永久配置:编辑网卡文件/etc/sysconfig/network-scripts/ifcfg-eth1
# 写入以下内容(根据实际网卡名称调整)
TYPE=Ethernet
BOOTPROTO=static
NAME=eth1
DEVICE=eth1
ONBOOT=yes
IPADDR=192.168.110.254
NETMASK=255.255.255.0

然后添加私有子网路由:

# 临时添加路由
sudo ip route add 192.168.110.0/24 dev eth1 proto static metric 101
# 永久保存路由
echo "192.168.110.0/24 via 0.0.0.0 dev eth1" | sudo tee /etc/sysconfig/network-scripts/route-eth1

最后重启网络服务生效:

sudo systemctl restart network

3. 修正Server02的网关配置

将Server02的网关指向NAT网关的私有子网IP(192.168.110.254):
临时生效:

sudo ip route change default via 192.168.110.254 dev eth0

永久生效:编辑网卡配置文件(如/etc/sysconfig/network-scripts/ifcfg-eth0),修改或添加:

GATEWAY=192.168.110.254

然后重启网络服务:

sudo systemctl restart network

4. 在NAT网关(Server01)启用Firewalld地址伪装

开启地址伪装功能(实现SNAT转换):

# 临时启用(当前会话生效)
sudo firewall-cmd --add-masquerade --zone=public
# 永久启用(重启firewalld后保留)
sudo firewall-cmd --add-masquerade --zone=public --permanent
# 重新加载firewalld配置
sudo firewall-cmd --reload

验证配置:

sudo firewall-cmd --list-all

输出的public区域中应包含masquerade: yes


三、配置验证与问题排查

  1. 基础连通性验证
    在Server02上测试互联网访问:
    # 测试DNS解析
    nslookup baidu.com
    # 测试ICMP连通性
    ping -c 4 8.8.8.8
    # 测试HTTPS访问
    curl -I https://www.baidu.com
    
  2. 流量排查
    如果仍无法访问,可在NAT网关的私有子网网卡抓包,查看是否接收Server02的流量:
    sudo tcpdump -i eth1 host 192.168.110.101
    
  3. 临时关闭防火墙排查
    若怀疑firewalld拦截流量,可临时关闭服务测试(仅限排查用,测试后务必重启):
    sudo systemctl stop firewalld
    

备注:内容来源于stack exchange,提问作者Thanh Hoang

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.15 13:58:20