最好使用两个alpine系统,可以使用虚拟机创建两个alpine系统,一个装redsocks,另一个装v2raya。
主要是如果需要连接的线路如果是国外的,有可能被墙,需要先借助一个能正常连接的线路翻墙出去再连接需要使用的线路最后再将不同的线路分配给不同的内外设备使用。
第一部分:apline安装redsocks
1、全新安装好的alpine系统安装更新和依赖
apk update
apk add curl
apk add wget
apk add bash
apk add vim
apk add net-tools
apk add unzip
apk add git
apk add make
apk add gcc
apk add libc-dev
apk add libevent-dev
apk add iptables-dev
apk add openssl-dev
apk add curl wget bash vim net-tools unzip git make gcc libc-dev libevent-dev iptables-dev openssl-dev
2、编译安装
git clone https://github.com/pch18-fork/redsocks (#也可以把文件夹里面的redsocks压缩包上传到服务器解压然后进入对应的目录)
cd redsocks/
make
3、设置执行权限,启动redsocks服务。
cp ./redsocks /usr/bin/redsocks
cp ./redsocks.service /etc/init.d/redsocks
chmod +x /usr/bin/redsocks
chmod +x /etc/init.d/redsocks
adduser -u 12345 -G root -D -g redsocks -h /usr/bin/redsocks -s /sbin/nologin redsocks
chown redsocks /usr/bin/redsocks
rc-update add redsocks boot
4、创建socks5代理配置文件,需要代理多少条线路就创建多少个配置文件,配置文件在对应的参数填写好代理对应的信息。
使用touch sk001.conf命令在当前文件夹里面创建一个sk001.conf文件。文件内容如下
-----------------------------------------------------内容是此行下面开始--------------------------------------------------------------
base {
log_debug = off;
log_info = on;
log = "file:/var/log/redsocks.log";
daemon = on;
redirector = iptables;
}
redsocks {
local_ip = 0.0.0.0;
local_port = 12345; #需要代理转发的本地端口
ip = 0.0.0.0; #代理的服务器ip
port = 3218; #代理的服务器端口
type = socks5; #代理协议
login = ""; #代理的用户名
password = ""; #代理的密码
}
-----------------------------------------------------内容到此行上面结束--------------------------------------------------------------
5、启动配置文件代理线路
使用redsocks -c sk001.conf命令启动代理配置文件。使用ps命令可以查看是否已经运行。使用kill -9 99(将99替换成自己实际的对应的PID)结束代理配置文件的运行。
6、设置转发规则。
首先运行下面的系统转发规则
echo "net.ipv4.ip_forward=1" >>/etc/sysctl.conf
sysctl -w net.ipv4.ip_forward=1
iptables -t nat -F && iptables -t nat -X && iptables -t nat -Z
iptables -t mangle -F && iptables -t mangle -X && iptables -t mangle -Z
iptables -t nat -A PREROUTING -d 0.0.0.0/8 -j RETURN
iptables -t nat -A PREROUTING -d 10.0.0.0/8 -j RETURN
iptables -t nat -A PREROUTING -d 127.0.0.0/8 -j RETURN
iptables -t nat -A PREROUTING -d 169.254.0.0/16 -j RETURN
iptables -t nat -A PREROUTING -d 172.16.0.0/16 -j RETURN
iptables -t nat -A PREROUTING -d 192.168.0.0/16 -j RETURN
iptables -t nat -A PREROUTING -d 224.0.0.0/4 -j RETURN
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
如果需要同时代理多条不通的线路然后分配给不同的设备使用线路,那就继续启动多条代理配置文件,然后使用ip端口转发规则
iptables -t nat -A PREROUTING -p tcp -s 192.168.1.101 -j REDIRECT --to-ports 10001 (注意转发的ip和配置文件的端口,需要修改为你实际需要对应的本地设备ip和代理配置文件的本地端口)
使用iptables -t nat -L -n -v --line查看转发规则。 使用iptables -t nat -D PREROUTING 8(将8替换成自己实际对应的num)命令删除转发规则
7、如果alpine系统重新启动之后,需要重新运行代理的配置文件和转发规则。
测试sk5代理通不通 curl --socks5 IP:端口 -U 用户名:密码 cip.cc
测试http代理通不通 curl -x IP:端口 -U 用户名:密码 cip.cc
第二部分:安装v2raya
参考下面的网址教程
https://v2raya.org/docs/prologue/installation/alpine/
第三部分:配置v2raya多拨
第四部分:配置redsocks多拨转发
备注:由于redsocks先天性不足,有时候会出现断流的情况,建议每天都重启一下服务或者系统,然后将需要启动的服务写一个脚本,让每次开机自动执行就好。