Суть такая. Стоит небольшая сеть ввиде:
Интернет--------->85.113.37.77 [сервер №1] 192.168.66.100-------------(локальная сеть)------------192.168.66.101[сервер №2]
Мне надо было сделать, чтобы сервер №2 был доступен из интернета.
Сделал переброс нужного порта:
iptables -t nat -A PREROUTING -p udp -d 85.113.37.77 --dport 27017 -j DNAT --to-destination 192.168.66.101:27017
iptables -t nat -A POSTROUTING -p udp -d 192.168.66.101 --dport 27017 -j SNAT --to-source 85.113.37.77
iptables -t nat -A POSTROUTING -p udp -s 192.168.66.101 --sport 27017 -j SNAT --to-source 85.113.37.77:27017
iptables -t nat -A OUTPUT --dst 85.113.37.77 -p udp --dport 27017 -j DNAT --to-destination 192.168.66.101:27017
Теперь сервер №2 по порту 27017 виден в интернете, но вот проблема заключается в том, что сервер №2 определяет всех клиентов из интернета под одним IP - 192.168.66.100
Как сделать, чтобы сервер №2 видел настоящий реальный IP клиента ?
Пользователь решил продолжить мысль 23 Января 2011, 09:47:59:
Я так думаю, что надо еще что-то прописать в iptables. Но гугление и курение мануалов мне не помогли
Пользователь решил продолжить мысль 23 Января 2011, 10:05:08:
iptables -L -v
root@raven2:~# iptables -L -v
Chain INPUT (policy ACCEPT 830K packets, 101M bytes)
pkts bytes target prot opt in out source destination
Chain FORWARD (policy ACCEPT 231K packets, 16M bytes)
pkts bytes target prot opt in out source destination
0 0 ACCEPT all -- eth0 eth1 192.168.66.0/24 anywhere ctstate NEW
9374K 3406M ACCEPT all -- any any anywhere anywhere ctstate RELATED,ESTABLISHED
0 0 ACCEPT all -- eth1 eth0 192.168.66.101 anywhere ctstate NEW
0 0 ACCEPT all -- eth0 eth1 192.168.66.0/24 anywhere ctstate NEW
0 0 ACCEPT all -- any any anywhere anywhere ctstate RELATED,ESTABLISHED
0 0 ACCEPT all -- eth0 eth1 192.168.66.0/24 anywhere ctstate NEW
0 0 ACCEPT all -- any any anywhere anywhere ctstate RELATED,ESTABLISHED
Chain OUTPUT (policy ACCEPT 922K packets, 489M bytes)
pkts bytes target prot opt in out source destination
root@raven2:~#