iptables를 사용하여 포트를 리디렉션하는 중 오류가 발생했습니다. 해당 이름에 대한 체인/대상/일치가 없습니다.

iptables를 사용하여 포트를 리디렉션하는 중 오류가 발생했습니다. 해당 이름에 대한 체인/대상/일치가 없습니다.

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 및 커널 버전에 따라 쉽게 도움이 될 것입니다.

관련 정보