Назад | Перейти на главную страницу

Как я могу использовать переадресацию портов на несколько IP

У меня два IP (общедоступных) eth0: 1.1.1.1 и eth0: 1: 2.2.2.2

Я использую переадресацию портов.

ssh -D 1080 root@2.2.2.2

Но когда я иду проверить ip-сайт (ip2location), мой ip: 1.1.1.1

Я хочу использовать: ssh -D 1081 root@1.1.1.1 -> отображается на внешнем сайте как мой ip 1.1.1.1

И ssh -D 1080 root@2.2.2.2 -> просматривать на внешнем сайте как мой ip 2.2.2.2

Пожалуйста, скажите мне.

Это сложнее, чем следует из вашего вопроса.

Используя прокси-сервер SSH SOCKS, процесс sshd сервера будет устанавливать соединения от имени вашего клиента. При выборе IP-адреса источника не учитывается порт или IP-адрес, к которому вы подключены, и нет аргументов для ssh вы можете указать его явно.

Выбирается исходный IP-адрес подключения по (по порядку):

  • любой явный, установленный приложением (клиент ssh этого не допускает)
  • то src намек в таблице маршрутов (по умолчанию не задано)
  • первый настроенный IP на интерфейсе (обычно по умолчанию
    вариант и, возможно, почему все ваши соединения через прокси приходят из 1.1.1.1.

Грубый способ решить эту проблему - при подключении использовать скрипт-fu, чтобы определить порт или IP-адрес, используемый для вашего ssh-соединения, и запустить соответствующий ip route add default via <next-hop> src 1.1.1.1 команда для установки намек, но это будет работать, только если у вас одновременно открыто только одно прокси-соединение; команда изменит исходный IP-адрес по умолчанию для всех подключений с сервера.

Более чистый способ - использовать iproute2 маршрутизация на основе политик. Настройте две отдельные таблицы маршрутов, каждая с соответствующими src подсказку, а затем, возможно, создать политику, которая выбирает одну таблицу на основе пользовательского контекста, тем самым выполняя маршрутизацию с соответствующим IP-адресом источника.