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

我怎样才能将端口80上的请求转发到同一台linux机器上的另一个端口?

我曾经通过更改nat.conf来做到这nat.conf ,但我使用的这台机器没有NAT。 有什么select?

您可以使用iptables完成redirect:

 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

例如把它放在你的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 for dynamic content to Rails app } } 

Rinetd设置更容易,我想。

刚刚发现自己在这个问题上找不到一个简单的方法。

不想在我的机器上安装Nginx来做这个简单的端口转发。

Rinetd没有为我工作,我的发行版没有工作包。

我去了socat 。 超级简单:

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

必须作为su才能在80端口上收听。