Суббота, 23.11.2024
TiM
Меню сайта
Категории раздела
Мои статьи [9]
1С Бухгалтерия [1]
Arduino / ATMEGA [10]
ESP8266 [1]
OrangePi PC и Raspberry Pi 2 Model B V1.1 [4]
Шаговые двигатели [1]
PHPProBid [0]
CMS DLE (DataLife Engine) [0]
CMS Joomla [13]
SugarCRM [5]
Базы данных [5]
PHP скрипты [16]
Bash и скрипты [27]
IP АТС Elastix / Asterisk [12]
CentOS [6]
Debian [8]
Lubuntu / LinuxMINT [29]
Windows [28]
Умный дом [1]
Сервера [16]
Natural Selection [1]
System Shock 2 [1]
Форма входа
Главная » Статьи » Bash и скрипты

LINUX: Проксирование внешнего порта

Понадобилось мне для работы сделать проксирование внешнего порта. Задача: TCP пакеты идущие от клиента на порт одного сервера(1.1.1.1) перенаправлять на тот же порт другого сервера (2.2.2.2) а затем ответ этого сервера отправлять клиенту как от 1.1.1.1 (к которому обращался клиент).
Родился такой скрипт:

#!/bin/sh
# TCP Proxy using IPTables
 
IPTABLES=/sbin/iptables
 
echo 1 > /proc/sys/net/ipv4/ip_forward
 
# Flush nat table
$IPTABLES -t nat -F
 
# tcpproxy LOCAL_IP LOCAL_PORT REMOTE_IP REMOTE_PORT
function tcpproxy {
$IPTABLES -t nat -A PREROUTING --dst $1 -p tcp --dport $2 -j DNAT --to-destination $3:$4
$IPTABLES -t nat -A POSTROUTING --dst $3 -p tcp --dport $4 -j SNAT --to-source $1
$IPTABLES -t nat -A OUTPUT --dst $1 -p tcp --dport $2 -j DNAT --to-destination $3:$4
}

Пример использования

tcpproxy 109.95.211.58 80 192.168.1.1 80
Категория: Bash и скрипты | Добавил: Timur (05.05.2016)
Просмотров: 982
Поиск
Статистика

Онлайн всего: 1
Гостей: 1
Пользователей: 0
YANDEX
Яндекс.Метрика
Сайты
  • Харьковский Юридический Альянс
  • Оцифровка кинопленки
  • TiM ©
    Харьков 2024