Làm cách nào để chuyển tiếp cổng 80 sang một cổng khác trên samemachine?


39

Làm cách nào tôi có thể chuyển tiếp yêu cầu đến từ cổng 80 sang cổng khác trên cùng máy linux?

Tôi đã từng làm điều này bằng cách thay đổi nat.conf, nhưng chiếc máy mà tôi đang sử dụng này không có NAT. Cái gì thay thế?


Không có NAT gì hay chỉ là không có nat.conf? Bạn đã thử bất kỳ quy tắc iptables nào bằng NAT chưa?
Ben Swinburne

Câu trả lời:


47

Bạn có thể thực hiện chuyển hướng với 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. Làm điều này trong nhiều năm
Alexander Pogrebnyak

1
Còn trên Windows Server thì sao?
Luc

Ôi trời, đây chính xác là thứ tôi đang tìm, kudos!
neurosnap

Ban đầu tôi không làm việc cho tôi, nhưng tôi vẫn ổn khi sử dụngsudo
mdiscenza

1
Phải làm gì nếu không có giao diện eth0? Tại sao không sử dụng giao diện loopback?
harschware

15

Chỉ thấy mình trong câu hỏi này không thể tìm thấy một cách dễ dàng. Không muốn cài đặt Nginx trong máy của tôi để thực hiện chuyển tiếp cổng đơn giản này.

Rinetdkhông làm việc cho tôi, không có gói làm việc cho bản phân phối của tôi. Tôi đã đi socatthay thế. Siêu đơn giản:

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

Phải được chạy như suđể có thể nghe trên cổng 80.


Rinetd thiết lập dễ dàng hơn tôi nghĩ.
johnshen64

socat hoạt động hoàn hảo!
viv

10

Bạn nên xem xét bằng cách sử dụng proxy ngược , chẳng hạn như Nginx . Ví dụ: bạn có thể đặt một cái gì đó như thế này trong nginx.conftệp của bạn :

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
Tại sao? Tôi không nhất thiết không đồng ý nhưng có lý do chính đáng nào để bạn không muốn điều này xảy ra ™ trong ngăn xếp mạng không?
Oli

@Oli Phương thức proxy ngược này sẽ không ảnh hưởng đến nhiều máy chủ ảo khác trên máy chủ, điều này sẽ xảy ra nếu iptables sẽ làm điều đó vì iptables không biết gì về máy chủ ảo.
tro
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.