ポート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
ポート80
でリッスンできるようにするには、su
として実行する必要があります。
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
}
}