DHCP 客户端没有互联网,但可以 ping 通网关

DHCP 客户端没有互联网,但可以 ping 通网关

我有两个虚拟机(主机在 Windows 上):

  • 一台 DHCP 服务器(Debian 上)
  • 一个客户端(Debian 上)

问题是客户端收到IP地址,两台机器可以互相ping通,但客户端无法访问互联网。(ping 8.8.8.8 永远不会返回)

  • 我的 DHCP 服务器通过“enp0s3”连接到互联网网络地址转换
  • 我的 DHCP 服务器已连接到仅主机通过“enp0s9”。
  • 我的客户端已连接仅主机通过“enp0s3”。

我选择的网络类型是否错误?

ifconfig -a在 DHCP 服务器上:

DHCP 服务器上的 <code>ifconfig -a</code>

ifconfig -a && ip route show在客户端: if config -a && ip 路由显示在客户端

/etc/dhcp/dhcpd.conf: dhcpd配置文件

我在 Debian 上停用了 Windows 的防火墙和 iptables --flush 。将来我想用插入以太网的真实机器替换虚拟机客户端。

我给我的客户一个 IP 地址、一个掩码、一个网关。我认为这是一个网关问题,但我不知道如何在客户端上访问互联网。

答案1

您需要启用 ip 转发并使用 iptables 将传出流量从 enp0s9 转发到 enp0s3

#!/bin/sh

PATH=/usr/sbin:/sbin:/bin:/usr/bin

#
# delete all existing rules.
#
iptables -F
iptables -t nat -F
iptables -t mangle -F
iptables -X

# Always accept loopback traffic
iptables -A INPUT -i lo -j ACCEPT


# Allow established connections, and those not coming from the outside
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -m state --state NEW -i ! enp0s3 -j ACCEPT
iptables -A FORWARD -i enp0s3 -o enp0s9 -m state --state ESTABLISHED,RELATED -j ACCEPT

# Allow outgoing connections from the LAN side.
iptables -A FORWARD -i enp0s9 -o enp0s3 -j ACCEPT

# Masquerade.
iptables -t nat -A POSTROUTING -o enp0s3 -j MASQUERADE

# Don't forward from the outside to the inside.
iptables -A FORWARD -i enp0s3 -o enp0s3 -j REJECT

# Enable routing.
echo 1 > /proc/sys/net/ipv4/ip_forward

来源:https://debian-administration.org/article/23/Setting_up_a_simple_Debian_gateway

相关内容