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

Daniel Cukier
sumber
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
Marius
sumber
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

Tony Baguette
sumber
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

Alexis Hirst
sumber
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).

jrg
sumber
+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.

Dentrasi
sumber
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
-1

Berikut ini adalah artikel yang bagus: http://www.cyberhq.nl/article/384/port-forwarding-in-macos-x

Tetapi karena Anda meneruskan ke 80, saya berasumsi Anda ingin pergi ke server web jadi saya hanya akan mengubah konfigurasi server web untuk membuat proxy terbalik atau sesuatu seperti itu.

Nisse Engström
sumber
6
Sepertinya tautannya rusak
Jochen Bedersdorfer