shellスクリプトは80ポートのデータパケットをNode.jsサーバに転送します。
注意:無駄を省き、直接ROOTユーザーを使ってNode.jsサービスを実行しないでください。これは予想できない安全問題をもたらします。しかし、80ポートをHTTPデフォルトポートとする習慣はMS時代から続いています。どうすればいいですか?インターネット上ではNginXを使って逆代理をするなどと滔々と話していますが、そんなに大げさにする必要はないと思います。ROOTユーザーを使って普通のポートと80ポートのデータ転送をしたらいいです。iptables文を使って次のようにします。2.このようなステートメントを実行した後、80ポートバインディングを他のポートに転送したい場合は、まず
3.AchLinuxを使う子供靴は注意が必要です。カーネルがモジュールに欠けている可能性があります。上記の文でバインディング転送ポートを設定できません。カーネルまたはモジュールを再コンパイルする必要があります。
以上のエッグ痛の問題を介在して、台本を書きました。記録と自動バインディングを自動的に削除することができます。
iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-port
を使用してください。3.AchLinuxを使う子供靴は注意が必要です。カーネルがモジュールに欠けている可能性があります。上記の文でバインディング転送ポートを設定できません。カーネルまたはモジュールを再コンパイルする必要があります。
以上のエッグ痛の問題を介在して、台本を書きました。記録と自動バインディングを自動的に削除することができます。
#
iptables --line-numbers --list PREROUTING -t nat
# , , , “ ”。
iptables -t nat -D PREROUTING
は、上のコードをファイルとして保存し、実行権限を追加するだけで、前のレコードをクリアし、新しいポートをバインディング転送することができます。#!/bin/bash
if [ $# = 1 ]; then
if [ $1 -ge 0 ]; then
if [ $1 -le 65535 ]; then
#Delete all old bindings
for line_num in $(iptables --line-numbers --list PREROUTING -t nat|grep dpt:http|awk '{print $1}')
do
LINES="$line_num $LINES"
done
for line in $LINES
do
iptables -t nat -D PREROUTING $line
done
unset LINES
#Make a new binding
iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-port $1
echo "Port 80 is bound with $1 !"
exit 1
fi
fi
fi
echo "Please input ONE PORT NUMBER!"