Я хотів би зробити всі вхідні з'єднання до порту 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
EDIT: додано 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, я припускаю, що ви хочете, щоб він перейшов на веб-сервер, тому я просто змінив би конфігурацію веб-сервера, щоб встановити зворотний проксі або щось подібне.