Linux에서 UDP 포트 전달이 작동하지 않습니다.

Linux에서 UDP 포트 전달이 작동하지 않습니다.

포트 53의 AP에서 9053을 수신하는 사용자 지정 DNS 서버로 UDP 트래픽을 전달하기 위해 포트 전달 규칙을 적용하려고 합니다. 다양한 통화를 시도했습니다. 그들 중 누구도 직업이 없습니다. 캘리에서 먹어봤는데 아래에서는 전달 규칙을 적용하기 전의 출력을 찾을 수 있습니다.

iptables -S; iptables -S -t nat

********* NAT *************
Chain PREROUTING (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination         

Chain INPUT (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination         

Chain OUTPUT (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination         

Chain POSTROUTING (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination         
    0     0 MASQUERADE  all  --  *      *       10.42.0.0/24        !10.42.0.0/24        
********* FILTER *************
Chain INPUT (policy ACCEPT 33 packets, 7260 bytes)
 pkts bytes target     prot opt in     out     source               destination         
    0     0 ACCEPT     udp  --  wlan0  *       0.0.0.0/0            0.0.0.0/0            udp dpt:67
    0     0 ACCEPT     tcp  --  wlan0  *       0.0.0.0/0            0.0.0.0/0            tcp dpt:67
    0     0 ACCEPT     udp  --  wlan0  *       0.0.0.0/0            0.0.0.0/0            udp dpt:53
    0     0 ACCEPT     tcp  --  wlan0  *       0.0.0.0/0            0.0.0.0/0            tcp dpt:53

Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination         
    0     0 ACCEPT     all  --  *      wlan0   0.0.0.0/0            10.42.0.0/24         state RELATED,ESTABLISHED
    0     0 ACCEPT     all  --  wlan0  *       10.42.0.0/24         0.0.0.0/0           
    0     0 ACCEPT     all  --  wlan0  wlan0   0.0.0.0/0            0.0.0.0/0           
    0     0 REJECT     all  --  *      wlan0   0.0.0.0/0            0.0.0.0/0            reject-with icmp-port-unreachable
    0     0 REJECT     all  --  wlan0  *       0.0.0.0/0            0.0.0.0/0            reject-with icmp-port-unreachable

Chain OUTPUT (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination         

다음은 내가 적용하려고 시도한 규칙이지만 그 중 아무 것도 작동하지 않았습니다.

sudo iptables -t nat -A PREROUTING -p udp -i wlan0 --dport 53 -j REDIRECT --to-ports 9053

그런데 9053은 무작위이기 때문에 지속되어서는 안 됩니다.

참고 사항: 1. ip_forward 플래그가 1로 설정됨

  1. Wireshark가 ICMP 오류 응답을 반환하고 포트에 연결할 수 없으며 대상에 연결할 수 없습니다.

  2. WiFi 설정에서 공유 연결 기능을 사용했습니다 – IdanE

  3. Linux에서 로컬로 실행되고 9053에서 수신 대기하는 DNS 서비스를 설정했습니다. 서비스가 예상대로 실행됩니다(nslookup을 사용하여 직접 통신합니다.

  4. 다른 TCP 전달 규칙은 함께 사용할 다른 서비스를 찾습니다. UDP 리디렉션과 관련이 있습니다.

관련 정보