SO_BINDTODEVICE Socket Option in Linux

起因 因为写tun2socks的缘故,近来断断续续搜索+研究了一下下如何让socket流量只从特定的interface发出而不走路由表,这样就可以防止特定流量经过tun接口然后无限循环。 策略路由+bind 在Linux下其实方法挺多的,比如可以用策略路由(policy routing),先用bind绑定特定的接口地址,然后根据源地址配置用双路由表即可。 这里不得不吐槽Windows下既不能绑接口也没有策略路由,可能是我还没找到,反正目前没想好怎么解决。 bind函数的作用只是让发送包的源地址是你绑定的接口地址,但是在匹配路由表的时候该怎么走还是怎么走(匹配路由只看目的地址),而且还可能因为源...