Я хотел бы сделать все входящие подключения к порту 1000 моего хоста (IP: 200.234.XXX.XXX) для пересылки на порт 80 на хосте 10.211.55.5
Как я могу сделать это на моем хосте? Это работает Mac OS X 10.5.8
Я хотел бы сделать все входящие подключения к порту 1000 моего хоста (IP: 200.234.XXX.XXX) для пересылки на порт 80 на хосте 10.211.55.5
Как я могу сделать это на моем хосте? Это работает Mac OS X 10.5.8
Ответы:
Довольно просто сделать, во-первых, вам нужно включить службу удаленного входа на вашем 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
Очень просто с помощью универсального инструмента 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
Ну, я могу рассказать вам, как я делаю такие вещи в моей системе 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 (у меня нет опыта того, насколько хорошо это работает.)
Ваша машина подключена напрямую к интернету (IE - без роутера)? Обычно вы выполняете переадресацию портов на маршрутизаторе, но если вы используете модем для прямого подключения, вероятно, iptables - лучший способ.
iptables
для выполнения поставленного вопроса, это может быть полезно.
Вот хорошая статья: http://www.cyberhq.nl/article/384/port-forwarding-in-macos-x
Но так как вы пересылаете на 80, я предполагаю, что вы хотите, чтобы он перешел на веб-сервер, поэтому я просто изменил бы конфигурацию веб-сервера, чтобы настроить обратный прокси-сервер или что-то в этом роде.