32

Я хотел бы сделать все входящие подключения к порту 1000 моего хоста (IP: 200.234.XXX.XXX) для перенаправления на порт 80 на хосте 10.211.55.5

Как я могу сделать это на моем хосте? Это работает Mac OS X 10.5.8

6 ответов6

27

Довольно просто сделать, во-первых, вам нужно включить службу удаленного входа на вашем Mac (Системные настройки -> Общий доступ -> Удаленный вход). Это запускает ваш ssh-сервер.

Затем выполните следующую команду в вашем терминале OS X:

ssh -L 200.234.XXX.XXX:10000:10.211.55.5:80 -N 127.0.0.1

Возможно, вам придется сначала принять отпечаток сервера, а также ввести свой локальный пароль для входа в систему через ssh. (Вы также можете настроить локальный или локальный открытый / закрытый ключ ssh, чтобы он не запрашивал пароль, оставив это в качестве упражнения для читателя.)

Формат такой:

ssh -L local_addr:local_port:remote_addr:remote_port -N 127.0.0.1
8

Очень просто с помощью универсального инструмента ncat:

sudo ncat --sh-exec "ncat 10.211.55.5 80" -l 1000 --keep-open

Загрузите двоичные файлы ncat/nmap для Mac OS X с официального сайта:http://nmap.org/download.html#macosx

РЕДАКТИРОВАТЬ: добавлено sudo для прослушивания на ограниченном порту <1024

5

Предполагая, что у вас есть маршрутизатор UPnP, его легко настроить порты с помощью PortMap

У него очень простой пользовательский интерфейс.

альтернативный текст

3

Что ж, я могу рассказать вам, как я делаю такие вещи в моей системе Mac OS X 10.5.8.

Я начал с ответа о NAT, но я думаю, что вы на самом деле хотите использовать программу пересылки TCP (вы упоминаете «прокси» и переадресацию портов).

Есть несколько способов сделать это, в зависимости от ваших потребностей, даже «SSH» может быть задействован, хотя мой любимый короткий и приятный способ - это сценарий Perl tcpforward.

Если вам нужны некоторые манипуляции с HTTP (вам может понадобиться настроить перенаправления HTTP, чтобы при запросе URL-адреса без завершающего символа «/» вы не перенаправлялись на реальный недоступный сервер), тогда Apache может выполнить работа обратного прокси. Вы захотите взглянуть на mod_proxy и, в частности, ProxyPass и ProxyPassReverse. Не включайте ProxyRequests, это вперед проксирование. Для этого должна быть возможность использовать собственный Apache Mac OS, если он у вас запущен. Он поставляется с mod_proxy и /etc/httpd/httpd.conf - это файл конфигурации для обновления.

Даже с Apache вам нужно убедиться, что все ссылки в контенте реального сервера являются относительными, если они ссылаются на реальный сервер, то вы можете попробовать модуль mod_proxy_html (у меня нет опыта того, насколько хорошо это работает.)

-1

Ваша машина подключена напрямую к интернету (IE - без роутера)? Обычно вы выполняете переадресацию портов на маршрутизаторе, но если вы используете модем для прямого подключения, iptables, вероятно, является лучшим способом.

-1

Вот хорошая статья: http://www.cyberhq.nl/article/384/port-forwarding-in-macos-x

Но так как вы пересылаете на 80, я предполагаю, что вы хотите, чтобы он перешел на веб-сервер, поэтому я просто изменил бы конфигурацию веб-сервера, чтобы настроить обратный прокси-сервер или что-то в этом роде.

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