私は他の多くの投稿を読みましたが、これを理解することはできません。
eth0は、Comcastモデムに接続された外部接続です。サーバーは問題なくインターネットにアクセスできます。
eth1は内部であり、クライアント用にDHCPを実行しています。 DHCPは正常に機能しています。すべてのクライアントは、IPを取得してサーバーにpingを実行できますが、インターネットにアクセスできません。
ISC-DHCP-SERVERを使用していて、/ etc/default/isc-dhcp-serverをINTERFACE = "eht1"に設定しました
これが私のdhcpd.confファイルです/ etc/dhcp/dhcpd.conf
ddns-update-style interim;
ignore client-updates;
subnet 10.0.10.0 netmask 255.255.255.0 {
range 10.0.10.10 10.0.10.200;
option routers 10.0.10.2;
option subnet-mask 255.255.255.0;
option domain-name-servers 208.67.222.222, 208.67.220.220; #OpenDNS
# option domain-name "example.com";
default-lease-time 21600;
max-lease-time 43200;
authoritative;
}
net.ipv4.ip_forward = 1を変更しました/ etc/sysctl.conf
これが私のインターフェースファイルです:
auto lo
iface lo inet loopback
auto eth0
iface eth0 inet dhcp
iface eth1 inet static
address 10.0.10.2
netmask 255.255.255.0
network 10.0.10.0
auto eth1
そして最後に-ここに私のiptables.confファイルがあります:
# Firewall configuration written by system-config-firewall
# Manual customization of this file is not recommended.
*nat
:PREROUTING ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
:POSTROUTING ACCEPT [0:0]
-A POSTROUTING -s 10.0.10.0/24 -o eth0 -j MASQUERADE
#-A PREROUTING -i eth0 -p tcp --dport 59668 -j DNAT --to-destination 10.0.10.2:59668
COMMIT
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -i eth1 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 443 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 53 -j ACCEPT
-A INPUT -m state --state NEW -m udp -p udp --dport 53 -j ACCEPT
-A FORWARD -s 10.0.10.0/24 -o eth0 -j ACCEPT
-A FORWARD -d 10.0.10.0/24 -m state --state ESTABLISHED,RELATED -i eth0 -j ACCEPT
-A FORWARD -p icmp -j ACCEPT
-A FORWARD -i lo -j ACCEPT
-A FORWARD -i eth1 -j ACCEPT
#-A FORWARD -i eth0 -m state --state NEW -m tcp -p tcp -d 10.0.10.2 --dport 59668 -j ACCEPT
-A INPUT -j REJECT --reject-with icmp-Host-prohibited
-A FORWARD -j REJECT --reject-with icmp-Host-prohibited
COMMIT
私は完全に立ち往生しています。クライアントがインターネットにアクセスできない理由がわかりません。サービスが不足していますか?サービスが実行されていませんか?どんな助けでも大歓迎です。できる限り徹底的に努力しましたが、何か見落としがあった場合はお知らせください。ありがとうございました!
問題は私のiptablesにありますが、どこにあるのかわかりません。クリーンスイープは、ubuntuフォーラムで私の紳士になるために与えられたものを修正しました。
iptables --flush
iptables --table nat --flush
iptables --delete-chain
#
#
iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT
iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
iptables -A OUTPUT -m conntrack --ctstate NEW,ESTABLISHED,RELATED -j ACCEPT
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
iptables -A FORWARD -i eth1 -j ACCEPT
これが他の人に役立つことを願っています!ここで、各ルールを1つずつ追加する必要があります。助けてくれてありがとう。
また、iptables iptables-save> /somewhere/iptables.conf(またはいくつかのファイル名)を保存してから、pre-up iptables-restore </ somewhere/iptables.conf(または何でも)eth in / etc/network/interfaces。これにより、NICがアクティブになる前にルールリストが確実に読み込まれます。 iptablesに変更を加えるときは、必ず再保存してください。