如何将端口 80 上的传入请求转发到同一台 Linux 机器上的另一个端口?
我以前通过更改来实现这一点nat.conf
,但我使用的这台机器没有 NAT。有什么替代方案吗?
答案1
您可以使用 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
答案2
我刚遇到这个问题,找不到简单的方法。我不想在我的计算机上安装 Nginx 来执行这个简单的端口转发。
Rinetd
对我来说没用,我的发行版没有可用的软件包。我改用了socat
。非常简单:
socat TCP-LISTEN:80,fork TCP:127.0.0.1:5000
必须以 方式运行才能root
监听端口80
。
答案3
你应该看看使用反向代理, 例如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
}
}