LINUX.ORG.RU

Привязать локальный порт к внешнему IP


0

1

Есть сервер с внешним ip
Как привязать порт локальной сети к серверу с внешним ip?
Что бы сервер стал слушать 2020 порт и передавать все на локальный 192.168.0.1 2020 порт
Что бы физически казалось что 2020 порт находится на внешнем ip, а не на локальном.
Сделал бы через ssh tunnel но на 192.168.0.1 стоит Windows.

Мне приходит в голову OpenVPN тоннель и верно проставленные маршруты.

adriano32 ★★★ ()

Сервер и компьютер с оффтопиком в одной сети находятся или в разных?

kernelpanic ★★★★★ ()

3proxy имеет такую функцию

unC0Rr ★★★★★ ()

на сервере выполнить:
echo 1 > /proc/sys/net/ipv4/ip_forward
iptables -A PREROUTING -p tcp -m tcp --dport 2020 -j DNAT --to-destination 192.168.0.1:2020
работает до перезагрузки. как сделать постоянным, смотри сам

xsektorx ★★★ ()
Ответ на: комментарий от sin_a

REDIRECT?

Редирект в iptables?

Кажися REDIRECT работает только в пределах одного интерфейса, а на другую машину нужно делать DNAT. Не так?

Camel ★★★★★ ()

любой файрволл, если оба в одной подсети.

takino ★★★★ ()
Ответ на: комментарий от kernelpanic

В одной подсети.
Сделал.
echo 1 > /proc/sys/net/ipv4/ip_forward
iptables -A PREROUTING -p tcp -m tcp --dport 2020 -j DNAT --to-destination 192.168.0.1:2020
Говорит это
iptables: No chain/target/match by that name.

Мне нужно что бы на сервере открылся 2020 порт.
Что бы казалось будто этот порт не перенаправлен на 192.168.0.1:2020
По другому говоря подставить порт 192.168.0.1:2020 к 2020 порту сервера, и что бы трафик ходил туда и обратно.
(inet --> local)
(local --> inet)

ANGELOS ()
Ответ на: комментарий от ANGELOS

>iptables -A PREROUTING -p tcp -m tcp --dport 2020 -j DNAT --to-destination 192.168.0.1:2020
должно быть
iptables -t nat -A PREROUTING -p tcp -m tcp --dport 2020 -j DNAT --to-destination 192.168.0.1

NightSpamer ()

в хинет демоне на сервере прописать форвардинг порта

psv1967 ★★★★★ ()
Ответ на: комментарий от psv1967

service redirect2020
{
port = 2020
socket_type = stream
protocol = tcp
user = root
redirect = 192.168.0.1 2020
type = UNLISTED
wait = no
}

Порт открывается, при попытке подключиться, трафик не идет

ANGELOS ()
Ответ на: комментарий от ANGELOS

А на 192.168.0.1 шлюз по умолчанию = компьютер с которого форвардятся пакеты?

edigaryev ★★★★★ ()

Сделал бы через ssh tunnel но на 192.168.0.1 стоит Windows.

man PuTTY

edigaryev ★★★★★ ()
Ответ на: комментарий от ANGELOS

echo 1 > /proc/sys/net/ipv4/ip_forward iptables -t nat -I PREROUTING -p tcp --dport 2020 -j DNAT --to-destination 192.168.0.1 iptables -I FORWARD -p tcp --dport 2020 -d 192.168.0.1 -j ACCEPT

проверять так: iptables -t nat -L PREROUTING -v -n iptables -L FORWARD -v -n

счетчики пакетов должны меняться при входящих соединениях.

azure ★★ ()
Ответ на: комментарий от azure

echo 1 > /proc/sys/net/ipv4/ip_forward
iptables -t nat -I PREROUTING -p tcp --dport 2020 -j DNAT --to-destination 192.168.0.1
iptables -I FORWARD -p tcp --dport 2020 -d 192.168.0.1 -j ACCEPT

проверять так:
iptables -t nat -L PREROUTING -v -n
iptables -L FORWARD -v -n

счетчики пакетов должны меняться при входящих соединениях.

azure ★★ ()
Ответ на: комментарий от azure

Все сделал, правила добавились
Трафик не идет, порт закрыт

ANGELOS ()
Ответ на: комментарий от ANGELOS

>Трафик не идет

Если у вас для DNAT правила счётчики по нулям, значит нужно запускать tcpdump на внешнем интерфейсе, если нет, то на внутреннем.

Запускаем «tcpdump -i eth0 -n -nn port 2020». Для внешнего инетерфейса смотрим вобще наличие пакетов, если их нет, либо сканер не работает, либо провайдер закрыл порт. Для внутреннего интерфейса смотрим наличие уходящих в локалку пакетов и ответов на них.

Можно ещё добавить правило:

iptables -I FORWARD -p tcp --sport 2020 -s 192.168.0.1 -j ACCEPT

mky ★★★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.