Как сделать порт вперед в Mac OS X

36

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

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

Даниэль Кукье
источник
ах, ты тоже проводишь параллели, сталкиваешься с той же проблемой, что и я? :)
LearnCocos2D

Ответы:

30

Довольно просто сделать, во-первых, вам нужно включить службу удаленного входа на вашем 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
Marius
источник
Можем ли мы сделать это, если порт 22 не открыт?
Афшин Моазами
1
Вам нужно как-то подключиться. Но вы всегда можете запустить ssh на другом порту ... возможно, порт http? или порт BIND (DNS)? Они в основном открыты на брандмауэрах.
Мариус
10

Очень просто с помощью универсального инструмента 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

Тони Багет
источник
1
Спасибо. это очень просто, к тому же не нужно перезагружаться!
verystrongjoe
Также вам не нужно запускать SSH-сервер на вашем MacOS.
Тони Багет
5

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

У него очень простой интерфейс.

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

Алексис Херст
источник
почему твое изображение такое маленькое?
barlop
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 (у меня нет опыта того, насколько хорошо это работает.)

JRG
источник
+1 за tcpforward, Perl никогда не перестает быть полезным.
Стив Келет
0

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

Dentrasi
источник
Я понятия не имею, почему за это проголосовали, потому что это правда.
Хасан Чоп
4
@HasaanChop Это понижено, потому что это не полезно. Если в нем подробно описано, как использовать его iptablesдля выполнения поставленного вопроса, это может быть полезно.
Джон-Эрик
На Mac OS X нет iptables.
Безымянный_1
-1

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

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

Nisse Engström
источник
6
Похоже, что ссылка не работает
Йохен Бедерсдорфер