Переадресация портов в iptables с DNAT
Задача: нужно сделать переадресацию с определённого ip порта 6669 на другой ip, только на порт 6667:
Решение:
iptables -t nat -A PREROUTING -s 192.168.62.0/24 -d 192.168.100.14 -p tcp --dport 6669 -j DNAT --to-destination 192.168.62.1:6667
- Добавить комментарий
- 6184 просмотра
Страница для печати


ну вообще, ИМХО, конечно, но DNAT в данном примере использован не совсем по назначениею, тем более что есть более так сказать "идеологически правильный" метод перенаправления портов:
iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-ports 8080
> ну вообще, ИМХО, конечно, но DNAT в данном примере
> использован не совсем по назначениею
Хм. А какое тогда назначение у DNAT?
> тем более что есть более так сказать "идеологически
> правильный" метод перенаправления портов:
>iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-ports 8080
'REDIRECT' можно использовать при перенаправлении портов _только_ на локальной машине. Сделать так, как это описано в совете (перенаправить с одного адреса на другой), с REDIRECT не получится.
Сделал, как написано тут, iptables при restart выдает Failed.
а что такое iptables restart? можно поподробнее? и что конкретно сделано "как здесь"?
делал когда то, не до конца оформлен но какой есть Ж:-)
#!/bin/sh
# port forward by ramok@core.org.ua
#
# limitation: only 1 connection
#
# TODO: parse parametrs
# TODO: check netcat exist
# TODO: make daemon
FIFO=/tmp/`basename $0`.$$
LOCAL_PORT=12345
REMOTE_HOST=ya.ru
REMOTE_PORT=80
#for debug
#set -x
#DEBUG_FLAGS=-vvv
test -p $FIFO || mkfifo $FIFO
trap "rm $FIFO;exit" INT QUIT HUP TERM
while :; do
nc $DEBUG_FLAGS -l -p $LOCAL_PORT < $FIFO | nc $DEBUG_FLAGS $REMOTE_HOST $REMOTE_PORT > $FIFO
done
rm $FIFO
--
Signature invent in progress 19% #.........
ssh -L 192.168.100.14:6669:192.168.62.1:6667 localhost
залогиниваемся и все Ж:-)
ps
понятно что без прав рута переадресовать можно только локальные порты меньше 1024
pss
в старых версиях ssh нельзя было указать внешний IP, так что незабываем обновлятся Ж;-)
---
Signature invent in progress 18% #.........
переброс порта можно сделать и xinetd.
service ibank443
{
disable = no
type = UNLISTED
port = 443
socket_type = stream
protocol = tcp
wait = no
user = root
redirect = 192.168.0.166 443
bind = внешний_IP
# no_access = 62.105.0.0/24
}