а). У меня есть Удаленный клиент 1 (raspberry pi), который находится за роутером1, подключенным к Интернету без переадресации портов.

б). У меня есть SSH сервер с известным IP.

с). У меня есть ноутбук, на котором я хочу использовать прокси в Firefox для входа на router1.

Я пытался сделать так:

На удаленном клиенте 1 (Raspberry Pi) я делаю это:

ssh -N -R 2222:localhost:22 root@66.77.88.99

На моем ноутбуке я SSH на сервер

ssh root@66.77.88.99 

И сделать это

ssh -l root -p 2222 localhost

Для того, чтобы SSH в удаленном клиенте 1

3.Я установил туннели для замазки вот так

туннели замазки

и Firefox, как это

Настройки Firefox

А теперь, если я собираюсь на myipaddress. У меня будет IP-адрес сервера, а не IP-адрес удаленного клиента.

Есть идеи что не так?

1 ответ1

1

Это сильно отличается от того, как я это делаю, и я не думаю, что ваш путь верен.

  1. Во-первых, вам нужно настроить прокси-сервер SOCK5 на вашем RPI, что я не думаю, что вы сделали это до сих пор.

    ssh -fN -D 50000 localhost 
    

    Это открывает порт 50000 в качестве прокси-сервера SOCK5. Опция -f помещает процесс в фоновый режим, что полезно, потому что вам нужно дать другую команду на RPI. Но это также требует, чтобы вы настроили пароль без пароля на RPI, что в общем-то настолько важно, что я настоятельно призываю вас делать это независимо от того, что мы обсуждаем здесь.

  2. Теперь вам нужно перенаправить некоторый порт (скажем, 6666) с удаленного сервера на прокси-сервер RPI SOCK5:

    ssh -fN me@server -R 6666:localhost:50000
    
  3. Теперь вам нужно перенаправить локальный порт вашего ноутбука на удаленный сервер. Если бы это была машина Linux/Unix, команда была бы:

    ssh -fN me@server -L 8000:localhost:6666
    

    К сожалению, я никогда не использую Windows, поэтому не могу предложить, как это сделать в Putty, но вы, кажется, достаточно осведомлены, чтобы решить это без моей помощи.

  4. И наконец, теперь вы можете настроить свой браузер для использования в качестве прокси-сервера SOCK5 localhost:8000.

Обратите внимание, что все это не относится к пересылке обычных портов ssh, 22 или 2222, что, по-видимому, и является тем, что вы сделали. Порты должны быть направлены иные , чем порты SSH. На самом деле эти порты даже не открываются на внешнем интерфейсе, они открываются на локальном (lo = 127.0.0.1) интерфейсе, поэтому вам не нужно изменять конфигурацию брандмауэра, чтобы это работало. И это, в свою очередь, является причиной того, что вы можете обойти ограниченную конфигурацию брандмауэра вашей RPI LAN. Весь трафик, даже предназначенный для портов 6666 50000 или 8000, направляется через порты ssh (22 или, возможно, 2222 в случае вашего маршрутизатора), а затем он правильно перенаправляется через ssh на localhost:6666/50000/8000 внутри целевого ПК.

Кроме того, существует разрыв соединения между прокси-портом в Firefox (порт 2012 для вас) и портом сервера, перенаправляемым на RPI, который равен 2222: эти два порта должны быть одинаковыми: как вы видите в моем примере на Я всегда использую порт 6666, чтобы пакеты, связанные с прокси-сервером, передавались с ноутбука на сервер: 6666, а затем с сервера: 6666 на RPI: 50000. Но, в конце концов, ничего из этого не имеет значения в вашем случае, потому что у вас нет прокси-сервера SOCK5, прослушивающего RPI, который вы должны настроить.

И, кстати, если вы планируете оставлять соединение между RPI и сервером без присмотра в течение длительных периодов времени, например, часов или дней, когда вы путешествуете со своим ноутбуком, вы, возможно, посмотрите на autossh, очень удобный скрипт, который проверяет, что ssh-соединения открыты, и если нет, то убивает предыдущее ssh-соединение и автоматически запускает его заново. Таким образом, вы гарантированно всегда найдете соединение от сервера до RPI, даже если вы путешествуете целыми днями подряд.

Это работает, я только что попробовал это через соединение, охватывающее пару океанов ;-)

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .