Bagaimana cara meneruskan port 80 ke port lain pada mesin samemachine?


39

Bagaimana saya bisa meneruskan permintaan yang masuk pada port 80 ke port lain pada mesin linux yang sama?

Saya biasa melakukan ini dengan mengubah nat.conf, tetapi mesin yang saya gunakan tidak memiliki NAT. Apa alternatifnya?


Tidak ada NAT sama sekali atau hanya tanpa nat.conf? Sudahkah Anda mencoba aturan iptables menggunakan NAT?
Ben Swinburne

Jawaban:


47

Anda dapat menyelesaikan pengalihan dengan iptables:

iptables -A INPUT -i eth0 -p tcp --dport 80 -j ACCEPT

iptables -A INPUT -i eth0 -p tcp --dport 8080 -j ACCEPT

iptables -A PREROUTING -t nat -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 8080

+1. Sedang melakukan ini selama bertahun
Alexander Pogrebnyak

1
Bagaimana dengan di Windows Server?
Luc

Oh man, ini persis apa yang saya cari, pujian!
Neurosnap

Awalnya tidak bekerja untuk saya, tetapi baik-baik saja ketika saya menggunakansudo
mdiscenza

1
apa yang harus dilakukan jika tidak ada antarmuka eth0? mengapa tidak menggunakan antarmuka loopback?
harschware

15

Hanya menemukan diri saya dalam pertanyaan ini dan tidak dapat menemukan cara yang mudah. Tidak ingin menginstal Nginx di mesin saya untuk melakukan penerusan port sederhana ini.

Rinetdtidak bekerja untuk saya, tidak ada paket kerja untuk distro saya. Saya pergi untuk socatsebaliknya. Sangat sederhana:

socat TCP-LISTEN:80,fork TCP:127.0.0.1:5000

Harus dijalankan suagar dapat mendengarkan di port 80.


Pengaturan Rinetd lebih mudah saya pikir.
johnshen64

socat bekerja dengan sempurna!
viv

10

Anda harus melihat menggunakan proxy terbalik , seperti Nginx . Misalnya, Anda mungkin meletakkan sesuatu seperti ini di nginx.conffile Anda :

server {
    listen         80;

    server_name    your_ip_address your_server_name

    access_log   /var/log/nginx/your_domain/access.log ;
    error_log    /var/log/nginx/your_domain/error.log info ;

    location / {
        proxy_pass  http://127.0.0.1:3000;   # pass requests to the destination
    }
}

2
Mengapa? Saya tidak selalu tidak setuju tetapi apakah ada alasan bagus Anda tidak ingin ini terjadi begitu saja ™ di tumpukan jaringan?
Oli

@Oli Metode reverse proxy ini tidak akan memengaruhi banyak host virtual lain di server, yang akan terjadi jika iptables akan melakukannya karena iptables tidak tahu apa-apa tentang host virtual.
ash
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.