WebRTC로 뭔가를 하다보면 테스트를 위해서 signaling(TCP)은 그대로 두고 media(UDP)만 막아야 하는 경우가 왕왕 생깁니다. MacOS에서 음성/영상 패킷을 주고 받지 못하는 네트워크 상황을 만들어야 할때 pfctl 으로 가능합니다.
먼저, pfctl를 enable 시켜줍니다.
sudo pfctl -e
10000~65535 port로 들어오는 UDP를 block 하려면
echo "block in proto udp from any to any port 10000:65535" | sudo pfctl -f -
설정을 원래대로 바꾸려면
sudo pfctl -f /etc/pf.conf
Inbound UDP에 대해서 대역폭을 80kbit/s로 제한하려면
sudo dnctl pipe 1 config bw 80Kbit/s
echo "dummynet in proto udp pipe 1" | sudo pfctl -f -
설정을 원래대로 바꾸려면
sudo dnctl -q flush
sudo pfctl -f /etc/pf.conf