Как я могу перенаправить запросы, поступающие на порт 80, на другой порт той же Linux-машины?
Раньше я делал это, меняя nat.conf
, но на этой машине нет NAT. Какая альтернатива?
Вы можете выполнить перенаправление с помощью 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
Просто оказался в этом вопросе и не мог найти простого пути. Не хочу устанавливать Nginx на моем компьютере, чтобы выполнять эту простую переадресацию портов.
Rinetd
не работал у меня, нет рабочего пакета для моего дистрибутива. Я пошел за socat
вместо. Супер просто:
socat TCP-LISTEN:80,fork TCP:127.0.0.1:5000
Должен быть запущен как root
чтобы иметь возможность слушать порт 80
.
Вы должны посмотреть на использование обратный прокси, Такие как Nginx. Например, вы можете поместить что-то подобное в свой nginx.conf
файл:
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
}
}