如何将端口 80 转发到同一台机器上的另一个端口?

如何将端口 80 转发到同一台机器上的另一个端口?

如何将端口 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
    }
}

相关内容