我有以下系统图:互联网 –> NAT 网关服务器(服务器 01)–> 应用服务器(服务器 02)。NAT 网关服务器可以访问互联网。服务器 01 和服务器 02 可以互相 ping 通。两台服务器都运行 Centos 7.9。我希望私有子网中的服务器 02 通过 NAT 网关服务器 01 访问互联网。我在这里遇到的问题是服务器 02 无法访问互联网。您能帮我找出这种情况的原因和配置解决方案吗?

服务器01:IP:192.168.100.100/24,网关:192.168.100.254

服务器02:IP:192.168.110.101/24,网关:192.168.110.254

[centos@nat-gateway-server-01 ~]$ ip route

默认通过 192.168.100.254 dev eth0 proto static metric 100

192.168.100.0/24 dev eth0 proto 内核范围链接 src 192.168.100.100 度量 100

[centos@nat-gateway-server-01 ~]$ sudo firewall-cmd –list-all

公开 (活跃)

目标:默认

icmp 块反转:否

接口:eth0

来源:

服务:dhcpv6-客户端 dns http https ssh

端口:

协议:

化装舞会:是的

转发端口:

源端口:

icmp 阻止:

丰富的规则:

rule family="ipv4" source address="192.168.110.0/24" accept

[centos@nat-gateway-server-01 ~]$ sestatus

SELinux 状态:已禁用

[centos@nat-gateway-server-01 ~]$ ping 192.168.110.101

PING 192.168.110.101 (192.168.110.101) 56(84) 字节数据。

来自 192.168.110.101 的 64 字节:icmp_seq=1 ttl=63 时间=0.158 毫秒

来自 192.168.110.101 的 64 字节:icmp_seq=2 ttl=63 时间=0.123 毫秒

— 192.168.110.101 ping 统计 —

发送 4 个数据包,接收 4 个数据包,0% 数据包丢失,时间 3000 毫秒

rtt 最小值/平均值/最大值/mdev = 0.056/0.101/0.158/0.042 毫秒

[centos@nat-gateway-server-01 ~]$ ping 8.8.8.8

PING 8.8.8.8 (8.8.8.8) 56(84)字节数据。

来自 8.8.8.8 的 64 字节:icmp_seq=1 ttl=110 时间=11.6 毫秒

来自 8.8.8.8 的 64 字节:icmp_seq=2 ttl=110 时间=11.5 毫秒

— 8.8.8.8 ping 统计 —

发送 2 个数据包,接收 2 个数据包,0% 数据包丢失,时间 1001 毫秒

rtt 最小值/平均值/最大值/mdev = 11.584/11.596/11.608/0.012 毫秒

[centos@app-server-02 ~]$ ip 路由

默认通过 192.168.110.254 dev eth0 proto static metric 100

192.16.110.0/24 dev eth0 proto 内核范围链接 src 192.168.110.101 度量 100

[centos@app-server-02 ~]$ ping 192.168.100.100

PING 192.168.100.100 (192.168.100.100) 56(84) 字节数据。

来自 192.168.100.100 的 64 字节:icmp_seq=1 ttl=63 时间=0.158 毫秒

来自 192.168.100.100 的 64 字节:icmp_seq=2 ttl=63 时间=0.123 毫秒

— 192.168.100.100 ping 统计信息 —

发送 4 个数据包,接收 4 个数据包,0% 数据包丢失,时间 3000 毫秒

rtt 最小值/平均值/最大值/mdev = 0.056/0.101/0.158/0.042 毫秒

[centos@app-server-02 ~]$ ping 8.8.8.8

PING 8.8.8.8 (8.8.8.8) 56(84)字节数据。

— 8.8.8.8 ping 统计 —

发送了 4 个数据包,接收了 0 个数据包,100% 数据包丢失,耗时 2999 毫秒

[centos@app-server-02 ~]$ sudo 防火墙-cmd –list-all

公开 (活跃)

目标:默认

icmp 块反转:否

接口:eth0

来源:192.168.100.100

服务:dhcpv6-客户端 dns http https ssh

端口:

协议:

化装舞会:是的

转发端口:

源端口:

icmp 阻止:

丰富的规则:

rule family="ipv4" source address="192.168.100.0/24" accept

[centos@app-server-02 ~]$ 状态

SELinux 状态:已禁用


最佳答案
1

  • ens18 连接到 ISP 路由器并从 DHCP 获取 IP。
  • ens19 连接到我的 LAN 网络,IP 地址为 192.168.100.10,这是手动配置的。

  1. 对于 nat 服务器:
  • 启用 nat 模块:sudo modprobe iptable_nat
  • 永久网络转发:

    echo “net.ipv4.ip_forward = 1” >> /etc/sysctl.conf


    sysctl -p /etc/sysctl.conf
  • NAT 路由器的后期路由和转发:

    iptables -t nat -A POSTROUTING -o ens18 -j MASQUERADE


    iptables -A FORWARD -i ens19 -j ACCEPT

  1. 对于客户端服务器:
  • 打印当前路线:

[root@server2 ~]# 路线 -n

内核 IP 路由表

目标网关 Genmask 标志 指标参考

使用 Iface

0.0.0.0 192.168.100.1 0.0.0.0 UG 100 0 0 ens18

192.168.100.0 0.0.0.0 255.255.255.0 U 100 0 0 ens18

  • 删除默认路由:

    route del -net default

  • 验证默认路由已被删除:

[root@server2 ~]# 路线 -n

内核 IP 路由表

目标网关 Genmask 标志 指标参考

使用 Iface

192.168.100.0 0.0.0.0 255.255.255.0 U 100 0 0 ens18

  • 为接口添加新的默认网关,网关IP应该是服务器1的IP:

路由添加默认网关 192.168.100.10 dev ens18

  • 核实:

[root@server2 ~]# 路线 -n

内核 IP 路由表

目标网关 Genmask 标志 指标参考

使用 Iface

0.0.0.0 192.168.100.10 0.0.0.0 UG 100 0 0 ens18

192.168.100.0 0.0.0.0 255.255.255.0 U 100 0 0 ens18

现在尝试连接到互联网。

  1. 配置 DNS 转发器以访问任何 Web URL:
  • 使用 DNS 配置接口,编辑接口配置文件或使用 nmcli 命令添加 DNS:

ls -lthr /etc/sysconfig/network-scripts/ifcfg-ens18

DOMAIN=你的域名.local

  • 核实:

root@server2 ~]# cat /etc/resolv.conf

由 NetworkManager 生成

搜索你的域名.local

名称服务器 192.168.0.21

名称服务器 192.168.0.1

相应地改变命令的值。