logo NodeSeekbeta

【记录】给ipv6 only的小鸡配置全局双栈SOCKS5代理

看了坛友的文章【记录】在Debian 12配置全局SOCKS5代理 https://www.nodeseek.com/post-324224-1

全局设置比较少用,也试着折腾,想给我的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设置
  1. 清除现有规则(如果你有其它规则就不要随便清除):
iptables -t nat -F
iptables -t nat -X
  1. 配置规则: (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
  1. 查看规则
iptables -t nat -L -v -n
  1. 保存规则:
iptables-save > /etc/iptables/rules.v4
  1. 停用添加的SOCKS规则
iptables -t nat -D OUTPUT -p tcp -j SOCKS
iptables -t nat -F SOCKS
iptables -t nat -X SOCKS

  • ipv6设置(如果仅需要ipv4,ipv6也可以不做转发)
  1. 清除现有规则:
ip6tables -t nat -F
ip6tables -t nat -X
  1. 添加规则
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
  1. 查看规则
ip6tables -t nat -L -v -n
  1. 保存规则:
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
123
  • 技术贴

  • xhj003

  • 好像有个warp脚本自带socks5代理?3xui用的就是这个吧
    我还以为很简单...

  • @tof #3
    warp设置的是添加cfip,脚本有设置全局的
    3xui设置好像不是全局的吧

  • 鸡腿奉上

  • 你这是把代理全弄明白了,我就是问了ai然
    然后全复制粘贴

  • @Portainer #6
    了解原理找到思路才是折腾的乐趣

  • 先滚进我的收藏吧 xhj028
    日后我的ipv6小鸡要用这方法试试

  • 我用v2raya更快

123

你好啊,陌生人!

我的朋友,看起来你是新来的,如果想参与到讨论中,点击下面的按钮!

📈用户数目📈

目前论坛共有61574位seeker

🎉欢迎新用户🎉