複数のサブドメインで構成されるシステムを作成したいと思います。私はDNSを使用して各サブドメインをIPアドレスに設定します。
この質問では、任意のIPアドレスを使用しました。
165.93.198.34 x.mydomain.com (実際には 165.93.198.220:8080)
165.93.198.38 z.mydomain.com (実際には165.93.198.220:81)
165.93.198.44 c.mydomain.com (実際の 165.93.198.220:443)
165.93.198.220 mydomain.com
iptablesを使用すると、要求がIPアドレスに165.93.198.34
来たとき165.93.198.220:8080
。
iptables -t nat -A PREROUTING -p tcp -d 165.93.198.34 --jump DNAT --to-destination 165.93.198.220:8080
しかし、事前ルーティングはできません。
[root@static ~]# iptables -L
Chain INPUT (policy ACCEPT)
target prot opt source destination
ACCEPT all -- anywhere anywhere state RELATED,ESTABLISHED
ACCEPT icmp -- anywhere anywhere
ACCEPT all -- anywhere anywhere
ACCEPT tcp -- anywhere anywhere state NEW tcp dpt:ssh
ACCEPT tcp -- anywhere anywhere state NEW tcp dpt:http
ACCEPT tcp -- anywhere anywhere state NEW tcp dpt:ftp
ACCEPT tcp -- anywhere anywhere state NEW tcp dpt:https
ACCEPT tcp -- anywhere anywhere state NEW tcp dpt:down
ACCEPT tcp -- anywhere anywhere state NEW tcp dpt:webcache
ACCEPT tcp -- anywhere anywhere state NEW tcp dpt:81
REJECT all -- anywhere anywhere reject-with icmp-host-prohibited
Chain FORWARD (policy ACCEPT)
target prot opt source destination
REJECT all -- anywhere anywhere reject-with icmp-host-prohibited
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
[root@static ~]# iptables -L -t nat
Chain PREROUTING (policy ACCEPT)
target prot opt source destination
DNAT tcp -- anywhere 165.93.198.34-iprovider.com to:165.93.198.220:8080
Chain POSTROUTING (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
私は何が間違っていましたか?
答え1
宛先IP(165.93.198.220)がネットワーク上の他のシステムである場合
次のようにチェーンにACCEPT
ルールを追加します。FORWARD
iptables -A FORWARD -p tcp -d 165.93.198.220 --dport 8080 -j ACCEPT
また、IP転送が有効になっていることを確認してください。
sysctl net.ipv4.ip_forward
に設定されていない場合は、次のよう1
に動的に有効にします。
sysctl -w net.ipv4.ip_forward=1
または
echo 1 > /proc/sys/net/ipv4/ip_forward
再起動後も続行するには、/etc/sysctl.conf
次の行を編集して追加します。
net.ipv4.ip_forward = 1
ターゲットIP(165.93.198.220)がローカルコンピュータにある場合
次のようにチェーンにACCEPT
ルールを追加します。INPUT
iptables -A INPUT -p tcp --dport 8080 -j ACCEPT