redsocks 需要手动下载编译。前置需求为libevent组件,当然gcc什么的肯定是必须的。

获取源码 git clone https://github.com/darkk/redsocks

安装 libevent 组件 centos 下 yum install libevent libevent-devel  -y

编译完,拷贝到/sbin 目录下,修改配置文件

vim /etc/redsocks/redsocks.conf

base{
log_debug = on;
log_info = on;
// 日志文件地址
log = "file:/var/log/redsocks.log";
daemon = on;
redirector = iptables;
user = nobody;
group = nobody; } redsocks {
//本地redsocks要监听的地址和端口 地址可以为0.0.0.0 即监听本地所有网卡ip
local_ip = 192.168.200.167;
local_port = 31338;
//socks地址和端口
ip = 192.168.200.167;
port = 9988;
type = socks5;
}

启动:

/sbin/redsocks -c /etc/redsocks/redsocks.conf &

查看监听端口:

ss -lntp|more

配置iptables
这里提供两个配置,第一个是基于黑名单的配置,就是说除了指定的ip地址以外,所有数据包通过redsocks转发:

    iptables -t nat -N REDSOCKS
iptables -t nat -A REDSOCKS -o lo -j RETURN
iptables -t nat -A REDSOCKS -d 169.254.0.0/16 -j RETURN
iptables -t nat -A REDSOCKS -d 192.168.0.0/16 -j RETURN
iptables -t nat -A REDSOCKS -p tcp -j REDIRECT --to-port 31338
iptables -t nat -I PREROUTING -p tcp -j REDSOCKS

第二个是基于白名单的配置,就是说指定的ip地址才会经过redsocks转发:

    iptables -t nat -N REDSOCKS
iptables -t nat -A REDSOCKS -p tcp -j REDIRECT --to-port 31338
iptables -t nat -I PREROUTING -p tcp -d 172.30.0.0/16 -j REDSOCKS

修改 iptables 时请注意配置

可以直接修改 iptables 配置文件 /etc/sysconfig/iptables

举例,添加以下nat表设置

*nat
:PREROUTING ACCEPT [0:0]
:POSTROUTING ACCEPT [0:0]
-N REDSOCKS
-A REDSOCKS -p tcp -j REDIRECT --to-port 31338
-I PREROUTING -p tcp -d 50.28.87.153/32 -j REDSOCKS
COMMIT

重启 iptables 服务

将内核转发打开,再将其他机器通过路由将某 ip 或某 ip 段的流量通过该机器转发至 socks 代理。

ps: redsocks 只能转发 tcp 流量

本博文主要基于该贴,http://bbs.konotes.org/thread-5089-1-1.html

