一、安装tun2socks
- 下载 tun2socks 压缩包
wget https://github.com/xjasonlyu/tun2socks/releases/download/v2.5.2/tun2socks-linux-amd64.zip
- 解压缩 tuns2socks 压缩包
unzip tun2socks-linux-amd64.zip
- 将 tun2socks 添加为可全局执行的命令
mv tun2socks-linux-amd64 tun2socks
sudo mv tun2socks /usr/local/bin/
sudo chmod +x /usr/local/bin/tun2socks
- 查看 tun2socks 是否能正常运行
tun2socks -h
输出如下内容说明正常:
二、配置 IP 转发
- 打开并编辑 sysctl 配置文件:
vim /etc/sysctl.conf
- 找到(或添加)以下行,将其取消注释并设置为 1:
net.ipv4.ip_forward=1
- 应用更改
sudo sysctl -p
三、使用 tun2socks 启动全局代理
- 创建TUN接口并分配IP地址:
sudo ip tuntap add mode tun dev tun0
sudo ip addr add 198.18.0.1/15 dev tun0
sudo ip link set dev tun0 up
- 删除现有默认路由:
sudo ip route del default
- 添加主要默认路由:
sudo ip route add default via 198.18.0.1 dev tun0 metric 1
- 添加备用默认路由(使用 172.29.0.1 作为网关):ip route 查看部署之前的默认路由为 default via 172.29.0.1 dev eth0 proto dhcp metric 100
sudo ip route add default via 172.29.0.1 dev eth0 metric 10
- 启动tun2socks并绑定到主接口,准备一个 socks5 代理,以 192.168.0.100:7890 为例,执行以下代码即可运行一个全局代理:
sudo tun2socks -device tun0 -proxy socks5://192.168.0.100:7890 -interface eth0
-
sudo: 以超级用户权限运行命令。 -
tun2socks: 运行tun2socks工具的命令。 -
-device tun0: 指定使用的 TUN 设备,在此例中为tun0。 -
-proxy socks5://192.168.0.100:7890: 指定 SOCKS5 代理服务器,位于192.168.0.100的端口7890。 -
-interface eth0: 指定使用的网络接口,在此例中为eth0。
执行结果如下:
- 禁用rp_filter(如有必要):
sudo sysctl net.ipv4.conf.all.rp_filter=0
sudo sysctl net.ipv4.conf.eth0.rp_filter=0
四、配置相同局域网下的其他设备的网关为当前设备
如图所示:配置其他设备172.29.3.67的网关地址为 172.29.3.66,子网掩码为:255.255.255.0,DNS服务器地址为: 172.29.3.66
至此即可在172.29.3.67通过172.29.3.66联网。