web-dev-qa-db-ja.com

同じマシンの別のポートにポート80を転送する方法は?

ポート80で受信したリクエストを同じLinuxマシンの別のポートに転送するにはどうすればよいですか?

以前はnat.confを変更してこれを行っていましたが、使用しているこのマシンにはNATがありません。代替は何ですか?

41
Nohsib

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
48
Thomas Vincent

この質問で私は簡単な方法を見つけることができませんでした。この単純なポート転送を行うためにマシンにNginxをインストールしたくない。

Rinetdは私には機能しませんでした。私のディストリビューションには機能するパッケージがありませんでした。代わりにsocatを選びました。超シンプル:

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

ポート80でリッスンできるようにするには、suとして実行する必要があります。

15
alfetopito

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
    }
}

10
Tilo