跳至主要内容

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版本)。

参考链接:

评论

此博客中的热门博文

如何使用tasker在连接/断开翻墙WIFI时自动关闭/开启SSR

    前一阵子google play搞活动,tasker打折至0.99刀,恰好我也从google rewards里面答题拿到了1刀+,所以买了这个传说中的神器。     在买tasker的时候,我就想着用它来实现自动开启/关闭SSR了,原以为会很简单的,没想到设置过程中还是出现了不少的问题,当时在G+发po问了一些基友,然后发现有不少的基友有同样的问题,所以写一篇简单的设置教程分享给需要的人,一些重点的细节我已经加黑,大家设置的时候注意一下。     言归正传,下面是设置教程:     功能一:连接上翻墙路由器的wifi信号之后,自动关闭手机上的SSR服务。     打开tasker主界面,顶栏在profiles选项上时,点击右下方的加号,在出现的选择界面上依次选择State→Net→Wifi connected,然后在弹出的界面上选择SSID右边的放大镜,选择已翻墙的WIFI名字, 然后下方倒数第二项Active下面选项点开,选Any, 按返回键。 此时会回到主界面,并会在新建的状态项目右方弹出任务选择栏,此时选New Task,然后会要求输入任务名,这里可以随便写,但是为了方便以后识别,尽量写容易理解的有关联性的名字,比如我写的SSR off。然后在弹出的新建任务界面,点右下方的加号,依次选Plugin→SSR→Configuration右边的编辑图标(一个笔头), 在弹出的SSR选择菜单上将Start the service的开关关掉, 因为是关掉服务,所以下方服务器随便选择,返回。 至此功能一设置完成。     功能二:与翻墙WIFI的信号断开连接时,自动开启手机上的SSR服务。     前面的操作是一样的,打开tasker主界面,顶栏在profiles选项上时,点击右下方的加号,在出现的选择界面上依次选择State→Net→Wifi connected,然后在弹出的界面上选择SSID右边的感叹号,选择已翻墙的WIFI名字, 然后将最下方的invert(反转,即未连接)选项勾上, 按返回。 出现添加任务菜单,点New Task,输任务名(比如SSR ON),在弹出的新建任务界面,点右下方的加号,依次选Plugin→SSR→Configuration右边的编辑图标(一个笔头), 在弹出的SSR选择菜