CentOSでポート転送を構成する方法
まずIP転送機能をオンにし、デフォルトではオフにします。
一時的な変更:# echo 1 >/proc/sys/net/ipv4/ip_forward
変更後すぐに有効になりますが、システムが再起動するとデフォルト値0に戻ります。
永続的な変更:vi /etc/sysctl.conf
#次の値を見つけて0を1に変更
net.ipv4.ip_forward = 1
#sysctl–p(すぐに有効にする)
デフォルト値0はip転送を禁止し、1に変更するとip転送機能がオンになります。
ユーザーが172.16.4.247:728にアクセスした場合、172.16.4.97:80に転送したいとします。
# iptables -t nat -A PREROUTING -p tcp -d 113.108.110.61 --dport 728 -j DNAT --to-destination 172.16.4.97:80
# iptables -t nat -A POSTROUTING -p tcp -s 172.16.4.97 --sport 80 -j SNAT --to-source 172.16.4.247
#service iptables save(現在のルールを/etc/sysconfig/iptablesに保存)
または、/etc/sysconfig/iptablesファイルを直接変更することもできます。
-A PREROUTING -d 172.16.4.247/32 -p tcp -m tcp --dport 728 -j DNAT --to-destination 172.16.4.97:80
-A POSTROUTING -s 172.16.4.97/32 -p tcp -m tcp --sport 80 -j SNAT --to-source 172.16.4.247
最後に728ポートを開くのを忘れないでください
-A INPUT -p tcp -m state --state NEW -m tcp --dport 728 -j ACCEPT
構成が完了したら、ファイアウォールを再起動してください。
# service iptables restart
ネイティブポート転送本機間で異なるポートで転送するだけでアクセスが容易になります。http://ip:729戻りたいhttp://ip:80の内容で、以下のように構成されています。
[root@localhost sbin]# iptables -t nat -A PREROUTING -p tcp --dport 729 -j REDIRECT --to-ports 80
[root@localhost sbin]# service iptables save
[root@localhost sbin]# service iptables restart