2012-06-26 2 views
2

У меня есть X-WRT на основе OpenWrt 8,09 на маршрутизатореForwarding в локальной сети одной сети

У меня есть домашняя локальная сеть из нескольких компьютеров, на которых у меня есть несколько сетевых серверов (SVN, веб, и т.д.). Для каждой службы я сделал пересылки на маршрутизаторе (Linksys WRT54GL), чтобы получить доступ из Интернета (<my_external_ip>:<external_port> -> <some_internal_ip>:<internal_port>)

Но в моей локальной сети этих ресурсов выше запрос недостижим (так что мне нужно сделать некоторые изменения конфигурации <some_internal_ip>:<internal_port> доступ) ,

я добавил строку в моей/и т.д./хостов
<my_external_ip> localhost

Так что теперь все запросы от локальной сети к <my_external_ip> вперед к моему маршрутизатору, но дальнейшего перенаправления к соответствующему порту не работает.

Посоветуйте надлежащее перенаправление пожалуйста.

ответ

1

Вам необходимо установить IP-перенаправление для вызовов, выходящих из внутренней сети, и направленных на общедоступный IP-адрес. Обычно эти пакеты отбрасываются. Вы хотите перенаправить их, DNAT на конечный сервер, но также замаскировать так, чтобы сервер, видя, что вы, его клиент, находится в одной и той же сети, не отвечает непосредственно вам своим внутренним IP (который вы, клиент , не отправив туда пакет, отбросит).

Я нашел это на OpenWRT группы:

iptables -t nat -A prerouting_rule -d YOURPUBLICIP -p tcp --dport PORT -j DNAT --to YOURSERVER 
iptables -A forwarding_rule -p tcp --dport PORT -d YOURSERVER -j ACCEPT 
iptables -t nat -A postrouting_rule -s YOURNETWORK -p tcp --dport PORT -d YOURSERVER -j MASQUERADE 

https://forum.openwrt.org/viewtopic.php?id=4030

+0

Ребята @ 'Куба Wyrostek' и' lserni' ваши оба ответа велики, и я полностью смущен. Я отдал награду Кубе Виростеку, но в минуту был дан ответ lserni. Я использую метод lserni. lserni, я отметил ответ, как принято, я не знаю, что делать больше. – triclosan

+0

Это абсолютно нормально, важно то, что все работает. Не волнуйтесь, я тоже здесь тоже: -D – LSerni

+0

Я чувствую смущение. :-) –

1

Если я правильно помню, OpenWrt позволяет определить пользовательские записи DNS. Поэтому, возможно, просто укажите правильные локальные имена для ваших источников (например, svnserver.local) и сопоставьте их с конкретными локальными IP-адресами. Таким образом, вам даже не нужно проходить через маршрутизатор для доступа к локальным ресурсам из локальной сети.

+0

У меня есть несколько сервисов на одном компьютере за маршрутизатором. И мне нужна такая же адресная строка для доступа из локальной сети и из Интернета. Можете ли вы пояснить пример вашего предложения? – triclosan

+0

Да. То есть если внешний IP может быть удален из my-home.dyndns.org, то перезапишите его в OpenWrt: сделайте статическую запись DNS, которая разрешает svnserver.my-home.dyndns.org на ваш локальный IP-адрес. Сделайте то же самое для других сервисов (например, webserver.my-home.dyndns.org). Между тем настройте внешний DNS, чтобы запросы на * .my-home.dyndns.org (уведомление *) разрешали ваш внешний ip. Таким образом вы можете использовать одно и то же имя с разными IP-адресами в зависимости от того, из какой сети вы вызываете DNS. Я успешно использовал этот сценарий для доступа к репозиторию SVN из дома и офиса с тем же URL-адресом репозитория. –

+1

Как насчет перенаправления портов, следует ли использовать такие же внешние и внутренние порты? – triclosan

Смежные вопросы