I have a python script which gets packets from a remote machine and writes them (os.write(self.tun_fd.fileno(), \'\'.join(packet))) to a tun interface gr3:
You can't bind to port numbers lower than 1024 as a unprivileged user.
So you should either:
Harder, but more secure solution if it's really necessary to accept from 111: