redsocks 透明代理

整体架构

电脑A
服务器
互联网

整体架构说明

为电脑 A 提供透明代理
服务器拥有 eth1 网卡与电脑 A 连接
服务器拥有 eth0 网卡可以连接互联网

服务器架构

电脑A
redsockets:port
socks5:port
互联网

服务器架构说明

1 为电脑 A 提供透明代理
2 电脑 A 网关指向服务器 eth1
3 利用 iptables 把所有互联网请求 DNS 除外都转发至 redsockets 服务
4 redsockets 可以支持 http, https 代理 (tinyproxy, tproxy 等都无法实现 https 透明代理)
5 redsockets 把电脑 A 请求 (http, https ) 转发至本地 sockets 服务
6 由 socket 服务提供互联网服务

优点

经过测试, 只有 redsockets 支持 https 透明代理
配置简单

rpm下载

由于没有找到可用的 centos7 rpm 版本,因此我自己打了一个 rpm 提供使用
参考下面软件目录结构

redsockets-0.5.0-11.el7.x86_64.rpm 下载链接

rpm 结构说明

# rpm -qlp redsockets-0.5.0-11.el7.x86_64.rpm
/etc/redsockets/redsockets.conf                       配置文件
/usr/bin/redsocks                                     执行明文
/usr/lib/systemd/system/redsockets.service            服务管理文件

软件安装

需求 libevent >= 2.0.21

yum install -y libevent 
rpm -ivh redsockets-0.5.0-11.el7.x86_64.rpm

配置文件

/etc/redsockets/redsockets.conf

base {
        log_debug = off;
        log_info = off;
        log =  "syslog:daemon";
        daemon = on;
        redirector = iptables;
}
redsocks {
        /*
         'local_ip' defaults to 127.0.0.1 for security reasons,
          use 0.0.0.0 if you want to listen on every interface.
        */

        local_ip = 127.0.0.1;

        /*
          local_port default 9999
          port listen use by redsockets service
          web client ex: firefox use to connect to local_port
        */

        local_port = 9999;

        /*
         `ip' and `port' are IP and tcp-port of proxy-server
        */

        ip = 127.0.0.1;
        port = 7778;

        /*
         known types: socks4, socks5, http-connect, http-relay
        */

        type = socks5;
}

软件使用

systemctl start redsockets  启动
systemctl stop redsockets   关闭

电脑 A

1 dns 指向一个可用 DNS
2 网关指向服务器 eth1 IP 地址

透明代理设定

启动服务后,假设 redsockets 当前监听了 eth1 IP 对应 9999 端口, 执行下面 iptables 命令

允许数据转发

# sysctl -w net.ipv4.ip_forward=1

dns 转发

iptables -t nat -A  POSTROUTING   -p udp --dport 53 -j MASQUERADE

透明代理

iptables -t nat -A PREROUTING -i  eth1 -p tcp ! --dport 53  -j REDIRECT --to-port 9999
iptables -t nat -A PREROUTING -i  eth1 -p udp ! --dport 53 -j REDIRECT --to-port 9999
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Terry_Tsang

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值