У моей компании есть интрасетевой веб-сервер, доступный только из локальной сети, используемый для веб-разработки в качестве сервера интеграции. Пользователи в локальной сети устанавливают свои /etc/hosts для использования тех же виртуальных хостов, которые определены в конфигурации Apache сервера интеграции, и поэтому могут подключаться к нему с помощью стандартного порта 80.
Иногда я работаю удаленно и могу получить доступ к серверу через SSH, используя настраиваемый порт.
Если я установлю в /etc/hosts публичный IP-адрес этого сервера, есть ли способ использовать SSH-соединение с этим пользовательским портом, чтобы мое браузерное соединение туннелировалось через него и получало страницы с этого веб-сервера?
решение1
Я не совсем понял вашу конфигурацию, но когда вы подключаетесь по SSH к серверу компании, вы должны иметь возможность настроить SSH-туннель, чтобы использовать браузер для доступа к веб-серверу компании.
Вы делаетенетнеобходимо настроить /etc/hosts на локальной машине. Использование параметра ssh
-L port:host:hostport
Весь трафик на порт на локальном хосте туннелируется на хост/хостпорт на удаленном компьютере. Поэтому, когда вы делаете
ssh -L 80:web-server:80 user@ssh-server -p 22
http://localhost
будет перенаправлен на web-server:80
. Обратите внимание, что hostport транслируется на удаленном сервере, т. е. сервере ssh.
-p 22
не требуется, если сервер ssh использует порт по умолчанию, но в вопросе говорится, что сервер ssh проходит через пользовательский порт. В этом случае измените 22
на пользовательский порт.
Если система жалуется, чтоПривилегированные порты может перенаправлять только root., запустите его как суперпользователь:
sudo ssh -L 80:web-server:80 user@ssh-server -p 12345
или войдите в систему как пользователь root.
решение2
Версия командной строки SSH:
ssh -L 90:devserver:80 remotehost.example.com
Теперь перейдите кhttp://devserver:90/
Помните, что /etc/hosts должен указывать на 127.0.0.1
С помощью PuTTY, в SSH-туннелях:
- В поле «Исходный порт» введите 90.
- В поле «Назначение» введите devserver:80
- Нажмите «Добавить».
- Не забудьте вернуться к сеансу и нажать «Сохранить».
Лучше, чем все эти туннелирования, было бы настроить OpenVPN в офисе.
решение3
Я делаю ровно наоборот. Когда я у клиента, я настраиваю безопасный туннель ssh через tunnelier на моем ноутбуке, чтобы он указывал на внешний сервер с установленным сервером ssh. Затем я настраиваю switchy в google chrome, чтобы включить перенаправление трафика из моего браузера на внешний сервер, маршрутизируемого через ssh.
Так,
- Установите switchy в браузере Chrome (можно настроить прокси в ff/ie — switchy позволяет легко переключаться между конфигурациями прокси). Установите хост SOCKS на 127.0.0.1 и порт на 1080.
- Настройте клиент Tunnelier на удаленной машине, например, на ноутбуке/домашнем компьютере, и подключите его к корпоративному серверу SSH. Используйте порт 1080 с включенным "SOCKS / HTTP Proxy Forwarding".
Надеюсь это поможет.