我选择了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
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
- 保存规则:
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,这两方法的区别
具体区别,需要的自己去搭建(看起来搭建更复杂,但客户端使用更简单)
特性 | gost + SOCKS5 代理 | DNS64 + NAT64 |
---|---|---|
工作层级 | 应用层(SOCKS5 协议) | 网络层(IPv6 到 IPv4 转换) |
支持的流量 | IPv4 和 IPv6 | 仅 IPv4(IPv6 原生支持) |
性能 | 中等(代理加密和转发有开销) | 高(网络层转换,延迟低) |
配置复杂度 | 中等(gost + ip6tables/iptables) | 较高(tayga + bind9 + iptables) |
部署时间 | 快(单命令 + 规则 | 较慢(需配置网络服务) |
灵活性 | 高(支持多种协议和目标) | 中等(仅限 IPv4 转换) |
安全性 | 支持认证(用户名/密码) | 无额外认证(依赖网络安全) |
依赖 | 双栈 VPS 的 SOCKS5 服务 | 双栈 VPS 的 NAT64 和 DNS64 服务 |
IPv4 地址需求 | 无需(依赖 SOCKS5 处理 | 双栈 VPS 需公网 IPv4 地址 |
适用场景 | 通用代理(IPv4+IPv6) | IPv6-only VPS 访问 IPv4 |
本文作者为萝莉工坊,转载请注明。