web-dev-qa-db-fra.com

Comment transférer le port 80 vers un autre port sur la même machine?

Comment puis-je transférer les demandes provenant du port 80 vers un autre port sur la même machine Linux?

Je faisais cela en changeant nat.conf, mais cette machine que j'utilise n'a pas de NAT. Quelle est l'alternative?

41
Nohsib

Vous pouvez effectuer la redirection avec 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
48
Thomas Vincent

Je me suis retrouvé dans cette question et je n'ai pas trouvé de moyen facile. Je ne veux pas installer Nginx sur ma machine pour effectuer cette simple redirection de port.

Rinetd n'a pas fonctionné pour moi, pas de package de travail pour ma distribution. J'ai opté pour socat à la place. Super simple:

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

Doit être exécuté en tant que su pour pouvoir écouter sur le port 80.

15
alfetopito

Vous devriez envisager d'utiliser un proxy inverse, tel que Nginx. Par exemple, vous pourriez mettre quelque chose comme ça dans votre nginx.conf fichier:

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
    }
}

10
Tilo