这篇文章是我折腾 3 天的结果,欧博abg在这方面也是初学者,如果有问题,可以一块讨论。
目标我家里有个不用的笔记本,所以用它来实现透明代理。
💡
透明代理:只要连接上了家里的局域网,不管是 wifi 还是连接到路由器的宽带,都可以自动的实现科学上网,无需设置什么。
准备第一点:准备一台安装了 Ubuntu 桌面的电脑,连接上你的路由器,设置有线网络为静态 ip,如下图:
图解:
192.168.31.1 是我的路由器地址。
192.168.31.193 是我设置的 Ubuntu 的静态 ip,这个随意。
第二点:路由器需要支持 DHCP,需要后面设置 DNS 和网关,现在暂时不需要。
安装 CFWCFW 软件全称 clash for windows,欧博官网看到名字不要以为只能在 windows 上安装,支持 mac/linux/windows,现在开始下载。
第一步:前往下载,选在下图红框软件。
第二步:解压,并进入目录运行 ./cfw ,这就运行起来了,但不能退出终端,有点不好。
💡
不要在 root 下运行,会出现 —no-sandbox 的错误,找了好久也没找到解决办法,涉及 electron 和 chrome 相关的。
加入桌面现在讲 CFW 这个软件加入 Ubuntu 的软件中心,打开终端,新建一个 clash.desktop 文件,欧博写入下面信息。
[Desktop Entry] Name=clash for windows Icon=/home/miaogaolin/cfw/logo.png Exec=/home/miaogaolin/cfw/cfw Type=Application重点解释:
Exec 代表刚才执行 ./cfw 命令的路径。
Icon 图提供给你。
编辑好后,将该文件移动到 ~/.local/share/applications ,完成!
代理上网第一步:导入 Profiles,粘贴 clash 订阅地址,点击 download,如果前面是绿色条代表选中。
Profiles 界面第二步:下来进入 General,打开如下选项,剩下的先不要管。
General 界面图解:
Allow LAN:局域网共享。
Mixin:在不动原有配置情况下,增加新的配置覆盖原有配置,覆盖位置 Settings> Profile Mixin ,现在不用操作。
Start with LInux:开机自启动吧,这个我也不确定,没有测试。
完成了上述步骤后,欧博娱乐就可以进行代理上网,只需要在浏览器或者手机配置代理即可,配置信息如下:
ip: Ubuntu 系统ip
端口:7890
💡
如果不可以,可能是防火墙的问题导致端口不能访问,解决办法:Ubuntu 开发所有端口
TUN1. 开启但这个还不算透明,还需要配置代理,现在需要开启 TUN 功能,它可以劫持代理不能做到的请求,例如:ip 直接访问。
第一步:安装 nftables 和 iproute2。
sudo apt-get install -y nftables iproute2第二步:点击上图 Service Mode 后的 Manage,再点击 install,我这个是已经安装好了,所以显示 Active。等一会,就把这个软件关闭重启,因为我测试时,Mac 下可以自动重启,但 Ubuntu 不行。
第三步:重启后,就可以再次打开 Manage,看是否出现 Active,或者看 Service Mode 后的是否绿色地球图标。
第四步:开启 TUN Mode,在 Connections 界面看看是否有 TUN 关键字,如果没有就等一会,因为担心没有请求。如果还不行,继续往下看解决办法。
2. 解决问题解决 TUN 不生效问题,先看 TUN 虚拟网卡是否创建,运行 ifconfig 命令,出现如下图:
或者运行 route 命令。
为啥会有两个呢,我也没搞懂,有就对了。倘若上图你没有出现,那我也不知道,你再查查,主要是我没有遇到过。
重点下来说说,满足上面的,但 TUN 还是没有生效。
下来的解决办法也是猜测,但却是也成功了,我估计是 root 权限的问题。开始解决,先进入 CFW 目录。
cd resources/static/files/linux/common/service-installer该目录下会出现一个 install.sh,打开后如下截图的命令没有执行成功。
先查看 install、nft、ip 命令是否存在。
$ which install ip nft /usr/bin/install /usr/sbin/ip /usr/sbin/nftnft 对应的 nftables 的安装,其它的默认应该就存在,如果不存在你自己再查查。
下来运行分别运行如下命令:
sudo install -m 0644 scripts/clash-default /etc/default/clash sudo install -m 0755 scripts/bypass-proxy-pid /usr/bin/bypass-proxy-pid sudo install -m 0755 scripts/bypass-proxy /usr/bin/bypass-proxy sudo install -m 0700 scripts/clean-tun.sh /usr/lib/clash/clean-tun.sh sudo install -m 0700 scripts/setup-tun.sh /usr/lib/clash/setup-tun.sh sudo install -m 0700 scripts/setup-cgroup.sh /usr/lib/clash/setup-cgroup.sh sudo install -m 0644 scripts/99-clash.rules /usr/lib/udev/rules.d/99-clash.rules运行完之后再重启 CFW 再在 Connections 界面看看是否有 tun 关键字,如果没有可以在 General 界面把 TUN Mode 开关关闭再开启。
这一顿折腾希望你可以整好。
测试路由在手机上手动设置路由(网关)和 DNS,都设置为 Ubuntu 系统的 IP 地址,下来测试是否可以科学上网。
如果这一步失败了,可能是 DNS 问题,可以看看这篇文章 。
DHCP我的是小米路由器,下来的配置你在自己的路由器上找找。
DNS 和网关图中的 ip 地址就是 Ubuntu 系统的 ip。
设置好后,保存等待路由器重启,重启完成好把刚刚设置的路由和 DNS 删除,就正常连接路由器就行 。
到这了,不知道你的好没好,反正我的好了,不过有啥问题可以联系我, 👋
每个人的环境都会有差异,也会遇到各种各样的问题,所以需要极度的耐心才可以,毕竟很多人都是小白。
现在也是刚开始,如果后期我有遇到新的问题,再来说说。
如果想远程连接 Ubuntu 可以看看。