経由でアクセス可能な VPS がありhello.com
、Ubuntu と、HTML コンテンツを提供する最小限の Python スクリプトを実行しています。Python スクリプトはポート でリッスンしています8069
。hello.com:8069
期待どおりに動作しますが、ポート から Python スクリプトにアクセスする必要もありますhello.com:80
。
調べてみたところ、どうやら 1000 未満のポートをリッスンできるのは root のみで、セキュリティ上の理由からこれは選択肢ではないようです。私が見つけた唯一の現実的な解決策は、iptables ポート リダイレクトです。
NAT テーブルに REDIRECT ルールを設定しようとしましたが、アクセスするhello.com:80
と依然としてタイムアウト エラーが発生します。
これが私の/etc/iptables/rules.v4
*nat
:PREROUTING ACCEPT [0:0]
:INPUT ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
:POSTROUTING ACCEPT [0:0]
-A PREROUTING -i eth0 -p tcp -m tcp --dport 80 -j REDIRECT --to-ports 8069
COMMIT
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -p tcp -m tcp --dport 22-j ACCEPT
-A INPUT -p tcp -m tcp --dport 80 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 8069 -j ACCEPT
COMMIT
いくつかのガイドに従って、net.ipv4.conf.eth0.forwarding=1
と を設定しましたnet.ipv4.ip_forward=1
。何か見落としている点はありますか?
サーバーの詳細:
[email protected]:/# lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 14.04.3 LTS
Release: 14.04
Codename: trusty
[email protected]:/# iptables -V
iptables v1.4.21
[email protected]:/# ufw version
ufw 0.34~rc-0ubuntu2
Copyright 2008-2012 Canonical Ltd.
[email protected]:/# netstat -i
Kernel Interface table
Iface MTU Met RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR Flg
eth0 1500 0 2067 0 0 0 1879 0 0 0 BMRU
lo 65536 0 637 0 0 0 637 0 0 0 LRU