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,这两方法的区别
具体区别,需要的自己去搭建(看起来搭建更复杂,但客户端使用更简单)
特性 | 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 |