pf: 포트 80의 모든 패킷을 모든 인터페이스에서 SOCKS 프록시로 전달합니다.

pf: 포트 80의 모든 패킷을 모든 인터페이스에서 SOCKS 프록시로 전달합니다.

인터페이스에서 SOCKS 프록시로 포트 80의 모든 패킷을 전달하려고 합니다(섬기는 사람). 내 설정이 올바른지 잘 모르겠지만 패킷을 전달할 수 없습니다.

이와 같은 SOCKS 프록시를 만듭니다.기계 A:

ssh -D 5948 user@server

Chrome에서 프록시 설정을 변경하면 SOCKS 프록시를 통해 인터넷에 액세스할 수 있습니다.

장치를 연결할 때를 제외하고는 잘 작동합니다(장치 B) 도착하다기계 A블루투스를 사용하여 SOCKS 프록시를 통해 내 컴퓨터를 통해 해당 장치에서 인터넷에 액세스하고 싶습니다.

           +---------------+    +---------------+    +--------------+
           |               |    |               |    |              |
           |               |    |               |    |              |
Internet   |    Server     <----+   Machine A   <----+   Device B   |
           |               |    |               |    |              |
           |               |    |               |    |              |
           +---------------+    +---------------+    +--------------+
                                                  Connected via Bluetooth

SOCKS 프록시를 사용하는 대신 ISP를 사용하는 것을 제외하고는 블루투스를 통한 연결 및 인터넷 공유가 제대로 작동합니다.

대신에 내가 원하는 것은 pf포트 80의 모든 인터페이스에서 내 SOCKS 프록시로 모든 패킷을 전달하는 것입니다.

다음 내용을 사용하여 앵커 파일을 만들어 보았습니다.

rdr pass inet proto tcp from any to any port 80 -> 127.0.0.1 port 5948

모든 인터페이스 에 앵커를 포함 pf.conf하고 다음과 같이 전달을 활성화했습니다.

net.inet.ip.forwarding=1
net.inet6.ip6.forwarding=1

전달이 발생하지 않습니다. 내 규칙이 올바르지 않다고 가정할 수 있습니다 pf. 다음을 사용하여 확인했습니다.

sudo pfctl -vnf /etc/pf.anchors/org.jj.forwarding

내가 잘못 가고있는 아이디어가 있습니까?

답변1

전달을 활성화하면 다음 iptable 규칙을 추가하면 작동합니다

iptables -t nat -A 사전 설정 -i bl1 -p tcp --dport 80 -j DNAT --to 127.0.0.1:5948

bl1은 블루투스 인터페이스입니다

관련 정보