어디에 올릴지 고민했는데 이 곳이 맞나요? 이 방법은 너무 간단해서 별도로 자세히 쓸 필요를 못 느꼈어요.
배경: TMobile이 테더링 트래픽을 구별하는 방식에 대해 설명한 글을 여기에 썼어요.
핵심: TMobile은 패킷의 TTL(생존 시간) 값을 이용해 이 패킷이 폰을 통해 라우팅된 것인지, 아니면 폰 자체에서 시작된 것인지를 판단합니다. 이를 우회하는 방법은, 내 테더링 트래픽의 TTL을 폰 트래픽과 똑같이 하는 거예요. 기대하는 폰의 TTL보다 +1 높은 TTL 값을 갖는 디바이스를 테더링용으로 세팅하면, 폰에 의해 라우팅될 때 TTL이 1씩 줄어든 후 예상 값이 되어 감지되지 않게 할 수 있어요.
대부분의 폰은 TTL이 64입니다. 따라서, 테더링 디바이스의 TTL을 65로 맞추면, 폰을 통과할 때 1만 감소하여 64가 되고, 이 값으로 감지되지 않게 합니다.
이 실험적인 방법으로, 리눅스 머신이 테더링을 하면서 속도 제한이나 데이터 카운트 방지 효과를 기대할 수 있어요:
sudo iptables -t mangle -A POSTROUTING -j TTL --ttl-set 65
이 방법의 장점은:
- 모든 데이터에 적용됩니다. USB 또는 블루투스 테더링, 에테넷 또는 와이파이로 다른 기기와 연결 가능, 게임 콘솔, 스마트 TV, 더 많은 폰 등 제한 없음.
- 폰 자체를 수정할 필요 없음. 다른 사람의 핫스팟을 대신 사용해도 제약 없이 사용할 수 있습니다.
수정: 폰 자체에서 포스트-라우팅 TTL을 64로 설정하려고 했으나, 커널 모듈이 없어서 실패했고, stock Marshmallow에서도 어려울 것 같아요. 필요한 커널 모듈을 설치할 수도 있지만, 나는 귀찮아서 포기했어요.
수정: Windows에서 하는 방법, /u/spraguex 감사합니다.