Итак, имеется два компьютера, на одном две сетевые карты и он раздаёт интернет. Необходимо пробросить порты так,что бы можно было подключиться к серверу на втором компьютере.
Пол: Зарегистрирован: 29.06.2005 Сообщения: 83 Откуда: Melitopol/Zaporizhzhya, UA Репутация: 97.4
CyberMan писал(а):
Итак, имеется два компьютера, на одном две сетевые карты и он раздаёт интернет. Необходимо пробросить порты так,что бы можно было подключиться к серверу на втором компьютере.
Конечно, формализовать бы надо на предмет используемой ОС..
Ну...
Для FreeBSD.
Самый тривиальный (просто 2 сетевушки, одна из которых по dhcp или статически получает "внешний" IP). Пример скрипта:
src_port=80
dst_port=8080
dst_host=xxx.xxx.xxx.xxx,${dst_port}
src_host=yyy.yyy.yyy.yyy
ipfw add fwd $dst_host tcp from any to $src_host $src_port setup keep-state
Чтоб это работало надо собрать ядро с опциями IPDIVERT, IPFIREWALL_FORWARD
Если инет получается посредством PPP(ADSL и тд) или PPPoE, то есть как минимум 2 способа.
1. Неправильный используя natd + ipfw (pf). Такую настройку делают только ленивые, и к сожалению их в Мелитополе большинство. Однажды я даже задал вопрос одному (по-моему это бл админ с МХК): "Зачем ты юзаешь natd, когда nat можно сделать на уровне ядра?" Ответ был поистене "замечательным": "А нафига?..." Я даже спорить не стал. Все ясно с таким человеком...
Правило для мапа здесь такое же как описано выше
2. Правильный. NAT на уровне ядра. Тогда NAT делает сам ppp, а что мапить мишется в /etc/ppp/ppp.conf. Пример настройки:
nat enable yes
nat same_ports yes
nat use_sockets yes
nat port tcp xxx.xxx.xxx.xxx:80 80
Чтобы этот способ работал, необходимо собрать ядро с опциями: IPDIVERT, IPFIREWALL_NAT, LIBALIAS
В таком виде nat будет работать быстрее от 20 до 70%, чем с natd, все зависит от железа...
Для Виндовс, тут разные приблуды есть начиная от KWF и WinGate и заканчивая ISA Server. Ну там все интуитивно понятно.
Для Линукс:
echo 1 > /proc/sys/net/ipv4/ip_forward #Это включает форвард но временно, до ребута
iptables -t nat -A PREROUTING -p tcp --dst xxx.xxx.xxx.xxx --dport 80 -j DNAT --to-destination yyy.yyy.yyy.yyy:80
iptables -t nat -I POSTROUTING -p tcp --dst yyy.yyy.yyy.yyy --dport 80 -j SNAT --to-source zzz.zzz.zzz.zzz
где xxx.xxx.xxx.xxx - вншний IP
yyy.yyy.yyy.yyy - адрес сервера куда порт пробрасывается
zzz.zzz.zzz.zzz - адрес шлюза во внутренней сети
МакОСь, я думаю, Вы вряд ли юзаете, поэтому все...
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете голосовать в опросах