Существует иначе. Можно настроить перенаправление портов от S:2222 до W:8888 с iptables. Единственная команда:
iptables -t nat -A PREROUTING -p tcp --dport 2222 \
-j DNAT --to-destination 1.2.3.4:8888
где 1.2.3.4 IP-адрес M. Это называют NAT (Преобразование сетевых адресов).
Я нашел эту информацию, которая говорит о tcp_adv_win_scale
. Страница названа: настройка производительности TCP - как настроить Linux.
выборка
Производительность TCP ограничена задержкой и размером окна (и наверху, который уменьшает эффективный размер окна) window_size/RTT (это - то, сколько данных, которые могут быть "в пути" по ссылке в любой данный момент).
Для получения фактических скоростей передачи, возможных, необходимо разделить получающееся окно на задержку (в секундах):
Издержки: window/2^tcp_adv_win_scale (tcp_adv_win_scale значение по умолчанию 2),
Таким образом для параметров значения по умолчанию Linux для получить окна (tcp_rmem): 87380 - (87380 / 2^2) = 65536.
Учитывая трансатлантическую ссылку (RTT на 150 мс), максимальная производительность заканчивается в: 65536/0.150 = 436 906 байтов/с или приблизительно 400 кбайт/с, который является действительно медленным сегодня.
С увеличенным размером по умолчанию: (873800 - 873800/2^2)/0.150 = 4 369 000 байтов/с, или о 4Mbytes/s, который разумен для современной сети. И обратите внимание, что это - значение по умолчанию, если отправитель будет настроен с большим размером окна, то это счастливо увеличит масштаб до 10 раз этого (8738000*0.75/0.150 = ~40Mbytes/s), довольно хороший для современной сети.
2.6.17 и позже имеют довольно хорошие значения значений по умолчанию и на самом деле настраивают размер окна до позволенного макс., если другая сторона поддерживает его. Таким образом, с тех пор большая часть этого руководства не нужна. Для хорошей пропускной способности долгого пути значение maxiumum, возможно, должно было бы быть увеличено все же.
Я смог следовать за этим, но не вполне понял отношений, если таковые имеются, между этими 2 переменными.
Я только незначительно понял то, что это пыталось объяснить. В ядре это кажется, что этот параметр для масштабирования пространства объема буферизации должен использоваться для TCP и для приложения.
При поиске немного больше я нашел эти объяснения, которые имели больше смысла. Страница была названа: учебное руководство 1.0.4 Ipsysctl - ссылка на переменную Главы 3. IPv4.
выборка
3.3.2. tcp_adv_win_scale
Эта переменная используется для сообщения ядра, сколько из пространства буфера сокета должно использоваться для размера окна TCP, и сколько сохранить для буфера приложений. Если tcp_adv_win_scale отрицателен, следующее уравнение используется для вычисления буфера наверху для масштабирования окна:
Где байты являются суммой байтов в окне. Если значение tcp_adv_win_scale положительно, следующее уравнение используется для вычисления буфера наверху:
tcp_adv_win_scale переменная принимает целочисленное значение и на набор по умолчанию к 2. Это в свою очередь означает, что буфер приложений является 1/4-м из общего пространства буфера, указанного в tcp_rmem переменной.
3.3.3. tcp_app_win
Эта переменная говорит ядро, сколько байтов для резервирования для определенного окна TCP в буфере памяти сокетов TCP, куда определенное окно TCP передано в. Это значение используется в вычислении, которое указывает, сколько из пространства буфера для резервирования, который смотрит как следующее:
Как можно понять от вышеупомянутого вычисления, чем больше это значение становится, тем меньший будет пространство буфера быть для определенного окна. Единственное исключение к этому вычислению 0, который говорит ядру не резервировать пространство для этого определенного соединения. Значение по умолчанию для этой переменной равняется 31 и должно в целом быть хорошим значением. Не изменяйте это значение, если Вы не знаете то, что Вы делаете.
На основе этих объяснений это походит на первый параметр, tcp_adv_win_scale
управляет разделением пространства буфера сокета с точки зрения того, как это добирается, обманул для использования окна TCP по сравнению с буфером приложений.
Принимая во внимание, что 2-й параметр, tcp_app_win
указывает число байтов для резервирования для буфера приложений, упомянутого в tcp_adv_win_scale
описание.