How to change TTL?

You must change the TTL. If it is difficult, send the instruction. Thank you.

TTL for what?

What are you trying to do?


It is necessary to bypass restrictions on Internet connections from the cellular operator. they track the values ​​of ttl.

As Tom asked

TTL for SSH, TTL for Web Server, TTL for …?

Anbrey wants to bypass tethering restrictions of a cell carrier. With every hop over a router the time to live (TTL) inside the ip packet is decremented. If the phone acts like an router this is one way to detect tethering. It’s a quite common thing with virtual carriers as it is quick and dirty to implement “anti tethering” by just adding one rule to the firewalls.

For example if your provider drops all packets with a TTL of 64 you could change the default kernel value to 65 with a “sysctl net.ipv4.ip_default_ttl=65”.

If it works and what value works depends on the carrier. Also it depends on the phone itself what it does if you active tethering (e.g. some carriers use different APNs for tethered connection a phone switches to).

If a provider uses TTL to detect tethering they often configure it dynamically based on the first TTL they see from a participating IMEI. Again, depends on the carrier.


If the Pi is acting as the hotspot, I don’t think it will work, since the Pi will simply decrement the TTL of packets that pass through it. If the Pi is the tethered device, however, then it should work, though networks can employ many tests if they want.

A quick test on my Raspbian Pi:

pi@raspberrypi:~ $ sudo vi /etc/sysctl.conf
pi@raspberrypi:~ $ sudo sysctl -p
net.ipv4.ip_default_ttl = 70
pi@raspberrypi:~ $ wget

Runing tcpdump:

sudo tcpdump dst -nnXS
12:38:06.498176 IP > Flags [.], ack 351193576, win 2648, options [nop,nop,TS val 304675 ecr 312949652], length 0
	0x0000:  4500 0034 afc4 4000 4606 4740 c0a8 081f  E..4..@.F.G@....
	0x0010:  9ffd d4fa 9b8a 01bb 1bef 0d1f 14ee c9e8  ................
	0x0020:  8010 0a58 3de6 0000 0101 080a 0004 a623  ...X=..........#
	0x0030:  12a7 3b94                                ..;.

TTL is in position 8 (starting from 0) which is showing 0x46. Success. I’ve also (successfully) tried it with a TTL of 65.