semigodking / redsocks

transparent redirector of any TCP/UDP connection to proxy
Apache License 2.0
1.17k stars 247 forks source link

有没有关于黑/白名单的功能及配置方法? #81

Closed mo-han closed 6 years ago

mo-han commented 6 years ago

可能是我眼花了,但几经查找都没找到,烦请指引,多谢。

(话说咱对黑/白名单的理解应该不至于出现分歧吧?我就不罗嗦了)

semigodking commented 6 years ago

这么说吧,没有白名单功能。白名单最好直接用iptables实现,用iptables让特定ip跳过redsocks2转发,这样效率高很多。 黑名单功能,算是有,也算没有。如果你确定想要一个黑名单功能,那你就建一个文件,每行一个ip:port格式的列表,然后在下面的配置里填 上文件路径,并把autosave_interval 配置为0。如果autosave_interval 不为0的话,redsocks2是自己维护这个名单的,这个名单内的ip:port会在stale_time指定的时间内无访问的情况下被删除。

 ipcache {
  cache_file = "/tmp/ipcache.txt";
  stale_time = 7200; // IP加进缓存两个小时内就别想出来了,连续两个小时无访问,那就删除掉。
  autosave_interval = 3600;// 如果设置为0,不自动保存的话,就相当于一个黑名单功能。  
  port_check = 1;
 }
mo-han commented 6 years ago

@semigodking 多谢及时回复。那请你看看这样的思路行不行:维护两个ipset(或者iptables)列表,一个表里的IP直接出去不走任何代理,另一个表里的直接连某个代理程序/端口,剩下的交给redsocks2判断。复杂点的话还可以用定时检查文件更新或者inotify检测文件改动的方法随意修改那两个列表。

semigodking commented 6 years ago

就是要像你说的这样才好,实际应用中,我也是这么做的。肯定能直接走的ip段,直接出去效率肯定是要高的。有些IP段,比如google的,基本上你可以完全认定它走不通的,直接交给不自动判断的代理走的话,效率高速度快。剩下的,就让redsocks2自己判断去吧,省心。

mo-han commented 6 years ago

@semigodking 但是每个用户都要自己折腾一番,而其中有相当一部分重复工作其实可以提炼出来的。也就是还差一个脚本,一个能给多数用户“拿来即用”、对少数用户提供思路和模版的脚本。不过既然都想到这一步了,不如用高级语言写一个后台管理程序,shell的语法写起来还是难受。

semigodking commented 6 years ago

各种脚本应该已经不少了。

On Thu, Jan 11, 2018, 21:21 墨焓 notifications@github.com wrote:

@semigodking https://github.com/semigodking

但是每个用户都要自己折腾一番,而其中有相当一部分重复工作其实可以提炼出来的。也就是还差一个脚本,一个能给多数用户“拿来即用”、对少数用户提供思路和模版的脚本。不过既然都想到这一步了,不如用高级语言写一个后台管理程序,shell的语法写起来还是难受。

— You are receiving this because you were mentioned.

Reply to this email directly, view it on GitHub https://github.com/semigodking/redsocks/issues/81#issuecomment-356932115, or mute the thread https://github.com/notifications/unsubscribe-auth/AB-rj9XlQF2OBZm1bBV3b4SoWZAPQiIrks5tJgrtgaJpZM4RaUzN .

mo-han commented 6 years ago

那些网上流传的一键脚本还差,主要是它们都是固定配置的。我自己写吧,写得好来个pull。