发布于
1117 字 · 6 分钟

局域网代理共享方案

AI 摘要

作者
  • avatar
    姓名
    Corner430
    社交账号
题图

局域网代理共享的核心思路是:将一台设备配置为旁路网关,其他设备的网关指向它,所有流量经该设备的代理工具转发后再出去。这样局域网内所有设备无需单独安装代理工具即可上网。

1 网络拓扑概述

网络拓扑图

常见方案对比:

方案设备要求难度稳定性
Mac/Linux TUN 模式一台 Mac 或 Linux 电脑
安卓手机旁路由Root 后的安卓手机
iKuai 软路由工控机或多网口设备
OpenWrt 软路由参见 OpenWrt 配置指南

2 Mac/Linux 作为网关(TUN 模式)

利用 Mac 或 Linux 上代理工具的 TUN 模式,开启 IP 转发,让局域网内其他设备通过它上网。

2.1 开启 IP 转发

Linux:

sysctl -w net.ipv4.ip_forward=1

Mac:

sysctl -w net.inet.ip.forwarding=1

Mac 也可以直接使用 clashX Pro 的增强模式实现。

2.2 安装 Service Mode

在 Clash 中安装 Service Mode,安装完成后重载应用:

安装Service Mode

安装成功后 Service Mode 旁的地球图标会从灰色变为绿色,表示服务已正常运行。

2.3 开启 TUN Mode

在 Clash 设置中打开 TUN Mode:

开启TUN Mode

2.4 配置其他设备

将局域网内其他设备的网关设置为本机 IP 即可。

注意:作为网关的电脑自身的网关不要修改,保持指向路由器。

2.5 持久化 IP 转发

上面的 sysctl 命令重启后会失效。修改配置文件实现持久化:

# 编辑 sysctl 配置
sudo vim /etc/sysctl.conf

在文件末尾添加:

net.ipv4.ip_forward=1

使修改立即生效:

sudo sysctl -p

3 安卓手机充当旁路网关

利用闲置的已 Root 安卓手机,通过 Termux 配置 IP 转发和路由策略,充当旁路网关。

3.1 前置条件

  • 手机已 Root
  • 安装 Termux
  • 将手机设置为静态 IP(在 Wi-Fi 设置中手动指定)

3.2 配置脚本

在 Termux 中切换到 root 用户并创建脚本:

su
cd /data/local
mkdir proxy
cd proxy
vim proxy.sh

脚本内容如下:

#!/system/bin/sh

tun='tun0'    # 虚拟接口名称
dev='wlan0'   # 物理接口名称,eth0 或 wlan0
interval=3    # 检测网络状态间隔(秒)
pref=18000    # 路由策略优先级

# 开启 IP 转发
sysctl -w net.ipv4.ip_forward=1

# 清除 filter 表转发链规则
iptables -F FORWARD

# 添加 NAT 转换(部分第三方 VPN 需要此设置)
iptables -t nat -A POSTROUTING -o $tun -j MASQUERADE

# 添加路由策略
ip rule add from all table main pref $pref
ip rule add from all iif $dev table $tun pref $(expr $pref - 1)

contain="from all iif $dev lookup $tun"

# 持续监测网络状态,自动修复路由策略
while true ;do
    if [[ $(ip rule) != *$contain* ]]; then
            if [[ $(ip ad|grep 'state UP') != *$dev* ]]; then
                echo -e "[$(date "+%H:%M:%S")]dev has been lost."
            else
                ip rule add from all iif $dev table $tun pref $(expr $pref - 1)
                echo -e "[$(date "+%H:%M:%S")]network changed, reset the routing policy."
            fi
    fi
    sleep $interval
done

3.3 运行脚本

chmod +x proxy.sh
nohup ./proxy.sh &

3.4 其他设备配置

将局域网内其他设备的网关设置为手机的静态 IP 地址即可。

脚本中包含网络状态监测循环,网络变化时会自动重新设置路由策略。


4 iKuai 软路由方案

iKuai(爱快)是一款国产企业级软路由系统,管理界面简洁,功能丰富。

4.1 优势

  • 管理便捷:Web 界面友好,配置直观
  • 虚拟机与 Docker 支持:可在软路由上运行 NAS、下载机、媒体服务器等
  • 内置穿透功能:自带内网穿透
  • iKuai + lede 组合:iKuai 负责主路由功能,lede(OpenWrt)在虚拟机中负责代理

4.2 局限性

iKuai 有一个明显缺陷:LAN-WAN 端口复用不够方便

使用 iKuai 需满足以下条件之一:

  • 交换机具有 Web 管理界面
  • 多网口台式机(如工控机)

如果设备只有单个网口,建议直接使用 OpenWrt。


5 参考资料

版权声明

除非另有说明,本文内容采用 CC BY-NC-SA 4.0 许可协议。转载请注明出处。