DHCP 클라이언트에는 인터넷이 없지만 게이트웨이를 ping할 수 있습니다.

DHCP 클라이언트에는 인터넷이 없지만 게이트웨이를 ping할 수 있습니다.

두 개의 가상 머신이 있습니다(호스트는 Windows에 있음).

  • DHCP 서버(Debian)
  • 클라이언트(데비안)

문제는 클라이언트가 IP 주소를 수신하고 두 시스템이 서로 핑할 수 있지만 클라이언트가 인터넷에 액세스할 수 없다는 것입니다.(ping 8.8.8.8은 반환되지 않음)

  • 내 DHCP 서버가 "enp0s3"을 통해 인터넷에 연결되어 있습니다.네트워크 주소 변환.
  • 내 DHCP 서버가 다음에 연결되어 있습니다.호스트 전용"enp0s9"를 통해.
  • 내 클라이언트가 연결되었습니다호스트 전용"enp0s3"을 통해.

네트워크 유형을 잘못 선택했나요?

ifconfig -aDHCP 서버에서:

DHCP 서버의 <code>ifconfig -a</code>

ifconfig -a && ip route show클라이언트 측에서: config -a && ip 라우팅이 클라이언트에 표시되는 경우

/etc/dhcp/dhcpd.conf: dhcpd 구성 파일

Debian에서 Windows 방화벽과 iptables --flush를 비활성화했습니다. 앞으로는 가상 머신 클라이언트를 이더넷에 연결된 실제 머신으로 교체하고 싶습니다.

나는 클라이언트에게 IP 주소, 마스크, 게이트웨이를 제공합니다. 게이트웨이 문제인 것 같은데 클라이언트에서 인터넷에 액세스하는 방법을 모르겠습니다.

답변1

enp0s9에서 enp0s3으로 나가는 트래픽을 전달하려면 IP 전달을 활성화하고 iptables를 사용해야 합니다.

#!/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

관련 정보