全局设置比较少用,也试着折腾,想给我的ipv6 only加上自己另一台小鸡ipv4代理,根据坛友的文章使用redsocks没有成功设置,查了资料有可能是redsocks不支持v6配置。 仔细查看文章找到关键点并结合AI,最终折腾成功。 文章关键点:使用iptables把流量转发到本地端口12345上,需要在12345设置透明代理再转发到远程socks5上。 两点需要注意,一是iptables转发的这种流量是原始 TCP 流量,需要透明代理。 二是转发到远程socks5上,可以使用其他的工具,甚至可以多层转发。 有了这样的思路就可以不限于配置SOCKS5代理,其他代理也可以,例如用x-ui里面的dokedemo-door配合各种不同出站协议,灵活运用给v4设置全局v6/v4代理也可以。 个人使用习惯,我选择了gost,使用的是redir协议,这个基本等同于redsocks,仅支持TCP转发, 如果需要UDP,可以用gost里的tproxy,具体看gost文档:https://gost.run/tutorials/redirect/ 查了一下xray里面这个dokedemo-door也可以udp的。 具体操作: 1.双栈小鸡上搭建socks5代理。 使用你喜欢的方式搭建socks5代理,我一般用面板3x-ui或者gost 安装最新版本 https://github.com/go-gost/gost/releases bash <(curl -fsSL https://github.com/go-gost/gost/raw/master/install.sh) --install 运行 #用户名JTBvTZ08Rw,密码OsnfPBgbZd,端口12345 gost -L socks5://JTBvTZ08Rw:OsnfPBgbZd@:12345 需要Systemd后台运行的自己设置(下面步骤都忽略Systemd设置),参考(gost文档)和坛友的帖子。 2.在ipv6only的小鸡用gost转发代理 安装最新版本gost https://github.com/go-gost/gost/releases bash <(curl -fsSL https://github.com/go-gost/gost/raw/master/install.sh) --install #运行,这里我的双栈小鸡ip是 [2a0b:4141:820:14b::abc] gost -L redir://:12345 -F 'socks5://JTBvTZ08Rw:OsnfPBgbZd@[2a0b:4141:820:14b::abc]:12345' 3.iptables设置转发 开启转发 echo "net.ipv4.ip_forward=1" | tee -a /etc/sysctl.conf echo "net.ipv6.conf.all.forwarding=1" | tee -a /etc/sysctl.conf sysctl -p iptables添加规则 ipv4设置 清除现有规则(如果你有其它规则就不要随便清除): iptables -t nat -F iptables -t nat -X 配置规则: (RETURN排除转发的ip,可以自己根据情况添加): iptables -t nat -N SOCKS iptables -t nat -A SOCKS -d 127.0.0.1/8 -j RETURN iptables -t nat -A SOCKS -d 10.0.0.0/8 -j RETURN iptables -t nat -A SOCKS -p tcp -j REDIRECT --to-ports 12345 iptables -t nat -A OUTPUT -p tcp -j SOCKS 查看规则 iptables -t nat -L -v -n 保存规则: iptables-save > /etc/iptables/rules.v4 停用添加的SOCKS规则 iptables -t nat -D OUTPUT -p tcp -j SOCKS iptables -t nat -F SOCKS iptables -t nat -X SOCKS ipv6设置(如果仅需要ipv4,ipv6也可以不做转发) 清除现有规则: ip6tables -t nat -F ip6tables -t nat -X 添加规则 ip6tables -t nat -N SOCKS ip6tables -t nat -A SOCKS -d ::1/128 -j RETURN ip6tables -t nat -A SOCKS -d fc00::/7 -j RETURN ip6tables -t nat -A SOCKS -d 2a0b:4141:820:14b::abc/128 -j RETURN ip6tables -t nat -A SOCKS -p tcp -j REDIRECT --to-ports 12345 ip6tables -t nat -A OUTPUT -p tcp -j SOCKS 查看规则 ip6tables -t nat -L -v -n 保存规则: ip6tables-save > /etc/iptables/rules.v6 4.测试 IPv4 和 IPv6 代理 curl -6 ip.sb 应返回 2a0b:4141:820:14b::abc curl -4 ip.sb 应返回 193.233.134.xxx 说明已经成功 5.补充ipv6only连内网ipv4都没有,需要自己添加一个ipv4 我的ipv6only小鸡连内网ipv4 临时添加: # 接口 eth0 添加一个临时的 IPv4 地址10.0.0.2: ip addr add 10.0.0.2/24 dev eth0 # 添加默认网关10.0.0.1 sudo ip route add default via 10.0.0.1 dev eth0 永久添加,写进在网卡配置文件 #debian的编辑网络配置 /etc/network/interfaces nano /etc/network/interfaces #添加: auto eth0 iface eth0 inet static address 10.0.0.2/24 gateway 10.0.0.1 其他系统可能不一样,自己看情况设置 6.最后 因为我之前用的是公共DNS6to4,想想这个会不会更简单?顺便问了AI,这两方法的区别 具体区别,需要的自己去搭建(看起来搭建更复杂,但客户端使用更简单) 最后编辑:2025年07月07日 ©著作权归作者所有