Во-первых, NAT в Linux поддерживает состояние. Это означает, что вам не нужны исходящие и входящие правила. Когда трафик возвращается, который был NAT для исходящего трафика, linux автоматически отключит -NAT, который возвращает трафик.
Хотя основная проблема, с которой вы столкнетесь, заключается в том, что сеанс TCP определяется комбинацией:
Исходный IP-адрес уже ограничен одним значением (IP-адрес host1 ). IP-адрес назначения уже представляет собой единственное значение (IP-адреса host2 ). Исходный порт имеет только 2 возможных значения (80 и 443 ). И порт назначения ограничен одним значением (5015 ).
Это означает, что вы можете установить максимум 2 одновременных соединения (, если вы распределяете нагрузку SNAT по 2 портам ). И даже при последовательных подключениях вы, вероятно, столкнетесь с проблемами повторного использования порта, например, если порт находится в состоянии TIME _WAIT.
Тем не менее, если вы действительно хотите попробовать это, правило, которое должно сделать это:
iptables -t nat -I POSTROUTING \
-d $HOST2_IP -p tcp --dport $TCP_TRAFFIC_PORT \
-j SNAT --to-source :$PROXY_PORT
Вы можете использовать:
y2/screenshot<CR>
Или, короче:
y2/screen<CR>
Это приведет к дерганию от позиции курсора до второго экземпляра слова «скриншот» в той же строке.
(Обратите внимание, что <CR>
здесь означает нажатие клавиши «Возврат» для завершения поиска.)
Если у вас включено выделение добавочного поиска (set incsearch
), вы увидите, что Vim выделяет это второе совпадение.
Кажется, вы путаете движение к персонажу с движением к предложению. Движение t
(для «до тех пор», это t
, а не u
), принимает только один символ. Другим способом рывка в то же место будет y6ts
, но это потребует от вас подсчета s
в предложении, чтобы увидеть, что тот, который находится в начале второго экземпляра «скриншота», является 6-м s
в этой строке. (В этом могут помочь плагины -.)
Существуют предостережения при использовании /
для поиска (по сравнению с t
, f
, T
или F
движениями ), поскольку поиск /
может найти совпадения в другой строке. и, если это произойдет,ваша операция копирования теперь будет извлекать содержимое, содержащее символы новой строки, что может оказаться удивительным или неожиданным при последующей вставке.
Наконец, использование визуального режима — отличный способ получить визуальную обратную связь и скорректировать свой выбор для операции, когда используемое движение неочевидно или вам нужна большая гибкость.
Например, вы можете начать с vts
, а затем нажать ;
, чтобы повторить это движение, пока не дойдете до второго "снимка экрана" (5 раз, как оказалось. )Легче считать, что это 6-й без подсветки! Оказавшись там, вы можете просто нажать y
, чтобы дернуть его.
Или v/screen<CR>
, затем вы понимаете, что это следующий, нажмите n
, затем вы заметите, что начальная s
выбрана, нажмите h
, чтобы переместиться вправо один раз, затем y
, чтобы дернуть ее.
(Отвечая на ваш комментарий :, приведенные выше решения в визуальном режиме превосходят использование мыши IMO. vts;;;;;y
— это 9 нажатий клавиш, но 5 из них на одну и ту же клавишу. Кроме того, ваши руки не отрываются от клавиатуры. И вам не нужно было считать буквы перед выделением, вы считаете только с визуальной помощью. По сравнению с этим перетаскивание мыши происходит медленнее.)
Если вы хотите найти плагин -, который мог бы помочь с этим типом движения, vim -easymotion — хороший выбор.