Есть сервер Freebsd-4.8 подключенный к интернет с реальным адресом,есть сервер WinXP c локальным адресом(192.168.0.100)на котором стоит IIS5 c веб-сайтом,вопрос такой каким образом можно сделать так что-бы клиенты из интернета могли заходить на этот сервер с локальным адресом.
Зараннее спасибо!
>Есть сервер Freebsd-4.8 подключенный к интернет с реальным адресом,есть сервер WinXP c
>локальным адресом(192.168.0.100)на котором стоит IIS5 c веб-сайтом,вопрос такой каким образом можно
>сделать так что-бы клиенты из интернета могли заходить на этот сервер
>с локальным адресом.
>Зараннее спасибо!cмотри iptables -j DNAT
iptables -t nat -A PREROUTING -p tcp -m tcp --dport ZZZZ -j DNAT --to-destination 90.0.0.X:YY
(все что пришло на порт zzzz главной машини уходит на 90.0.0.X:YY, На 90.0.0.X:YY default gateway должен быть ip основного компа)
(Не забудь FORWARD пустить и про
echo "1" > /proc/sys/net/ipv4/ip_forward)
>>Есть сервер Freebsd-4.8 подключенный к интернет с реальным адресом,есть сервер WinXP c
>>локальным адресом(192.168.0.100)на котором стоит IIS5 c веб-сайтом,вопрос такой каким образом можно
>>сделать так что-бы клиенты из интернета могли заходить на этот сервер
>>с локальным адресом.
>>Зараннее спасибо!
>
>cмотри iptables -j DNAT
>
>iptables -t nat -A PREROUTING -p tcp -m tcp --dport ZZZZ -j
>DNAT --to-destination 90.0.0.X:YY
>
>(все что пришло на порт zzzz главной машини уходит на 90.0.0.X:YY, На
>90.0.0.X:YY default gateway должен быть ip основного компа)
>(Не забудь FORWARD пустить и про
>echo "1" > /proc/sys/net/ipv4/ip_forward)
можно еще проще
есть такая прога socket (/usr/ports/sysutils/socket)
вешаешь ее к нужному порту через inetd
те в inetd.conf пишешь примерно следующееhttp stream tcp nowait root /usr/local/bin/socket -q 192.168.0.100 80
недостаток: получатель соединения будет считать что подключение выполняется с твоей машины, тк соединение выполняет программа socket
хотя в определенной ситуации, когда надо скрыть адрес, это бывает
удобно
а как с помощью этого socket ,сервер на юниксе будет знать что определенный запрос надо отправить на на локальный адрес? сама процедура перенаправления?
>а как с помощью этого socket ,сервер на юниксе будет знать что
>определенный запрос надо отправить на на локальный адрес? сама процедура перенаправления?
>
так явно пишем на какой хост и порт переводим данное соединениеhttp://www.freebsd.org/doc/en_US.ISO8859-1/books/faq/network...
дело в том ,что мне нужно что бы пользователи из интернета попадали на веб сайт который находится на машине с локальным адресом ,а не с локальной сети!
>дело в том ,что мне нужно что бы пользователи из интернета попадали
>на веб сайт который находится на машине с локальным адресом ,а
>не с локальной сети!изучать до посинения RFC1918 (номер запоминается легко! :)
>дело в том ,что мне нужно что бы пользователи из интернета попадали
>на веб сайт который находится на машине с локальным адресом ,а
>не с локальной сети!
так они и попадут: inetd совместно с socket и перенаправят
это соединение на сервер во внутренней сети
а что кроме установки socket еще нужно сделать на юниксе,
например natd или ipfw настраивать как то нужно?
> а что кроме установки socket еще нужно сделать на юниксе,
> например natd или ipfw настраивать как то нужно?открыть 80 порт на вход из внешнего интернета
что-то типа
ipfw add pass tcp from any to {внешний IP} 80 setup
>Есть сервер Freebsd-4.8 подключенный к интернет с реальным адресом,есть сервер WinXP c
>локальным адресом(192.168.0.100)на котором стоит IIS5 c веб-сайтом,вопрос такой каким образом можно
>сделать так что-бы клиенты из интернета могли заходить на этот сервер
>с локальным адресом.
>Зараннее спасибо!У меня ослик работает на внутренней виндовой машине.
Вот строчка из файла конфигурации natd:# /etc/natd.conf
redirect_port tcp 192.168.0.26:4662 4662В /etc/rc.conf:
natd_flags="-dynamic -config /etc/natd.conf"
Ну и в ipfw порт конечно открыть.
Только надо как-то еще IIS объяснить, какой у него правильный адрес - куда клиентов редиректить при необходимости.