
8090でConfluenceを実行していて、次のように実行されないようにしたいので、すべての着信TCP接続(最初はポート80)をポート8090にリダイレクトしようとしています。根これは、Confluenceがポート80に接続できるようにするための要件です。
これにIPTABLESを使用しましたが、次のような奇妙なエラーが発生しました。
root@psbm-ptc01b05:/# iptables -t nat -A PREROUTING -i eth1 -p tcp --dport 80 -j REDIRECT --to-port 8090
iptables: No chain/target/match by that name.
root@psbm-ptc01b05:/# iptables -A PREROUTING
iptables: No chain/target/match by that name.
root@psbm-ptc01b05:/#
iptablesを初めて使用するのにこの機能が正しく機能していればと思います。私がここで何を間違っているのか?どうすればいいですか?
ありがとうございます!
編集する:追加情報:
私のネットワークインターフェイスは次のとおりです。
root@psbm-ptc01b05:~# ifconfig -a
eth1 Link encap:Ethernet HWaddr 00:1c:42:2c:2d:97
inet addr:176.111.109.11 Bcast:176.111.109.255 Mask:255.255.254.0
inet6 addr: fe80::21c:42ff:fe2c:2d97/64 Scope:Link
inet6 addr: 2001:4cc0:3:f::6925/80 Scope:Global
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:25458482 errors:0 dropped:0 overruns:0 frame:0
TX packets:628471 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:2767947725 (2.7 GB) TX bytes:60340059 (60.3 MB)
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:466 errors:0 dropped:0 overruns:0 frame:0
TX packets:466 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:109338 (109.3 KB) TX bytes:109338 (109.3 KB)
venet0 Link encap:UNSPEC HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00
inet addr:127.0.0.1 P-t-P:127.0.0.1 Bcast:0.0.0.0 Mask:255.255.255.255
inet6 addr: ::2/128 Scope:Compat
UP BROADCAST POINTOPOINT RUNNING NOARP MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
venet0:0 Link encap:UNSPEC HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00
inet addr:10.137.96.0 P-t-P:10.137.96.0 Bcast:10.159.255.255 Mask:255.224.0.0
UP BROADCAST POINTOPOINT RUNNING NOARP MTU:1500 Metric:1
明らかにモジュールをロードしていません。これは悪いですか?
root@psbm-ptc01b05:~# lsmod|grep -E "nf_|xt_|ip"
root@psbm-ptc01b05:~#
lsmod|grep table コマンドも何も返しません。
iptables -t nat -L -vnの出力:
root@psbm-ptc01b05:~# iptables -t nat -L -vn
Chain PREROUTING (policy ACCEPT 292K packets, 27M bytes)
pkts bytes target prot opt in out source destination
292K 27M all -- * * 0.0.0.0/0 0.0.0.0/0
Chain POSTROUTING (policy ACCEPT 981 packets, 80153 bytes)
pkts bytes target prot opt in out source destination
Chain OUTPUT (policy ACCEPT 981 packets, 80153 bytes)
pkts bytes target prot opt in out source destination
root@psbm-ptc01b05:~#
もっと詳しく見てみましょう:
root@psbm-ptc01b05:~# iptables -L -t nat
Chain PREROUTING (policy ACCEPT)
target prot opt source destination
all -- anywhere anywhere
Chain POSTROUTING (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
root@psbm-ptc01b05:~#
もっと面白いもの:
root@psbm-ptc01b05:~# lsmod
Module Size Used by
root@psbm-ptc01b05:~#
ところで、これはVPSです。
答え1
カーネル構成を確認してくださいCONFIG_IP_NF_TARGET_REDIRECT
-j REDIRECTターゲットを使用するには、これを有効にする必要があります。
答え2
必要なモジュールがロードされていないようです。
ところで、どのディストリビューションとどのカーネルバージョンを使用していますか?uname -a
次のいずれかのコマンドを実行するときは、@ikrabbeが説明したモジュールが一覧表示されていることを確認してください。
grep -i =m /usr/src/linux/.config
cat /proc/modules | grep nat
find /lib/modules/*/ -type f -iname '*.ko' | grep redirect
OSとカーネルのバージョンに応じて簡単に役立ちます。