Cara membuat port forward di Mac OS X


36

Saya ingin membuat semua koneksi masuk ke port 1000 dari host saya (IP: 200.234.XXX.XXX) untuk diteruskan ke port 80 pada host 10.211.55.5

Bagaimana saya bisa melakukannya di host saya? Ini menjalankan Mac OS X 10.5.8


ah, Anda juga menjalankan paralel, memiliki masalah yang sama seperti saya? :)
LearnCocos2D

Jawaban:


30

Cukup sederhana untuk dilakukan, Pertama Anda harus mengaktifkan layanan login jarak jauh pada mac Anda ( System Preferences -> Sharing -> Remote Login ). Ini memulai server ssh Anda.

Kemudian jalankan perintah berikut di Terminal OS X Anda:

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

Anda mungkin harus menerima sidik jari server terlebih dahulu dan juga mengetikkan kata sandi lokal Anda untuk login ssh. (Anda juga dapat mengatur kunci publik / privat ssh lokal ke lokal agar tidak meminta kata sandi, akan menjadikannya sebagai latihan bagi pembaca.)

Formatnya adalah:

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

Bisakah kita melakukannya jika port 22 tidak terbuka?
Afshin Moazami

1
Anda harus terhubung entah bagaimana. Tetapi Anda selalu dapat menjalankan ssh di port lain ... mungkin port http? atau port BIND (DNS)? Itu sebagian besar terbuka di firewall.
Marius

10

Sangat sederhana menggunakan alat serbaguna ncat:

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

Dapatkan binari ncat / nmap untuk Mac OS X dari situs web resmi: http://nmap.org/download.html#macosx

EDIT: menambahkan sudo untuk mendengarkan pada port terbatas <1024


1
Terima kasih. itu sangat sederhana selain itu tidak perlu reboot!
verystrongjoe

Anda juga tidak perlu memulai server SSH di macOS Anda.
Tony Baguette

5

Dengan anggapan Anda memiliki router UPnP, portnya mudah dikonfigurasikan dengan menggunakan PortMap

Ini memiliki UI yang sangat sederhana.

teks alternatif


mengapa gambar Anda sangat kecil?
barlop

3

Baiklah, saya dapat memberi tahu Anda bagaimana saya melakukan hal semacam itu pada sistem Mac OS X 10.5.8 saya.

Saya mulai dengan jawaban tentang NAT, tetapi saya pikir Anda benar-benar menginginkan program forwarder TCP (Anda menyebutkan 'proxy' dan port forwarding.)

Ada beberapa cara untuk melakukan ini, tergantung pada kebutuhan Anda bahkan 'SSH' dapat ditekan ke dalam tindakan, meskipun cara pendek dan manis favorit saya adalah skrip Perl tcpforward .

Jika Anda memerlukan manipulasi HTTP (Anda mungkin perlu men-tweak pengalihan HTTP, sehingga ketika permintaan datang untuk URL tanpa trailing '/' Anda tidak diarahkan ke server nyata, tidak dapat diakses,), maka Apache dapat melakukan pekerjaan proxy terbalik. Anda ingin melihat mod_proxy dan secara khusus ProxyPass dan ProxyPassReverse. Jangan tidak memungkinkan ProxyRequests, itu sudah maju proxy. Seharusnya dimungkinkan untuk menggunakan Apache Mac OS sendiri untuk melakukan ini, jika Anda sudah menjalankannya. Itu datang dengan mod_proxy dan /etc/httpd/httpd.conf adalah file konfigurasi untuk memperbarui.

Bahkan dengan Apache, Anda perlu memastikan bahwa semua tautan di konten server nyata adalah relatif, jika mereka mereferensikan server sebenarnya maka Anda bisa mencoba modul mod_proxy_html (saya tidak punya pengalaman seberapa baik kerjanya).


+1 untuk tcpforward, Perl tidak pernah berhenti berguna.
Steve Kehlet

0

Apakah mesin Anda terhubung langsung ke internet (IE - tanpa router)? Biasanya Anda melakukan penerusan port pada router, tetapi jika Anda menggunakan modem untuk terhubung secara langsung, iptables mungkin merupakan cara terbaik.


Saya tidak tahu mengapa ini ditolak karena itu adalah kebenaran.
Hasaan Chop

4
@HasaanChop Ini diturunkan karena tidak membantu. Jika itu merinci cara menggunakannya iptablesuntuk menyelesaikan apa yang ditanyakan, itu bisa berguna.
Jon-Eric

Tidak ada iptables di mac os x.
disebutkan namanya_1

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.