Привет вот ситуация у меня есть сервер в корпоративном центре обработки данных для проекта. У меня есть SSH-доступ к этой машине через порт 22. На этом сервере запущено несколько виртуальных машин, а затем в основе всех других операционных систем работают. Теперь, так как я нахожусь за брандмауэром центров обработки данных, мой руководитель спросил меня, могу ли я сделать что-то, с помощью чего я могу дать многим людям доступ в Интернет к этим виртуальным машинам напрямую. Я знаю, если мне было разрешено получать трафик на порт, отличный от 22, тогда я могу сделать переадресацию портов. Но так как я не позволил это, так что может быть решением в этом случае. Люди, которые хотели бы подключиться, могут быть полными идиотами. Кто может быть счастлив, просто открыв замазку на своих машинах, или даже filezilla.
У меня нет брандмауэра в моих руках или какой-либо другой порт, кроме 22 открытых, и фактически даже если я запрашиваю, они не позволяют открыть. 2 раза SSH - это не то, что хочет мой руководитель.
источник
Ответы:
Вы должны открыть ssh туннель с вашего компьютера на сервер в центре обработки данных. Давайте назовем это как «server1». Если вы используете openssh, вы можете просто запустить
Это откроет соединение вашего компьютера через порт 8080 с сервером, порт 8080, пропустив межсетевой экран между ними. Предполагая, что ваш apache прослушивает порт 8080. Формат переадресации портов прослушивает IP: локальный порт: удаленный адрес: удаленный порт. Конечно, для одного сервера вы можете использовать также
Обратите внимание, что параметр localhost в параметре -L относится к server1. Другими словами, сервер видит соединения, идущие от localhost, хотя на самом деле они приходят с вашего компьютера через ssh-соединение.
Вам также нужен параметр
в конфигурации ssh сервера (обычно это / etc / ssh / sshd_config).
После этого другие могут подключиться к вашему компьютеру через порт 8080, чтобы получить соединение через обратный прокси-сервер Apache. Если вам нужен общий прокси (чтобы пользователи могли выбирать адрес, а не только конкретные адреса в конфигурации Apache), вам следует установить squid на server1 и использовать туннель ssh для порта squid.
источник
ssh -L0.0.0.0:8080:localhost:8080 you_username@server1
если соединение все равно будет проходить через порт 22 брандмауэра (потому что если этого не произойдет, я ничего не смогу сделать), и между локальной и удаленной машинами будет установлен туннель ssh. на указанных портах, но весь трафик будет поступать (порт 22) через брандмауэр.ssh -L0.0.0.0:8080:remote_server_address:8080 you_username@server1
я хочу знать, что можно указать как remote_server_address, это то, что IP-адрес внутренней машины, к которой я хочу использовать server1 в качестве промежуточного. Я правильно понял?Может быть, вы могли бы использовать что-то вроде SshMeIn . Это веб-система с открытым исходным кодом, которая будет создавать ssh-туннель через брандмауэры, вам даже не нужно открывать порты.
источник