redsocks 将socks代理转换成全局代理的更多相关文章

  1. 将 Tor socks 转换成 http 代理

    你可以通过不同的 Tor 工具来使用 Tor 服务,如 Tor 浏览器.Foxyproxy 和其它东西,像 wget 和 aria2 这样的下载管理器不能直接使用 Tor socks 开始匿名下载,因 ...

  2. jdk动态代理与cglib代理、spring aop代理实现原理

    原创声明:本博客来源与本人另一博客[http://blog.csdn.net/liaohaojian/article/details/63683317]原创作品,绝非他处摘取 代理(proxy)的定义 ...

  3. jdk动态代理与cglib代理、spring aop代理实现原理解析

    原创声明:本博客来源为本人原创作品,绝非他处摘取,转摘请联系博主 代理(proxy)的定义:为某对象提供代理服务,拥有操作代理对象的功能,在某些情况下,当客户不想或者不能直接引用另一个对象,而代理对象 ...

  4. 何为代理?jdk动态代理与cglib代理、spring Aop代理原理浅析

    原创声明:本博客来源为本人原创作品,绝非他处摘取,转摘请联系博主 代理(proxy)的定义:为某对象提供代理服务,拥有操作代理对象的功能,在某些情况下,当客户不想或者不能直接引用另一个对象,而代理对象 ...

  5. jdk动态代理与cglib代理、spring Aop代理原理-代理使用浅析

    原创声明:本博客来源为本人原创作品,绝非他处摘取,转摘请联系博主 代理(proxy)的定义:为某对象提供代理服务,拥有操作代理对象的功能,在某些情况下,当客户不想或者不能直接引用另一个对象,而代理对象 ...

  6. redsocks 设置全局代理

    分享一下我的经验, http://lilydjwg.is-programmer.com/2014/2/7/linux-really-global-http-proxy.42701.html 1. 优点 ...

  7. proxifier配合ss,实现全局代理

    proxfixer配合ss的话,基本可以实现全局代理,分应用代理,或者玩外服的游戏(一般的游戏默认不走代理,本软件可以强制应用代理)      由于ss使用的是sockets5代理,一般情况下只有浏览 ...

  8. Linux利用iptables实现真-全局代理

    对于经常要浏览油管等被墙网站的人而言,利用代理来实现fq是非常有必要的.现在fq的方法中,最为主流的应该要数ssr了,因此本教程都是基于ssr的socks5代理而言的. 在windows中,ssr客户 ...

  9. Linux/CentOS设置全局代理(http)

    说明:为什么说是http代理,其实这个还不能说是全称走代理,罪名写的区别就是ICMP协议这个设置就无效,只能说是90%的应用都可以使用这个设置来实现代理访问,只有个别不行,比如一些软件根本不走http ...

随机推荐

  1. Python中递归的最大次数

    实际应用中遇到了一个python递归调用的问题,报错如下: RuntimeError: maximum recursion depth exceeded while calling a Python ...

  2. java三大框架

    1定义 集成SSH框架的系统从职责上分为四层:表示层.业务逻辑层.数据持久层和域模块层,以帮助开发人员在短期内搭建结构清晰.可复用性好.维护方便的Web应用程序.其中使用Struts作为系统的整体基础 ...

  3. 夺命雷公狗-----React---28--小案例之react经典案例todos(全选和反选)完

    这个功能实现的步骤如下所示: 最终实现全选和反选,代码如下所示: <!DOCTYPE html> <html lang="en"> <head> ...

  4. response.write();改变页面布局的原因及解法

    Response.Write ,在ASP.NET 中不要随便使用 Response.Write,其原因是它会打乱 ASP.NET 的输出流顺序,在aspx.cs 中使用 Response.Write ...

  5. Android: 解决ADB server didn't ACK

    分析: 1         打开命令行工具, 运行adb start-server 启动服务,报错ADB server didn't ACK, 并且根据错误信息可以得到服务绑定的端口是5037,极有可 ...

  6. C#在高性能计算领域为什么性能却如此不尽人意

    C#的优雅,强大IDE的支持,.net下各语言的二进制兼容,自从第一眼看到C#就被其良好的设计吸引.一直希望将其应用于高性能计算领域,长时间努力却效果却不尽如人意. 对于小的测试代码用例而言,C#用2 ...

  7. Centos7上搭建OpenvpnServer——pritunl

    首先做基本的安装,如下(国内下载pritunl的rpm包可能会有点慢,多试几次) # vi /etc/yum.repos.d/mongodb-org-3.2.repo [mongodb-org-3.2 ...

  8. C#利用反射机制创建对象

    "反射"其实就是利用程序集的元数据信息. 反射可以有很多方法,编写程序时请先导入 System.Reflection 命名空间. 1.假设你要反射一个 DLL 中的类,并且没有引用 ...

  9. MVC系列2-Model

    上一篇我讲了ASP.MET MVC的基础概念,我相信从上一篇,我们可以知道MVC的执行过程.这一篇我们开始讲解Model.我们知道,在我们的应用程序中,大多时候是在遵循业务逻辑通过UI操作数据.所以这 ...

  10. PowerShell添加或修改注册表开机启动项脚本

    代码如下: $name = Read-Host "请输入开机启动项的名字(随便起)" $value = Read-Host "请输入开机启动项的值" try{ ...