Pertanyaan Pengalihan port sederhana


Saya sedikit bermasalah karena saya mencoba men-setup reverse proxy dengan dan server kedua. Ide saya adalah untuk mendapatkan firewall untuk meneruskan https ke proxy reverse dan port 29418 (gerrit ssh) ke server kedua. Sekarang saya bekerja sama orang IT mengatakan: TIDAK BISA! Baik kedua port masuk ke server 1 atau kedua port masuk ke server 2.

Ok, sebagai pekerjaan di sekitar saya mencoba untuk mengatur port forwarding pada proxy reverse port 29418 -> server2: 29418

Detail:

  • Server1 IP: 10.0.0.132 dan 192.168.10.2 pada Ubuntu 12.04.2 LTS
  • Server2 IP: 10.0.0.133 dan 192.168.10.3 pada Ubuntu 12.04.2 LTS

Sekarang baik https maupun port 29418 beralih dari firewall ke 10.0.0.132, IT mengatakan itu satu-satunya cara. :(

Jadi tolong beri tahu saya cara meneruskan dari 10.0.0.132:29418 -> 192.168.10.3:29418 atau 10.0.0.133:29418

Ketika saya bekerja pada 10.0.0.132 saya dapat terhubung ke keduanya 10.0.0.133:29418 dan 192.168.10.3 menyebabkan 9418 sehingga port terbuka.

- Pembaruan -

My iptables -t nat -L terlihat seperti ini:

root @ dev: / root # iptables -t nat -L
Chain PREROUTING (kebijakan ACCEPT)
target memilih sumber tujuan
DNAT tcp - di mana saja dev.example.com tcp dpt: 29418 ke: 10.0.0.133

Rantai INPUT (kebijakan SETUJU)
target memilih sumber tujuan

Rantai OUTPUT (kebijakan SETUJU)
target memilih sumber tujuan

Chain POSTROUTING (kebijakan ACCEPT)
target memilih sumber tujuan
root @ dev: / root # cat / proc / sys / net / ipv4 / ip_forward
1

14
2017-07-15 02:08


asal




Jawaban:


Dalam hal orang lain mencari cara yang benar-benar berfungsi. Meskipun @HorsePunchKid tepat dalam sarannya, saya telah menemukan panduan ini yang mengisi langkah-langkah yang hilang:

http://www.debuntu.org/how-to-redirecting-network-traffic-to-a-new-ip-using-iptables/

Intinya:

Aktifkan Penerusan IP:

sysctl net.ipv4.ip_forward=1

Tambahkan aturan penerusan Anda (gunakan n.n.n.n: port):

iptables -t nat -A PREROUTING -p tcp -d 10.0.0.132 --dport 29418 -j DNAT --to-destination 10.0.0.133:29418

Mintalah IPtables ke Masquerade:

iptables -t nat -A POSTROUTING -j MASQUERADE

Dan itu dia! Ini bekerja untuk saya dalam hal apapun :)


25
2018-01-25 09:40



Ini adalah jawaban terbaik yang saya temukan tentang hal ini. - Victor Piousbox
Koneksi terputus dari wadah Docker saya setelah menggunakan solusi ini. Harus menghapus aturannya. Aturan berfungsi, tetapi kehilangan semua lalu lintas lainnya. Saya tidak merekomendasikan ini. - Dyin
iptables -t nat -A POSTROUTING -j MASQUERADE OH WOW ... begitulah, terima kasih! Menghabiskan berjam-jam mencari web dan mencari tahu. Ini sangat sederhana dan berhasil. - shrimpwagon


Jika Anda memiliki iptables yang diinstal pada 10.0.0.132, saya pikir ini akan sangat mudah:

iptables -t nat -A PREROUTING -j DNAT -d 10.0.0.132 -p tcp --dport 29418 --to 10.0.0.133

Ini mengatakan untuk mengirimkan lalu lintas yang masuk ke 10.0.0.132 pada port 29418 ke 10.0.0.133 sebagai gantinya, pada port yang sama, sebelum perutean lain apa pun yang mungkin coba dilakukan oleh 10.0.0.132. Jika Anda menjalankan perintah ini dan mengalami masalah dengan itu, ganti tanda -A dengan -D untuk menghapusnya.

Jika Anda ingin menjalankan aturan ini secara otomatis ketika 10.0.0.132 dijalankan, pertimbangkan untuk menambahkan perintah di atas sebagai aturan "pengeposan" di / etc / network / interfaces.


6
2017-07-15 02:16



Itulah yang saya lakukan tetapi itu tidak berhasil. Saya belum mengomentari net.ipv4.ip_forward = 1 di /etc/sysctl.conf tetapi saya masih mendapatkan kesalahan untuk menghubungkan ke 10.0.0.132:29418 - uncletall


Jika ada yang mencari metode sementara, coba solusi di bawah ini.

    ssh -L 192.168.0.10:8080:10.0.0.10:80 root@10.0.0.10

Perintah di atas mengarahkan semua koneksi ke port 8080 pada mesin basis Anda ke 80 port mesin virtual Anda. Anda dapat menguji kerja dengan mengakses halaman web http://192.168.0.10:8080, dan itu akan menunjukkan halaman web di mesin tamu.

Ini berlaku untuk semua port :)


3
2017-12-30 18:42





Pada akhirnya saya harus menginstal pfSense sebagai router di dalam server ESXi saya untuk mengarahkan lalu lintas ke VM yang berbeda karena saya tidak bisa membuatnya bekerja di Ubuntu.


0
2017-07-18 03:50