인터페이스에서 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은 블루투스 인터페이스입니다