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

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

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

다음과 같이 SOCKS 프록시를 생성합니다.기계 A:

ssh -D 5948 user@server

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

장치(장치 B) 에게기계 ABluetooth를 사용하여 내 컴퓨터를 통과하는 해당 장치에서 SOCKS 프록시를 통해 인터넷에 액세스하려고 합니다.

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

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

대신 내가 원하는 것은 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은 블루투스 인터페이스입니다

관련 정보