Как подключиться к серверу, скрытому за NAT?
Модератор: Модераторы разделов
-
Janik
- Сообщения: 864
- Статус: Оператор вычислительных машин
- ОС: Debian
Как подключиться к серверу, скрытому за NAT?
Кто ищет, тот всегда найдет!
Опыт - это когда все получается с первого раза.
Опыт - это когда все получается с первого раза.
-
sash-kan
- Администратор
- Сообщения: 13939
- Статус: oel ngati kameie
- ОС: GNU
Re: Как подключиться к серверу, скрытому за NAT?
никак.
Писать безграмотно - значит посягать на время людей, к которым мы адресуемся, а потому совершенно недопустимо в правильно организованном обществе. © Щерба Л. В., 1957
при сбоях форума см.блог
при сбоях форума см.блог
-
rm_
- Сообщения: 3340
- Статус: It's the GNU Age
- ОС: Debian
Re: Как подключиться к серверу, скрытому за NAT?
Сделать, чтобы сервер перестал быть скрытым за NAT (к примеру, подняв на нём и на клиенте туннель IPv6), после чего подключаться в обычном порядке.
-
landgraf
- Сообщения: 2142
- Статус: *бунту ненавистник
- ОС: linux
Re: Как подключиться к серверу, скрытому за NAT?
взять сервер не скрытый за NAT и сделать SSH - туннель (VPN если охота).
я вон за проксю спокойно подключаюсь
я вон за проксю спокойно подключаюсь
-
Pchol
- Сообщения: 88
Re: Как подключиться к серверу, скрытому за NAT?
Пробросить необходимые порты DNAT'ом на том сервере где НАТ, и спокойно подключиться ?
... Весь ужас заключается в том что предают только свои ...
-
listasitem
- Сообщения: 144
- ОС: Debian Lenny 5
Re: Как подключиться к серверу, скрытому за NAT?
Пару месяцев назад достал меня один такой на фрилансе...
Пробейся, говорит, к соксам за натом! Чтобы спам рассылать...
Фу.
Пробейся, говорит, к соксам за натом! Чтобы спам рассылать...
Фу.
Использую Debian Lenny 5 - счастлив, чего и вам искренне желаю!
-
Janik
- Сообщения: 864
- Статус: Оператор вычислительных машин
- ОС: Debian
Re: Как подключиться к серверу, скрытому за NAT?
Значит, пойду собирать сервачок, подниму на нем веб- фтп- и прокси-сервер! А то NAT поднят на аппартном маршрутизаторе.
Кто ищет, тот всегда найдет!
Опыт - это когда все получается с первого раза.
Опыт - это когда все получается с первого раза.
-
Bizdelnick
- Модератор
- Сообщения: 21347
- Статус: nulla salus bello
- ОС: Debian GNU/Linux
Re: Как подключиться к серверу, скрытому за NAT?
Так маршрутизатор твой или чей-то где-то?
Пишите правильно:
| в консоли вку́пе (с чем-либо) в общем вообще | в течение (часа) новичок нюанс по умолчанию | приемлемо проблема пробовать трафик |
-
Janik
- Сообщения: 864
- Статус: Оператор вычислительных машин
- ОС: Debian
Re: Как подключиться к серверу, скрытому за NAT?
Мой-мой!
Кто ищет, тот всегда найдет!
Опыт - это когда все получается с первого раза.
Опыт - это когда все получается с первого раза.
-
Bluetooth
- Сообщения: 4395
- Статус: Блюзовый
- ОС: Debian Squeeze amd64
Re: Как подключиться к серверу, скрытому за NAT?
тогда надо "пробросить" нужный порт до адреса сервера в локалке.
для iptables это выглядит так:
iptables -t nat -A PREROUTING -p tcp -m tcp -i eth0 --dport 22 -j DNAT --to-destination 192.168.1.2:10000 - это непосредственно проброс, где -i eth0 - интерфейс, с которого приходит пакет, --dport 10000 - порт, на который приходит пакет, а 192.168.1.2:22 это на какой адрес:порт пробросить все это дело.
А так же нужно еще и разрешить этому пакету идти через брандмауэр:
iptables -A FORWARD -p tcp -m tcp --dport 10000 -j ACCEPT
Ну, а если под маршрутизатором имелась ввиду стремная длинковская коробочка, то там уж сами разбирайтесь. Там все сложно бывает - запутанная терминология, убогая админка и тд.
-
Ali1
- Сообщения: 2250
Re: Как подключиться к серверу, скрытому за NAT?
UPD
Адрес хоста с NAT должен быть настоящий.
Провайдер не должен резать 22 или другой нужный порт.
В некоторых хелезках есть ddns.
Адрес хоста с NAT должен быть настоящий.
Провайдер не должен резать 22 или другой нужный порт.
В некоторых хелезках есть ddns.
-
Bizdelnick
- Модератор
- Сообщения: 21347
- Статус: nulla salus bello
- ОС: Debian GNU/Linux
Re: Как подключиться к серверу, скрытому за NAT?
Да ладно уж, сложно. Обычно вбивается один айпишник и два порта, и всё.
Пишите правильно:
| в консоли вку́пе (с чем-либо) в общем вообще | в течение (часа) новичок нюанс по умолчанию | приемлемо проблема пробовать трафик |
-
Bluetooth
- Сообщения: 4395
- Статус: Блюзовый
- ОС: Debian Squeeze amd64
Re: Как подключиться к серверу, скрытому за NAT?
Bizdelnick писал(а): ↑09.09.2009 00:12
Да ладно уж, сложно. Обычно вбивается один айпишник и два порта, и всё.
Уж это-то остается неизменным. Но вот только как эти порты иногда обзовут - я хренею. Еще больше я хренею с логики работы многих веб интерфейсов. И уж совсем хренею с некоторых коробочек, которые после изменения настроек ната перезагружаются(это ж сколько пить надо!?). К тому же иногда даже нельзя один порт пробросить на другой, а только на тот же самый (:
Потому считаю, что это намного сложнее, чем прописать стандартное правило в iptables. Хотя если Вы меряете сложность задачи по тому, насколько "графический" интерфейс используется для ее решения, то тогда да, веб интерфейс это довольно просто (:
-
watashiwa_daredeska
- Бывший модератор
- Сообщения: 4038
- Статус: Искусственный интеллект (pre-alpha)
- ОС: Debian GNU/Linux
Re: Как подключиться к серверу, скрытому за NAT?
У моей коробочки это можно, но нельзя два порта в один пробрасывать :)
Мои розовые очки
-
Bluetooth
- Сообщения: 4395
- Статус: Блюзовый
- ОС: Debian Squeeze amd64
Re: Как подключиться к серверу, скрытому за NAT?
watashiwa_daredeska писал(а): ↑09.09.2009 09:29У моей коробочки это можно, но нельзя два порта в один пробрасывать
Во всех коробочках разные косяки. Я не видел только нормального ната (:
-
Janik
- Сообщения: 864
- Статус: Оператор вычислительных машин
- ОС: Debian
Re: Как подключиться к серверу, скрытому за NAT?
Маршрутизато аппаратный. Наверно, возьму как в журнале "Хакер" вскрою его и поковыряюсь! 
Кто ищет, тот всегда найдет!
Опыт - это когда все получается с первого раза.
Опыт - это когда все получается с первого раза.
-
Bluetooth
- Сообщения: 4395
- Статус: Блюзовый
- ОС: Debian Squeeze amd64
-
xorader
- Сообщения: 1030
- Статус: собирающий миры
- ОС: Debian
Re: Как подключиться к серверу, скрытому за NAT?
Была у меня такая задача: иметь ssh доступ к клиентскому серверу (пусть называется server-nat.com), который находиться за NAT'ом (провайдерским, который мне не доступен).
Задачу я решил с помощью reverse ssh. Итак:
* нам требуется внешний сервер со статическим нормальным IP (будет называться server.com). Хотя, вероятно можно сделать и по DNS имени: например, по server.dyndns.org (кто в курсе - поймут о чём я).
* создаём на обоих серверах пользователя с именем, к примеру, clients (даём им нормальный shell - /bin/bash и задаём пароли, которые потом можно будет заблочить)
* генерируем пару ключей на server-nat.com:
- su clients
- ssh-keygen -t rsa
- cat ~/.ssh/id_rsa.pub | ssh -l clients server.com "cat >> ~/.ssh/authorized_keys"
Не забудьте создать /home/clients/.ssh/ с правами clients на server.com перед этим. Всё - теперь мы можем делать ssh с server-nat.com на server.com без ввода пароля под пользователем clients (это нам понадобиться ниже)
* прописываем на server-nat.com в crontab исполнение раз в 10ть минут следующего скрипта:
Этот скрипт проверяет наличие ssh тунеля - и если его нет (например был обрыв связи) - стартует его.
Теперь мы можем попасть на server-nat.com по ssh, зайдя на server.com и сделав ssh -p 19998 clients@localhost (пароль вводить от пользователя clients на server-nat.com). В принципе, можно заходить на server-nat.com проще: набрав ssh -p 19998 clients@server.com откуда угодно
Well done
P.S. более подробную инфу ищите в гугле по запросу "reverse ssh"
Задачу я решил с помощью reverse ssh. Итак:
* нам требуется внешний сервер со статическим нормальным IP (будет называться server.com). Хотя, вероятно можно сделать и по DNS имени: например, по server.dyndns.org (кто в курсе - поймут о чём я).
* создаём на обоих серверах пользователя с именем, к примеру, clients (даём им нормальный shell - /bin/bash и задаём пароли, которые потом можно будет заблочить)
* генерируем пару ключей на server-nat.com:
- su clients
- ssh-keygen -t rsa
- cat ~/.ssh/id_rsa.pub | ssh -l clients server.com "cat >> ~/.ssh/authorized_keys"
Не забудьте создать /home/clients/.ssh/ с правами clients на server.com перед этим. Всё - теперь мы можем делать ssh с server-nat.com на server.com без ввода пароля под пользователем clients (это нам понадобиться ниже)
* прописываем на server-nat.com в crontab исполнение раз в 10ть минут следующего скрипта:
Код: Выделить всё
#!/bin/sh
#
# check, if tunnel already strarted
check_string=`ps auxw | grep ssh_client | grep -v grep`
if [ -z "$check_string" ]
then
echo "Starting ssh tunnel to server.com"
screen -wipe
screen -t ssh_client -dmS ssh_client su clients -c "ssh -R 19998:localhost:22 clients@server.com"
exit 0
fi
#echo "ssh tunnel to server.com already started"Этот скрипт проверяет наличие ssh тунеля - и если его нет (например был обрыв связи) - стартует его.
Теперь мы можем попасть на server-nat.com по ssh, зайдя на server.com и сделав ssh -p 19998 clients@localhost (пароль вводить от пользователя clients на server-nat.com). В принципе, можно заходить на server-nat.com проще: набрав ssh -p 19998 clients@server.com откуда угодно
Well done
P.S. более подробную инфу ищите в гугле по запросу "reverse ssh"
Molchanov Alexander (aka Xor)
*offtopic* - ololo!
*offtopic* - ololo!
-
Bluetooth
- Сообщения: 4395
- Статус: Блюзовый
- ОС: Debian Squeeze amd64
Re: Как подключиться к серверу, скрытому за NAT?
У меня такой же скрипт есть, то еще более быдлокодный. В вашем есть один ньюанс: бывают случаи, когда ссх клиент в списке процессов нет, а соединение он потерял. Для этого случая нужно еще одну проверку пускать :)Этот скрипт проверяет наличие ssh тунеля - и если его нет (например был обрыв связи) - стартует его.
-
xorader
- Сообщения: 1030
- Статус: собирающий миры
- ОС: Debian
Re: Как подключиться к серверу, скрытому за NAT?
Bluetooth писал(а): ↑11.09.2009 16:37У меня такой же скрипт есть, то еще более быдлокодный. В вашем есть один ньюанс: бывают случаи, когда ссх клиент в списке процессов нет, а соединение он потерял. Для этого случая нужно еще одну проверку пускатьЭтот скрипт проверяет наличие ssh тунеля - и если его нет (например был обрыв связи) - стартует его.
Да есть такое - но он всё равно ранно или поздно по таймауту отваливается - так что в течении часа-получаса в любом случае коннект восстановиться, так что для меня не критично (всяко лучше, чем в другой конец города ехать
Molchanov Alexander (aka Xor)
*offtopic* - ololo!
*offtopic* - ololo!
-
Bluetooth
- Сообщения: 4395
- Статус: Блюзовый
- ОС: Debian Squeeze amd64
Re: Как подключиться к серверу, скрытому за NAT?
xorader писал(а): ↑11.09.2009 22:51Bluetooth писал(а): ↑11.09.2009 16:37У меня такой же скрипт есть, то еще более быдлокодный. В вашем есть один ньюанс: бывают случаи, когда ссх клиент в списке процессов нет, а соединение он потерял. Для этого случая нужно еще одну проверку пускатьЭтот скрипт проверяет наличие ssh тунеля - и если его нет (например был обрыв связи) - стартует его.
Да есть такое - но он всё равно ранно или поздно по таймауту отваливается - так что в течении часа-получаса в любом случае коннект восстановиться, так что для меня не критично (всяко лучше, чем в другой конец города ехать)
Ну, вот Вам мой скрипт: Я его написал, но в реальных условиях протестировать не успел - отпала в нем необходимость
Можете выдрать оттуда идею проверки.
Код: Выделить всё
#!/bin/sh
if !(ps ax|grep ssh|grep -q nNT)
then
ssh -nNT -R 19999:localhost:22 bluetooth@server.ru -p 20000 &
case "$?" in
130)
ps ax|grep ssh|grep nNT|awk '{print $1}'|kill
exit 1
;;
esac;
fi
if (ps ax|grep ssh|grep -q nNT) && !(netstat --inet -n|grep -q ':20000') # вот она, эта проверка. У меня работала (:
then
ps ax|grep -q ssh|grep -q nNT|awk '{print $1}'|kill
ssh -nNT -R 19999:localhost:22 bluetooth@server.ru -p 20000 &
fi
exit 0З.Ы. За быдлокод не ругать
Честно говоря, я сам не до конца понимаю, что же я там набыдлокодил. И уж тем более не помню, что означает 130й код завершения программы ssh
-
watashiwa_daredeska
- Бывший модератор
- Сообщения: 4038
- Статус: Искусственный интеллект (pre-alpha)
- ОС: Debian GNU/Linux
Re: Как подключиться к серверу, скрытому за NAT?
Смерть от сигнала 2: Interrupt from keyboard.
Мои розовые очки
-
Bluetooth
- Сообщения: 4395
- Статус: Блюзовый
- ОС: Debian Squeeze amd64
Re: Как подключиться к серверу, скрытому за NAT?
Да? А Вы уверены? Я помню, что я был совершенно в невменяемом состоянии, когда писал этот скрипт, но не настолько же, чтобы в неинтерактивный скрипт засунуть что-то, связанное с клавиатурой (:
-
frp
- Сообщения: 1445
- ОС: Debian Squeeze
Re: Как подключиться к серверу, скрытому за NAT?
Поднять себе IPv6. Зарегистрировать себе домен IPv6. Клиенты с IPv6 смогут нормально ходить на сайт, клиентам с IPv4 будет нужно писать адрес типа ваш.домен.ipv4.sixxs.org (Этот сервис вроде действует только для HTTP)
-
watashiwa_daredeska
- Бывший модератор
- Сообщения: 4038
- Статус: Искусственный интеллект (pre-alpha)
- ОС: Debian GNU/Linux
Re: Как подключиться к серверу, скрытому за NAT?
Уверен. Это универсальное правило. Если код возврата R > 127, значит процесс умер от сигнала R-128.
Мои розовые очки
-
Monolit
- Сообщения: 61
- ОС: ArchLinux, FreeBSD, Ubuntu
Re: Как подключиться к серверу, скрытому за NAT?
Вариант первый это проброс портов, вариант второй использование ipv6 (по этому поводу гугли имхо есть провайдер который может тебе выдать адрес ipv6, там же должны быть настройки для твоей системы). 
Если вы знаете Slackware - вы знаете GNU/Linux. Если вы знаете Red Hat, то всё, что вы знаете - это Red Hat.
-
rm_
- Сообщения: 3340
- Статус: It's the GNU Age
- ОС: Debian
Re: Как подключиться к серверу, скрытому за NAT?
По поводу IPv6, более подробные инструкции есть в соседней теме: Web или FTP-сервер за NAT
-
Janik
- Сообщения: 864
- Статус: Оператор вычислительных машин
- ОС: Debian
Re: Как подключиться к серверу, скрытому за NAT?
Я покопался в веб-морде модема, увидел там

ЗЫ: У меня есть веб-сервер, я попытался сделать проброс портов, но у меня ничего не получилось

ЗЫ: У меня есть веб-сервер, я попытался сделать проброс портов, но у меня ничего не получилось
Кто ищет, тот всегда найдет!
Опыт - это когда все получается с первого раза.
Опыт - это когда все получается с первого раза.
-
Monolit
- Сообщения: 61
- ОС: ArchLinux, FreeBSD, Ubuntu
Re: Как подключиться к серверу, скрытому за NAT?
Я покопался в веб-морде модема, увидел там
ЗЫ: У меня есть веб-сервер, я попытался сделать проброс портов, но у меня ничего не получилось
Плохо копался!
У меня модель HUAWEI Smart AX MT880
Проброс портов у меня осуществляется через Virtual Server вот скрин на нем проброс портов для двух компьютеров моей "квартирной" сети)

Если вы знаете Slackware - вы знаете GNU/Linux. Если вы знаете Red Hat, то всё, что вы знаете - это Red Hat.
-
Janik
- Сообщения: 864
- Статус: Оператор вычислительных машин
- ОС: Debian
Re: Как подключиться к серверу, скрытому за NAT?
Разобрался с перенаправлением портов, теперь всё хорошо!
Кто ищет, тот всегда найдет!
Опыт - это когда все получается с первого раза.
Опыт - это когда все получается с первого раза.