注:因为路由器固件以及各种插件的更新,该文内容已经失效
可能有描述不清的地方,关于文章有任何疑问请访问天地行论坛https://tiandixing.org/viewforum.php?f=58发帖交流。
在使用软路由固件openwrt中的passwall时,我个人经常会使用它的“基本设置”中的“socks配置”功能(具体操作:勾选socks主开关,然后使用“添加”按钮添加,然后“保存并应用”,点击下其他菜单比如“节点列表”再回到“基本设置”,就可以看到刷新后的显示),具体如下图。
添加"socks配置"完成后,最好在passwall的“基本设置”页面,再点一次“保存&应用”,否则socks配置可能不会生效。
这样配置后,我们就可以不用在电脑上启动v2rayN之类的客户端软件了,比如要使用tor browser,假设你使用openwrt固件的路由器ip地址为192.168.2.2,那么我们可以在torbrowser的设置中直接做如下设置后,就可以直接使用torbrowser了。
自由门要通过passwall连接服务节点,也只需要在自由门上做如下设置即可(假设你设置的socks配置http监听端口也是1081)。
在一些老版本的openwrt固件中,这样使用tor browser是可以使用的,但在新版本的openwrt固件中,如上使用tor browser已经无法连通。个人测试的情况:passwall中使用的是xray类型的节点,也是目前比较主流的翻墙工具。造成的原因,主要就是openwrt中生成xray节点配置默认是启用“流量探测”功能的(相关文章:经验分享:如何让tor browser借助v2ray翻墙)。
下面简单说说如何修改相应固件中的的lua脚本文件,使得生成xray节点配置时,将“流量探测”功能屏蔽。
使用xshell之类的软件登录你的软路由,步骤与登录vps类似,账号是root,密码就是你自己登录路由器管理界面的密码)。在终端中按如下操作。
更改至根路径 cd / 根据文件名称gen_v2ray.lua找文件所在位置 find -name gen_v2ray.lua 一般显示如下类似结果,生成passwall中xray节点配置的就是第一个lua文件 ./usr/lib/lua/luci/model/cbi/passwall/api/gen_v2ray.lua ./usr/lib/lua/luci/model/cbi/passwall2/api/gen_v2ray.lua 知道文件路径后,使用vim编辑命令修改文件内容 vim /usr/lib/lua/luci/model/cbi/passwall/api/gen_v2ray.lua 进入vim界面,在该界面下直接按如下命令输入半角英文的冒号(也就是英文冒号,别输入中文的冒号),再输入左斜杠,再输入sniffing,命令如下,意思是在文件内容中查找并定位到sniffing单词出现的地方 :/sniffing 然后可以不断按n继续查找。查找到如下内容行时 sniffing = {enabled = true, destOverride = {"http", "tls"}} 通过方向键移动到true单词旁,按i键进入vim编辑状态,通过del或backspace删除true单词,再输入false单词。将上述内容改为如下(就是将true单词改为false单词) sniffing = {enabled = false, destOverride = {"http", "tls"}} 改完后,按esc键退出vim编辑状态,继续按n查找,找到如下内容时 sniffing = {enabled = sniffing and true or false, destOverride = {"http", "tls"...... 通过方向键移动到or单词旁,按i键,通过del或backspace删除or单词,再输入and单词。将上述内容改为如下(就是将or单词改为and单词) sniffing = {enabled = sniffing and true and false, destOverride = {"http", "tls"...... 改完后,按esc键退出编辑状态,在vim界面下输入如下命令(半角英文冒号和wq),保存修改并退出vim。 :wq --------------------------------------------- 更换一个xray节点(一定是具体的实实在在节点,不能是那种节点ip为127.0.0.1的分流或负载均衡节点,否则后面/tmp/etc/passwall中不会产生json文)【更正:非实实在在的节点也会在/tmp/etc/passwall中也会产生json文件,造成笔者误解的原因,如果你当前在ssh终端中正处于passwall文件夹中,这时在web界面切换了节点后,直接再passwall文件夹下使用ls或ll命令会显示没有json文件,需要cd .. 退出passwall目录,然后再 cd passwall 进入passwall目录,再使用ls或ll命令才能看到新产生的json文件,当时笔者没注意到这个情况,误以为是127.0.0.1之类的节点不会产生json文件。】,保存并应用。 使用如下两条命令。 进入/tmp/etc/passwall文件夹 cd /tmp/etc/passwall 查看该文件夹下的文件和目录 ls 会看到有一个名如“TCP_UDP_SOCKS_一串长度为32的字母数字组合字符.json” 的文件,使用“vim TCP_UDP_SOCKS_一串长度为32的字母数字组合字符.json”命令查看其内容中所有与sniffing相关的配置是否都是false(有两处),如果是,应该就成功了。
如下显示的文字就是sniffing相关的配置:
"sniffing": { "enabled": false, --------------------------------------------- 上面两段“--------------”之间的内容主要是验证前面的修改是否生效,如果你对电脑操作比较熟练和有信心,其实可以不需要这些步骤。但改完之后一定要切换一下其他节点然后再保存并应用,这时才会按照修改后的lua脚本来重新生成节点配置文件,相当于一个“刷新”的动作。
这时可以切换到你自己常用的分流或负载均衡节点或其他具体的实在节点,再启动tor browser,则可以连通了。
|