I'm not saying this is the "right" or "best" solution, but...
I taught my son to punch hard and aim for the nose: "if you miss, you'll get his mouth or cheek or eye and it'll still hurt". I also explained that if the bully hit, slapped, tripped, or otherwise battered him, that my son was to lay him out. "What if I get in trouble?", he asked. "You let me handle that part", I replied. We had to play-act it a few times because my boy kept wanting to say something first, like "if you touch me again I'll hit you in the nose!" No. You've already warned him before and he kept it up. Don't talk: act.
Cut to a week later when the teacher was waiting for me when I went to get my son from school. "He hit another kid today." "Was it so-and-so?" "Yes." "Good. I told him to." The teacher looked around, leaned in and confessed: "someone needed to belt that little asshole."
The bullying ended that day. My boy stopped coming home with torn clothes, scratches, and bruises. My son got an enormous confidence boost and hasn't had a problem with other little thugs since then.
Violence is not the solution to all problems, but damned if it can't fix some.