2つの仮想マシンがあります(ホストはWindowsにあります)。
- DHCPサーバー(Debian)
- クライアント(Debian)
問題は、クライアントがIPアドレスを受信し、両方のシステムが互いにpingすることができますが、クライアントがインターネットにアクセスできないことです。(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