50 votes

Comment rediriger le port 80 vers un autre port sur la même machine ?

Comment puis-je transférer les requêtes arrivant sur le port 80 vers un autre port sur la même machine linux ?

J'avais l'habitude de le faire en changeant nat.conf mais la machine que j'utilise n'a pas de NAT. Quelle est l'alternative ?

58voto

Thomas Vincent Points 1060

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

25voto

Kevinoid Points 501

Je viens de me retrouver dans cette situation et je n'ai pas trouvé de solution facile. Je ne veux pas installer Nginx sur ma machine pour faire cette simple redirection de port.

Rinetd n'a pas fonctionné pour moi, pas de paquetage fonctionnel pour ma distro. J'ai opté pour socat au lieu de cela. C'est très simple :

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

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

11voto

Quentin Points 41

Vous devriez envisager d'utiliser un proxy inverse , tels que Nginx . Par exemple, vous pouvez mettre quelque chose comme ceci 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
    }
}

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X