Port forwarding di Linux tanpa iptables?


34

Saya memiliki server Linux VPS (virtuozzo) dan saya perlu mengatur penerusan port, tetapi penyedia hosting saya tidak mengizinkan modul kernel iptables-nat jadi iptables -t nat- tidak berfungsi.

Saya mencari cara lain bagaimana melakukannya. Saya tahu saya bisa meneruskan port menggunakan openssh , tapi saya perlu meneruskan 20+ port yang berbeda, tcp dan udp jadi ini bukan pilihan.

Apakah ada perangkat lunak untuk linux yang dapat melakukan port forwarding?


ya pertanyaan bagus +1. Saya tidak mengetahui solusi, menantikan untuk melihat apakah teh adalah sesuatu di sini.
The Shurrican

Lalu, bagaimana dengan program yang memungkinkan Anda meneruskan port ke berbagai tujuan berdasarkan IP sumber?
DPK

Hindari masalah sepenuhnya dengan tidak pernah menggunakan VPS berbasis Virtuozzo / OpenVZ.
Michael Hampton

@MichaelHampton: Tidak terlalu konstruktif ...
Nicolas Raoul

Jawaban:


47

Gunakan alat yang disebut "socat", itu adalah alat yang hebat untuk hal-hal seperti itu dan sudah dikemas dalam banyak distribusi linux. Baca tentang ini di sini: http://www.dest-unreach.org/socat/doc/README

Contoh penerusan port dengan socat:

socat TCP4-LISTEN:80,fork TCP4:www.yourdomain.org:8080

Ini mengalihkan semua koneksi TCP pada port 80 ke www.yourdomain.org port 8080 TCP.


Jangan lupa https adalah default di port 443, bukan port 80 :)
keiki

Socat adalah satu-satunya alat yang bekerja untuk saya pada raspberry pi ipv6-satunya
chotchki

Sempurna, memecahkan masalah saya secara instan. Catatan, Anda perlu memastikan bahwa port yang masuk terbuka di iptables jika Anda memilikinya.
jancha

13

Ada program kecil, sumber daya ringan yang disebut rediryang sangat dapat dikonfigurasi.

apt-get install redir pada distribusi berbasis Debian.


Saya telah menggunakan alat ini di masa lalu dan bekerja dengan sangat baik ...
Alex

Saya alat kedua ini. Tampaknya ini bukan alat paket forwarding, tetapi terowongan tcp. Ini akan mengubah alamat IP sumber yang dilihat oleh target. Jadi itu berfungsi dengan baik ketika Anda perlu mengarahkan ulang satu port ke komputer lain yang memiliki pengaturan rute yang berbeda.
scegg


6

xinetdmendukung atribut pengalihan yang akan melakukan apa yang Anda inginkan. Seperti yang telah dicatat orang lain, ada sejumlah program yang menangani pengalihan.

Menggunakan xinetdatau program lain yang menggunakan tcpwrapperspustaka akan memungkinkan Anda untuk menerapkan pembatasan akses jika dan ketika diperlukan.


4

xinet / inetd. Untuk misalnya:

redirect

Mengizinkan layanan tcp dialihkan ke host lain. Ketika xinetd menerima koneksi tcp pada port ini, ia memunculkan proses yang membuat koneksi ke host dan nomor port yang ditentukan, dan meneruskan semua data antara dua host.

http://linux.die.net/man/5/xinetd.conf


Terlihat menarik, tetapi hanya sebatas TCP seperti yang Anda katakan
Doud

4

Saya menemukan util kecil bernama portfwd http://portfwd.sourceforge.net/ ia melakukan persis apa yang saya butuhkan (penerusan TCP dan UDP), beranda mengatakan itu terakhir diperbarui pada tahun 2002, tetapi rilis terbaru adalah 2007, dan bekerja pada kernel 2.6 .


Saya akan menerima jawaban saya karena ini adalah satu-satunya perangkat lunak yang sepenuhnya mendukung protokol TCP dan UDP.
troex

3

SSH Melakukan penerusan port, selama Anda dapat melakukan tunnel pada koneksi SSL.


-3

Ok di sini adalah jawaban sederhana yang seharusnya berhasil, ini bukan ilmu roket tetapi kebanyakan orang terlalu mempersulit jawaban dan membingungkan semua yang baru bagi pengguna Linux.

ufw izinkan 2xxx

2xxx = apa pun nomor port Anda cukup ketik perintah itu ke terminal server Anda dan port yang Anda inginkan dibuka.


Itu hanya membuka port pada antarmuka yang menghadap ke luar server. Itu tidak mengarahkan atau meneruskan port dari satu ip ke yang lain. INI MEMBUKA PELABUHAN.
AmirHossein
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.