У меня есть 2 ПК, созданные VMWARE
1. ПК1 (сделать маршрутизатор iptables):
ens33 's IP: 192.168.1.5/24 (network connection is bridged)
ens37 's IP: 192.168.2.2/24. (network connection is wmnet9)
2. ПК2 (веб-сервер):
ens33 's IP: 192.168.2.1/24. (network connection is wmnet9)
3. Мой IP-реальный ПК:
192.168.1.16/24
Как сказать, что мой реальный ПК может подключаться к webserver
через iptables
?
Я пытался работать:
echo 1 />proc/sys/net/ipv4/ip_forward
iptables -t nat -A PREROUTING -p tcp 192.168.1.5 --dport 80 -j DNAT --to-destination 192.168.2.2:80
iptables -A FORWARD -p tcp -d 192.168.2.2 --dport 80 -j ACCEPT
iptables -A FORWARD -p tcp -S 192.168.2.2 --dport 80 -j ACCEPT
iptables -A INPUT -p tcp -d 192.168.2.2 --dport 80 -j ACCEPT
Но я получаю соединение с помощью Google Chrome оповещения Этот сайт недоступен
Мои правила iptables:
iptables -v -x -n -L
Chain INPUT (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
9 456 ACCEPT tcp -- * * 0.0.0.0/0 192.168.2.2 tcp dpt:80
Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
0 0 ACCEPT tcp -- * * 0.0.0.0/0 192.168.2.2 tcp dpt:80
0 0 ACCEPT tcp -- * * 192.168.2.2 0.0.0.0/0 tcp spt:80
Chain OUTPUT (policy ACCEPT 9 packets, 360 bytes)
pkts bytes target prot opt in out source destination
-
iptables -t nat -v -x -n -L
Chain PREROUTING (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
9 456 DNAT tcp -- * * 0.0.0.0/0 192.168.168.1.5 tcp dpt:80 to:192.168.2.2:80
Chain INPUT (policy ACCEPT 9 packets, 456 bytes)
pkts bytes target prot opt in out source destination
Chain OUTPUT (policy ACCEPT 594 packets, 38555 bytes)
pkts bytes target prot opt in out source destination
Chain POSTROUTING (policy ACCEPT 181 packets, 11845 bytes)
pkts bytes target prot opt in out source destination
413 26710 SNAT all -- * ens33 0.0.0.0/0 0.0.0.0/0 to:192.168.1.5
Я suscess для попытки командами:
iptables-A PREROUTING-t туземный-p tcp-d 192.168.1.5 - dport 80-j DNAT - к месту назначения 192.168.2.1
iptables-A POSTROUTING-t туземная ПОДМЕНА-o ens37-j
Вы не обеспечили обратный канал. Вам нужно:
iptables -t nat -A POSTROUTING -o ens33 -j SNAT --to 192.168.1.5
я предполагаю, что это - просто опечатка в Вашей строке PREROUTING, но независимо я сделал бы это этот путь во всяком случае:
iptables -t nat -A PREROUTING -p tcp -i ens33 --dport 80 -j DNAT --to-destination 192.168.2.2:80
, Если Ваша политика по умолчанию для ВПЕРЕД цепочка, ПРИНИМАЮТ, то Вам не нужны те правила. Вам не нужно ВХОДНОЕ правило цепочки.