
這個設定有什麼問題嗎?主機和來賓都是CentOS 6.5
具體來說,我無法在來賓上運行 yum。
我可以愉快地與來賓進行 ping 操作,包括 pingmirrorlist.centos.org
如果我從主機 iptables 中刪除連接埠 80 規則(見下文),那麼 yum 就可以正常運作。但我需要製定該規則,以便我可以將訪客用作可公開訪問的網路伺服器。
百勝更新輸出:
Loaded plugins: fastestmirror
Determining fastest mirrors
Could not retrieve mirrorlist http://mirrorlist.centos.org/?release=6&arch=x86_64&repo=os error was
12: Timeout on http://mirrorlist.centos.org/?release=6&arch=x86_64&repo=os: (28, 'connect() timed out!')
Error: Cannot find a valid baseurl for repo: base
Guest 的 IP 為 192.168.122.47,我在下面設定的 ssh 連接埠轉送可以工作,但 yum 不行。
訪客 iptables 已被停用。
主機ip表:
# Generated by iptables-save v1.4.7 on Sat May 10 15:54:24 2014
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [4:560]
-A INPUT -i virbr0 -p udp -m udp --dport 53 -j ACCEPT
-A INPUT -i virbr0 -p tcp -m tcp --dport 53 -j ACCEPT
-A INPUT -i virbr0 -p udp -m udp --dport 67 -j ACCEPT
-A INPUT -i virbr0 -p tcp -m tcp --dport 67 -j ACCEPT
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT
-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -d 192.168.122.0/24 -o virbr0 -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT
-A FORWARD -s 192.168.122.0/24 -i virbr0 -j ACCEPT
-A FORWARD -i virbr0 -o virbr0 -j ACCEPT
-A FORWARD -o virbr0 -j REJECT --reject-with icmp-port-unreachable
-A FORWARD -i virbr0 -j REJECT --reject-with icmp-port-unreachable
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
COMMIT
# Completed on Sat May 10 15:54:24 2014
# Generated by iptables-save v1.4.7 on Sat May 10 15:54:24 2014
*mangle
:PREROUTING ACCEPT [4:316]
:INPUT ACCEPT [4:316]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [4:560]
:POSTROUTING ACCEPT [4:560]
-A POSTROUTING -o virbr0 -p udp -m udp --dport 68 -j CHECKSUM --checksum-fill
COMMIT
# Completed on Sat May 10 15:54:24 2014
# Generated by iptables-save v1.4.7 on Sat May 10 15:54:24 2014
*nat
:PREROUTING ACCEPT [0:0]
:POSTROUTING ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A PREROUTING -p tcp -m tcp --dport 792 -j DNAT --to-destination 192.168.122.47:22
-A PREROUTING -p tcp -m tcp --dport 80 -j DNAT --to-destination 192.168.122.47:80
-A POSTROUTING -s 192.168.122.0/24 ! -d 192.168.122.0/24 -p tcp -j MASQUERADE --to-ports 1024-65535
-A POSTROUTING -s 192.168.122.0/24 ! -d 192.168.122.0/24 -p udp -j MASQUERADE --to-ports 1024-65535
-A POSTROUTING -s 192.168.122.0/24 ! -d 192.168.122.0/24 -j MASQUERADE
COMMIT
# Completed on Sat May 10 15:54:24 2014
答案1
您的 NAT 過度;你不僅在進行 NAT在將連線綁定到連接埠 80,但是出去綁定的也是如此。修改NAT規則,指定流量必須從外部進來,例如
-A PREROUTING -p tcp -m tcp -i eth0 --dport 80 -j DNAT --to-destination 192.168.122.47:80
並且它將停止匹配(並幹擾)與外部網路伺服器的合法出站流量。