IPTABLES는 192.168.1.1 포트 21516에서 192.168.2.3 포트 80으로 트래픽을 라우팅합니다.

IPTABLES는 192.168.1.1 포트 21516에서 192.168.2.3 포트 80으로 트래픽을 라우팅합니다.

저는 Debian/Linux Bullseye(버전 11)를 사용하고 있습니다.

내가 달성하려는 것은 Linux 방화벽을 통한 포트 전달에 IPTABLES를 사용하도록 TabloTV를 설정하는 것입니다. 내 Linux 방화벽에는 두 개의 이더넷 카드(실제로는 eth0 enp0s25) 및 eth1(예: 내부)와 MASQ 및 FORWARD 트래픽을 위한 두 개의 별도 네트워크가 있습니다.

  • eth0192.168.1.0/24 실행(또는 enp0s25특정 경우)
  • MASQ 흑백 및 포트 모두 포워딩
  • eth1192.168.2.0/24 실행

그러나 내가 원하는 것은 방화벽 내부의 특정 컴퓨터를 설정하여 다음을 수행하는 것입니다.

  • (방화벽 IP 192.168.1.1 포트 21516에서 192.168.2.3의 포트 80으로 트래픽을 리디렉션) 192.168.2.3:80을 외부 포트 번호 21516으로 리디렉션
  • (방화벽 IP 192.168.1.1 포트 21517에서 192.168.2.3의 포트 8887로 트래픽을 리디렉션) 192.168.2.3:8887을 외부 포트 번호 21517로 리디렉션

내 방화벽 외부 IP는 192.168.1.1이지만 내부 방화벽 IP는 192.168.2.1이고 포트 트래픽을 다시 라우팅하려는 내부 컴퓨터는 192.168.2.3입니다.

나는 다음을 시도했습니다 :

  • 이 라인은 이전에 MASQ의 일부로 존재했습니다.
    sudo iptables -A FORWARD -d 192.168.2.0/24 -j ACCEPT 
    sudo iptables -A FORWARD -s 192.168.2.0/24 -j ACCEPT 
    
  • 그런 다음 다음 줄을 추가했습니다.
    sudo iptables -A POSTROUTING -s 192.168.2.0/24 -o tun0 -j MASQUERADE #this is allow traffic to run on my VPN
    sudo iptables -A POSTROUTING -s 192.168.2.0/24 -o enp0s25 -j MASQUERADE #this is allow traffic to run between eth0 and eth1
    sudo iptables -A PREROUTING -p tcp -m tcp --dport 21516 -j DNAT --to-destination 192.168.2.3:80 
    sudo iptables -A PREROUTING -p tcp -m tcp --dport 21517 -j DNAT --to-destination 192.168.2.3:8887
    sudo iptables -A POSTROUTING -d 192.168.2.3/32 -p tcp -m tcp --dport 80 -j SNAT --to-source 192.168.1.1:21516 
    sudo iptables -A POSTROUTING -d 192.168.2.3/32 -p tcp -m tcp --dport 8887 -j SNAT --to-source 192.168.1.1:21517
    

여전히 나에게는 효과가 없습니다. 누구든지 아이디어가 있습니까?

관련 정보