Jak mogę przekazywać żądania przychodzące przez port 80 do innego portu na tym samym komputerze z systemem Linux?
Robiłem to przez zmianę nat.conf
, ale ten komputer, którego używam, nie ma NAT. Jaka jest alternatywa?
Jak mogę przekazywać żądania przychodzące przez port 80 do innego portu na tym samym komputerze z systemem Linux?
Robiłem to przez zmianę nat.conf
, ale ten komputer, którego używam, nie ma NAT. Jaka jest alternatywa?
Odpowiedzi:
Przekierowanie można wykonać za pomocą 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
sudo
Właśnie znalazłem się w tym pytaniu i nie mogłem znaleźć łatwego sposobu. Nie chcę instalować Nginx na moim komputerze, aby wykonać to proste przekierowanie portów.
Rinetd
nie działało dla mnie, brak działającego pakietu dla mojej dystrybucji. socat
Zamiast tego poszedłem . Super proste:
socat TCP-LISTEN:80,fork TCP:127.0.0.1:5000
Należy uruchomić, su
aby móc nasłuchiwać na porcie 80
.
Powinieneś rozważyć użycie odwrotnego proxy , takiego jak Nginx . Na przykład możesz umieścić coś takiego w swoim nginx.conf
pliku:
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
}
}