我的
Linux机器有两个帐户.我想为不同的帐户设置不同的默认网关.如果有可能,我怎么能这样做?
解决方法
路由表是系统范围内的事物,而不是特定于用户的.所以,它并不是很简单.
步骤如下:
1:使用ip route和ip rule命令的大量使用创建多个路由表.
2:设置iptables以根据发送方进程的UID标记传出数据包.
3:根据标记(传出的数据包从iptables获取)设置路由表.
扩展#1:不幸的是,ip route和ip规则并没有很好的记录.但是您可以使用不同的规则创建多个路由表.注意:它们是路由表,与iptables完全不同!而且,诀窍是你可以在iptables中“标记”数据包,这实际上意味着你可以给它们一个整数值.最后,您可以设置iptables规则以路由其他方式(使用其他路由表)标记的数据包.它很干净,功能很好,但没有很好的记录.
扩展#2:AFAIK ip规则是处理多个路由表实体的命令.使用ip route,您还可以设置要插入(修改)给定路由的路由表.
扩展#3:通过iptables更改传出数据包的路由表并非易事,this post也是由我工作的.