Як зробити порт вперед в 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

Чи можемо ми це зробити, якщо порт 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

EDIT: додано sudo для прослуховування на обмеженому порту <1024


1
Спасибі. це дуже просто, до того ж не потрібно перезавантажувати!
verystrongjoe

Також вам не потрібно запускати SSH-сервер на вашому macOS.
Тоні Багет

5

Якщо припустити, що у вас є маршрутизатор UPnP, його легко налаштувати порти за допомогою PortMap

Він має дуже простий інтерфейс користувача.

alt текст


чому твій образ такий крихітний?
барлоп

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 для tcpforward, Perl ніколи не перестає бути корисним.
Стів Келет

0

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


Я поняття не маю, чому це було знято, бо це правда.
Hasaan Chop

4
@HasaanChop Це відхилено, оскільки це не корисно. Якщо в ньому детально описано, як саме використовувати, iptablesщоб здійснити те, що задається питанням, це може бути корисним.
Джон-Ерік

На mac os x немає iptables.
Без імені_1

-1

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

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


6
Схоже, посилання розірвана
Jochen Bedersdorfer
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.