redsocks 將socks代理轉換成全局代理


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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM