두 개의 가상 머신이 있습니다(호스트는 Windows에 있음).
- DHCP 서버(Debian)
- 클라이언트(데비안)
문제는 클라이언트가 IP 주소를 수신하고 두 시스템이 서로 핑할 수 있지만 클라이언트가 인터넷에 액세스할 수 없다는 것입니다.(ping 8.8.8.8은 반환되지 않음)
- 내 DHCP 서버가 "enp0s3"을 통해 인터넷에 연결되어 있습니다.네트워크 주소 변환.
- 내 DHCP 서버가 다음에 연결되어 있습니다.호스트 전용"enp0s9"를 통해.
- 내 클라이언트가 연결되었습니다호스트 전용"enp0s3"을 통해.
네트워크 유형을 잘못 선택했나요?
ifconfig -a
DHCP 서버에서:
ifconfig -a && ip route show
클라이언트 측에서:
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