Я использую,
ssh root@my.server.ip -g -L 4321:localhost:28017
чтобы установить туннель от моего MacBook до моего выделенного сервера у моего хостинг-провайдера. Это работает хорошо. Теперь я хочу получить доступ к нескольким административным сайтам на удаленном сервере (страница состояния MongoDB, страница RabbitMQ и т. Д., Все на разных портах). Все они связаны с 127.0.0.1 на удаленной машине. Как я могу настроить эту команду SSH для
- назначьте имя для туннеля и используйте, например, «my.tunnel.name» в моем браузере
- иметь возможность определить удаленный порт в моем браузере; Я хотел бы подключиться к my.tunnel.name:port, чтобы иметь возможность звонить на разные сайты
Это возможно с помощью SSH? Я читал страницы руководства и гуглил в течение двух дней, но, похоже, это не работает.
--edit 2012-06-01 23: 36-- Благодаря предоставленным ответам и комментариям переадресация портов теперь работает с использованием
ssh user@remote.server -D 4321
Я могу настроить это как прокси в моем браузере, и браузер будет обрабатывать любой запрос к localhost: anyport, как если бы он был сделан на удаленном сервере. Использовать имя теперь не нужно, поскольку браузер предназначен только для удаленных серверных сайтов.
Вы можете назначить имя, используя тот факт, что ваш петлевой адаптер будет в основном отвечать на любой адрес в сети 127.0.0.0/8.
Таким образом, вместо привязки к порту 4321 вы можете привязать к 127.1.2.3:4321. Затем просто настройте запись хоста, которая отображает имя на адрес обратной петли, который вы использовали, так что foo.bar отображается на
127.1.2.3
.В моей конфигурации SSH на моей рабочей станции администратора я настроил много туннелей так, чтобы они привязывались к некоторому адресу в диапазоне обратной петли, и у меня есть записи в моем файле хоста, поэтому я открываю много туннелей параллельно, используя один и тот же порт, и различаю их с помощью имя.
Так что, если вы подключитесь так
И в вашем файле hosts есть такая строка.
Тогда вы сможете подключиться к my.tunnel.name:4321 с вашего локального компьютера.
Если у вас есть дополнительное пространство IP-адресов в сети, к которому подключен ваш ssh-клиент, вы можете даже назначить дополнительный адрес для интерфейса Ethernet и использовать один из ваших реальных IP-адресов, а затем настроить записи в DNS, если вы хотите, чтобы другие системы могли использовать ваш SSH туннель.
Опция -L
-L [bind_address:]port:host:hostport
позволит вам использовать любой действительный IP-адрес в локальной системе для привязки. Вам также необходимо включить эту-g
опцию, если вы хотите, чтобы другие хосты могли подключаться через ваш ssh-туннель.источник
ifconfig l0 alias 127.0.1.1 255.255.255.0
в противном случае отличный совет!-N
в конце команды. Таким образом, легче запомнить, что это туннель, а не просто какое-либо соединение SSH.127.1.2.3
я должен был сделать это на моем MacBook:,ifconfig lo0 alias 127.1.2.3 255.255.255.0
который добавляет127.1.2.3
в качестве нового адреса на интерфейсеlo0
.Создайте динамическую переадресацию портов на уровне приложений (в основном, через socks proxy) с вашим SSH-туннелем, а затем направьте свои приложения через него. Чтобы создать динамический туннель, подключитесь следующим образом:
Затем настройте приложение для использования в качестве прокси-сервера SOCKSv5.
Если вы хотите, чтобы имя хоста было привязано к этому, просто добавьте
/etc/hosts
записи, которые указывают на 127.0.0.1, но более симпатичным способом может быть добавление 127.0.0.2 для первого туннеля и записи хостов для этого, 127.0.0.3 для второго туннель и отдельная запись хоста для этого и т. д. Если вы добавляете псевдонимы для 127.0.0.1, иногда этот псевдоним будет появляться в других командах при поиске localhost, что может сбивать с толку!Чтобы плавно использовать это в веб-браузере, вы можете использовать прокси-аддон, в качестве примера я предпочитаю веб-браузер Chrome, а для этого я использую аддон под названием
Proxy Switchy!
. Вы можете скачать его здесь:https://chrome.google.com/webstore/detail/caehdcpeofiiigpdhbabniblemipncjj
В конфигурации этого дополнения я могу определить несколько отдельных прокси-серверов, а затем связать регулярные выражения хостов / URL-адресов для использования определенных прокси-серверов. Таким образом, я всегда буду правильно перенаправляться через нужные туннели без необходимости переключения вручную. Пожалуйста, дайте мне знать, если вам нужны дополнительные разъяснения по любому из шагов!
источник