luci-app-shadowsocksR 编译填坑记

        如上一篇博文所写,我把自己的所有服务器都添加到使用ssrpanel架设的鸡场里面去了,这样比较好管理,另外也可以顺路卖一波小鸡鸡(虽然到现在为止一个也没有卖出去)。而为了减少被墙发现的风险,我的鸡场使用的是单端口多用户的模式,这种模式下SSR是需要设置协议参数的,然后我发现我之前编译的ssr路由客户端竟然没有协议参数这个选项。好在谷歌之后发现在这个openwrt-ssr的issue页面里面有解决方案,只好再编译一次了,顺便把之前编译的gfw模式不能使用这个坑也填上。

        首先,按这个教程《记第一次编译:SSR FOR LEDE》把编译环境搭建好,然后把项目克隆到本地(或者VPS里面),这时先别编译,要修改里面的配置文件(下面以mt7620的sdk为例,具体命令请根据自己的实际情况指定路径)。

        一、添加协议参数选项
修改client-config.lua文件:
  • nano /root/openwrt-sdk-18.06.2-ramips-mt7620_gcc-7.3.0_musl.Linux-x86_64/package/openwrt-ssr/files/luci/model/cbi/shadowsocksr/client-config.lua
o = s:option(ListValue, "protocol", translate("Protocol"))
for _, v in ipairs(protocol) do o:value(v) end
o.rmempty = false
后面添加下面这句话:
o = s:option(Value, "protocol_param", translate("Protocol Param"))

修改shadowsocksr.init文件:
  • nano /root/openwrt-sdk-18.06.2-ramips-mt7620_gcc-7.3.0_musl.Linux-x86_64/package/openwrt-ssr/files/shadowsocksr.init
"protocol": "$(uci_get_by_name $1 protocol)",
之后添加如下:
"protocol_param": "$(uci_get_by_name $1 protocol_param)",
注意:这个文件有两处需要修改,语句包括后面的逗号

        二、使gfw模式可以正常使用
修改shadowsocksr.init文件:
  • nano /root/openwrt-sdk-18.06.2-ramips-mt7620_gcc-7.3.0_musl.Linux-x86_64/package/openwrt-ssr/files/shadowsocksr.init
在第412行左右,esac和fi中间添加下面黑体的这段:
if [ -z "$gfw_enable" ] ;then
case "$(uci_get_by_type global tunnel_enable)" in
1|on|true|yes|enabled)
start_tunnel
mkdir -p /tmp/dnsmasq.d
cat > /tmp/dnsmasq.d/dnsmasq-ssr.conf <<EOF
conf-dir=/etc/dnsmasq.ssr
EOF
/etc/init.d/dnsmasq restart
;;
esac
else
mkdir -p /tmp/dnsmasq.d
cat > /tmp/dnsmasq.d/dnsmasq-ssr.conf <<EOF
conf-dir=/etc/dnsmasq.ssr
EOF
/etc/init.d/dnsmasq restart
fi

nano命令提示:可以复制要添加部分内容,然后将光标移动到要粘贴的地方,右键粘贴,然后按ctrl+x退出,此时命令窗口会提示保存,输入y再按回车即可。

        现在可以开始编译了,按编译教程输入make menuconfig命令,选好编译的项目然后开始编译吧,安装后可以看到有混淆参数选项了,切换gfw模式也可以正常使用。

        下面的链接是我编译好的mt7620和mt7621两个版本的ssr(适用系统版本openwrt18.06.02),懒得编译的朋友可以直接下载安装(我只测试了mt7620版本)。

参考链接:

评论

热门博文

小米路由器mini 刷LEDE及安装SSR

如何使用SS/SSR本地代理